網(wǎng)絡(luò)延遲引起的重復(fù)下單,可以有效避免嗎? [開拓者 TB]
- 咨詢內(nèi)容:
If(A_BuyPosition>0 and A_GetOpenOrderCount==0 and C<=upline-N)
{
price=Close-off*minpoint;
A_SendOrder(Enum_Sell,Enum_Exit,A_BuyPosition,price);
A_SendOrder(Enum_Sell,Enum_Entry,lots,price);
Return;
}
就是這樣一個(gè)簡(jiǎn)單的語句,但是模擬時(shí)候有發(fā)現(xiàn),有時(shí)一次信號(hào)會(huì)成交很多次(測(cè)試時(shí)lots設(shè)置為1)。
個(gè)人覺得應(yīng)該是網(wǎng)絡(luò)問題,因?yàn)橹皇桥紶柍霈F(xiàn),比如一天測(cè)試下來只在某時(shí)段出現(xiàn)一兩次
這個(gè)可以用技術(shù)手段避免嗎?我就想說不管是改寫法還是加別的函數(shù),能把這個(gè)問題處理下。謝謝大家 - TB技術(shù)人員:
沒法避免。。
你所說的重復(fù)發(fā)單的情況,事實(shí)上在最優(yōu)的網(wǎng)絡(luò)情況下也會(huì)發(fā)生的。
必須委托單 從客戶端走互聯(lián)網(wǎng)到交易所,撮合成交后的回報(bào)再走互聯(lián)網(wǎng)到客戶端,這一流程是一定需要時(shí)間的。。
以經(jīng)驗(yàn)來看,流程需要時(shí)間是超過了一個(gè)tick的時(shí)間 。
所以,發(fā)單 后不加以輔助控制的話,在再一個(gè)行情tick到來時(shí),倉位還沒有變化,若其它條件仍是滿足,則會(huì)再次發(fā)出委托 。
在使用a_sendorder時(shí),除了倉位的判斷控制,一定要加上全局變量配合控制發(fā)單次數(shù)的。
具體請(qǐng)參考F1幫助 文檔---策略進(jìn)階里的模板 - TB客服:
小米 發(fā)表于 2016-1-6 10:35
沒法避免。。
你所說的重復(fù)發(fā)單的情況,事實(shí)上在最優(yōu)的網(wǎng)絡(luò)情況下也會(huì)發(fā)生的。
必須委托單 從客戶端走互聯(lián) ...
謝謝
不過因?yàn)閯傞_始學(xué),所以有的地方感覺有點(diǎn)復(fù)雜
能不能簡(jiǎn)單說下解決的思路? - 網(wǎng)友回復(fù):
小米 發(fā)表于 2016-1-6 10:35
沒法避免。。
你所說的重復(fù)發(fā)單的情況,事實(shí)上在最優(yōu)的網(wǎng)絡(luò)情況下也會(huì)發(fā)生的。
必須委托單 從客戶端走互聯(lián) ...
另外我想了個(gè)簡(jiǎn)單的思路,想請(qǐng)小米版主看看這樣是否有效
就是在條件語句后部,加入時(shí)間的限制,這樣能不能減少這種情況?
比如我覺得20秒出一個(gè)tick足夠應(yīng)付所有情況,我再條件中加入 second==0 , second==20 , second=40
這樣的條件
就是到了這個(gè)秒數(shù),才出信號(hào),這樣能不能有效減少此類情況? - 網(wǎng)友回復(fù):
mey16601600 發(fā)表于 2016-1-6 11:53
另外我想了個(gè)簡(jiǎn)單的思路,想請(qǐng)小米版主看看這樣是否有效
就是在條件語句后部,加入時(shí)間的限制,這樣能不 ...
首先,在1分鐘以上的周期是讀不到second的值的。
其次,普通 行情下,1秒鐘可有二個(gè)tick。這二個(gè)tick的second值是一樣的。那同樣沒法控制得到發(fā)單 次數(shù)。。
建議還是使用模板給出的全局變量來控制一下吧
有思路,想編寫各種指標(biāo)公式,程序化交易模型,選股公式,預(yù)警公式的朋友
可聯(lián)系技術(shù)人員 QQ: 511411198 進(jìn)行 有償 編寫!(不貴!點(diǎn)擊查看價(jià)格!)
相關(guān)文章
-
沒有相關(guān)內(nèi)容