求解,關(guān)于多公式組合策略在數(shù)據(jù)源上的運(yùn)算 [開拓者 TB]
-
咨詢內(nèi)容:
我在TBQ的幫助文檔里看到“為了使用的方便,以及降低使用門檻, TB 公式系統(tǒng)支持將現(xiàn)有的多個(gè)公式應(yīng)用按照一定的順序組合為一個(gè)交易策略
交易策略執(zhí)行時(shí)按照公式設(shè)置的順序依次串行執(zhí)行,公式間持倉(cāng)共享,公式信號(hào)單獨(dú)顯示。
相當(dāng)于把每個(gè)公式看成是一個(gè)函數(shù),在交易策略內(nèi)依次執(zhí)行各個(gè)函數(shù),整個(gè)策略共享一個(gè) MarketPosition。”
然后我在后面例子中看到,把5個(gè)公式加載到一個(gè)策略單元,也沒有特別的設(shè)置。我看每個(gè)公式的買入信號(hào)都會(huì)判斷marketposition,我就有點(diǎn)疑問,既然共享marketposition,那第一個(gè)公式如果買入了,第二個(gè)公式就不會(huì)買入了,如果達(dá)到例子里說(shuō)的3個(gè)公式中的2個(gè)公式買入之后再停止呢,請(qǐng)幫忙給解釋一下,謝謝?
?來(lái)源:CXH99.COM
-
TB技術(shù)人員:
第一個(gè)公式買入后,后面的公式是否繼續(xù)交易,取決于后面公式開倉(cāng)條件里寫法。
如果第二個(gè)公式的開倉(cāng)條件并沒有要求限制marketposition必須等于0的,那么就條件滿足就要可以繼續(xù)開倉(cāng)。類似于加倉(cāng)。
而第三個(gè)人公式的開倉(cāng)條件里做marketposition==0的限制的話,則不會(huì)開倉(cāng)了。?
-
TB客服:
公式應(yīng)用 1: Average_Buy
Params
Numeric percent(0.002); //大于日均價(jià)幅度
Vars
Begin
If(MarketPosition<>1 && (Close[1] > Q_AvgPrice *(1 + percent)))
{
Buy(1,Open);
}
End
公式應(yīng)用 2: Dual_Buy
Params
Numeric FastLength(5);
Numeric SlowLength(20);
Vars
NumericSeries AvgValue1;
NumericSeries AvgValue2;
Begin
AvgValue1 = AverageFC(Close,FastLength);
AvgValue2 = AverageFC(Close,SlowLength);
PlotNumeric("MA1",AvgValue1);
PlotNumeric("MA2",AvgValue2);
// 集合競(jìng)價(jià)和小節(jié)休息過濾
If(!CallAuctionFilter()) Return;
If(MarketPosition <>1 && AvgValue1[1] > AvgValue2[1])
{
Buy(1,Open);
}
End
公式應(yīng)用 3: High_Buy
Vars
Numeric MinPoint; // 一個(gè)最小變動(dòng)單位,也就是一跳
Numeric MyEntryPrice; // 開倉(cāng)價(jià)格,例中為開倉(cāng)均價(jià),可設(shè)置為某次入場(chǎng)價(jià)
Numeric AddSet(2); // 大于最高價(jià)跳數(shù)
Begin
If(!CallAuctionFilter()) Return;
MinPoint = MinMove*PriceScale;
If(MarketPosition<>1 && (Close > Q_High + AddSet*MinPoint))
{
Buy(1,Open);
}
End
公式應(yīng)用 4: Average_Sell
Params474
Numeric percent(0.01); //小于日均價(jià)幅度
Vars
Begin
If(!CallAuctionFilter()) Return;
If(MarketPosition==1 && (Close < Q_AvgPrice *(1 - percent)))
{
Sell(1,Open);
}
End
公式應(yīng)用 5: Dual_Sell
Params
Numeric FastLength(5);
Numeric SlowLength(20);
Vars
NumericSeries AvgValue1;
NumericSeries AvgValue2;
Begin
AvgValue1 = AverageFC(Close,FastLength);
AvgValue2 = AverageFC(Close,SlowLength);
PlotNumeric("MA1",AvgValue1);
PlotNumeric("MA2",AvgValue2);
// 集合競(jìng)價(jià)和小節(jié)休息過濾
If(!CallAuctionFilter()) Return;475
If(MarketPosition == 1 && AvgValue1[1] < AvgValue2[1])
{
Sell(1,Open);
}
End
這是例子的5個(gè)公式,例子里說(shuō)“上面 3 個(gè)開倉(cāng)公式,任何 2 個(gè)先到達(dá)開倉(cāng)條件,則由于倉(cāng)位達(dá)到最大頭寸 2,另外一個(gè)開倉(cāng)公式將不會(huì)執(zhí)行。上面任何 1 個(gè)平倉(cāng)公式達(dá)到平倉(cāng)條件平掉所有的倉(cāng)位,則另外一個(gè)平倉(cāng)公式不會(huì)執(zhí)行。”,說(shuō)只要按順序加載這5個(gè)公式,就可以達(dá)到上面的效果,我不太理解如何實(shí)現(xiàn)目的的?
-
網(wǎng)友回復(fù):
本帖最后由 小米 于 2019-10-22 16:08 編輯
baggiobatistuta 發(fā)表于 2019-10-21 15:15
公式應(yīng)用 1: Average_Buy
Params
Numeric percent(0.002); //大于日均價(jià)幅度
這段代碼說(shuō)明是有些問題的, 不足以參考 。。
先不要看這個(gè)說(shuō)明,后面會(huì)更新相關(guān)說(shuō)明文檔的。
可以先看軟件里--TB量化學(xué)院--TBL語(yǔ)言--公式運(yùn)行機(jī)制--多公式組合策略在數(shù)據(jù)源上的運(yùn)算。這里面的內(nèi)容說(shuō)明與代碼是正確的。
有思路,想編寫各種指標(biāo)公式,交易模型,選股公式,還原公式的朋友
可聯(lián)系技術(shù)人員 QQ: 262069696 或微信號(hào):cxh99cxh99 進(jìn)行 有償收費(fèi) 編寫!
(怎么收費(fèi),代編流程等詳情請(qǐng)點(diǎn)擊閱讀!)
(注:由于人數(shù)限制,QQ或微信請(qǐng)選擇方便的一個(gè)聯(lián)系我們就行,加好友時(shí)請(qǐng)簡(jiǎn)單備注下您的需求,否則無(wú)法通過。謝謝您!)
相關(guān)文章
-
沒有相關(guān)內(nèi)容