【提問(wèn)】發(fā)單時(shí)是否必須要使用A_SendOrder函數(shù),望賜教
作者:開(kāi)拓者 TB 來(lái)源:cxh99.com 發(fā)布時(shí)間:2016年05月25日
- 咨詢(xún)內(nèi)容:
本帖最后由 cicikml 于 2016-3-18 21:49 編輯
先向老師和高手們問(wèn)好!
TB幫助我們?cè)诔绦蚧灰茁飞显阶咴秸鎸?shí),感謝你們的辛勤付出!
我看了一些帖子之后,對(duì)自己的模型做了修改,但是依然無(wú)法解答困惑,所以在論壇請(qǐng)教各位。
我的策略在回測(cè)的時(shí)候,使用的是:
Buy(lots,Open);
SellShort(lots,Open);
Sell(lots,Open);
BuyToCover(lots,Open);
這種命令。非常簡(jiǎn)單清晰。
在實(shí)盤(pán)交易的時(shí)候,是不是要替換成:
//為過(guò)濾一些小的不必要的波動(dòng),定義了一個(gè)Filter函數(shù)
Filter = (Average(Close,ShortLength)-Average(Close,LongLength))*100/Average(Close,LongLength);
// 開(kāi)多倉(cāng)
If(MarketPosition <>1 && GetGlobalVar(1)==0 && AvgValue1[1] > AvgValue2[1] && Filter > Upline)
{
Buyenterprice = Q_AskPrice + Offprice; //得出開(kāi)多倉(cāng)價(jià)格+滑點(diǎn)
A_SendOrder(Enum_Buy,Enum_Entry,lots,Buyenterprice);//開(kāi)多單
}
//開(kāi)空倉(cāng)
If(MarketPosition <>-1 && GetGlobalVar(0)==0 && AvgValue1[1] < AvgValue2[1] && Filter < Downline)
{
Sellenterprice = Q_BidPrice - Offprice; //得出開(kāi)空倉(cāng)價(jià)格+滑點(diǎn)
A_SendOrder(Enum_Sell,Enum_Entry,lots,Sellenterprice);//開(kāi)空單
}
//平多倉(cāng)
If (MarketPosition == 1 && GetGlobalVar(0)==1 && AvgValue1[1] < AvgValue2[1])
{
Sellenterprice = Q_BidPrice - Offprice; //得出平多倉(cāng)價(jià)格+滑點(diǎn)
A_SendOrder(Enum_Sell,Enum_Exit,lots,Sellenterprice);//平多單
}
//平空倉(cāng)
If (MarketPosition == -1 && GetGlobalVar(1)==1 && AvgValue1[1] > AvgValue2[1])
{
Buyenterprice = Q_AskPrice + Offprice; //得出開(kāi)空倉(cāng)價(jià)格+滑點(diǎn)
A_SendOrder(Enum_Buy,Enum_Exit,lots,Buyenterprice);//平空單
}
有3個(gè)問(wèn)題求教:
1、我已經(jīng)換成了下面的寫(xiě)法,但是目前系統(tǒng)無(wú)法發(fā)出任何交易信號(hào),是不是我的發(fā)單指令寫(xiě)錯(cuò)了?
2、Filter里,是不是應(yīng)該寫(xiě)Close[1],而不是close?這樣是不是意味著我使用了未來(lái)數(shù)據(jù)?
3、我對(duì)GetGlobalVar(1)的具體含義,也比較模糊,這是從別人代碼里看到的,請(qǐng)老師指導(dǎo),我這樣寫(xiě)是否正確?
一個(gè)編程基礎(chǔ)較弱的量化愛(ài)好者,正在慢慢開(kāi)啟自己的交易歷程,懇請(qǐng)大家?guī)椭?,謝謝。
- TB技術(shù)人員:
我把代碼中,所有的
GetGlobalVar(1)==1
和
GetGlobalVar(0)==1
換成了
BarStatus == 0
請(qǐng)問(wèn)這樣可以嗎?我是從TB的用戶(hù)手冊(cè)代碼中找到的,這樣是不是可以避免信號(hào)閃爍?
- TB客服:
1,當(dāng)前的條件下,建議還是使用buy,sellshort等指令進(jìn)行委托。至少這些條件下是不可以使用a_sendorder的。
2,如果是使用buy,sellshort指令。。那filter的定義自然是使用close[1]更穩(wěn)定些。
3,在使用buy,sellshort時(shí),就不能這么使用全局變量了。
首先,buy,sellshort是可以用于實(shí)盤(pán)交易的,當(dāng)前您的思路下是根本沒(méi)有必要換成a_sendorder來(lái)發(fā)單 。。。
其次,markeposition等信號(hào)函數(shù)與a_sendorder是不能這樣混用。所以你的公式?jīng)]有信號(hào)或是委托也符合當(dāng)前公式的表現(xiàn)。。
建議還是系統(tǒng)地學(xué)習(xí)TB的學(xué)法后,再來(lái)考慮寫(xiě)策略。如果不是對(duì)帳戶(hù)進(jìn)行控制,不建議使用a_xxxx類(lèi)的函數(shù)。
- 網(wǎng)友回復(fù):
小米 發(fā)表于 2016-3-21 09:50
1,當(dāng)前的條件下,建議還是使用buy,sellshort等指令進(jìn)行委托。至少這些條件下是不可以使用a_sendorder的。
...
謝謝版主,我調(diào)整代碼,繼續(xù)學(xué)習(xí)