非當前商品的掛單情況怎么查尋
作者:開拓者 TB 來源:cxh99.com 發(fā)布時間:2016年05月24日
- 咨詢內(nèi)容:
最近剛開始研究bt代碼,有個疑惑,A_xxxx的代碼大部分都針對于當前商品,那默認的商品0就是當前商品,但商品1怎么辦?
當發(fā)出買入商品1的指令后我希望能獲得商品1的未成交委托單的數(shù)量,當全部成交后才希望觸發(fā)商品0的相關指令
商品0能用A_GetOpenOrderCount()來獲取了未成交委托單數(shù)量,但商品1的怎么獲?。看蠹艺垘蛶臀?
- TB技術人員:
data1.a_getopenordercount
- TB客服:
小米 發(fā)表于 2016-3-16 11:28
data1.a_getopenordercount
感謝斑竹大大的解惑,后來試著編了一段代碼模擬運行了下但又產(chǎn)生了新的疑惑
我的思路是這樣的:滿足條件一后對商品1進行開倉買入,然后判斷商品1是否成交,一旦成交就買入商品0,不成交就根據(jù)最新的買一價來決定是否撤單。
我編的代碼如下:- ……
- If(con1)
- {
- data1.A_SendOrder(Enum_Buy,Enum_Entry,1,myprice1;
- If (data1.A_GetOpenOrderCount()==0)
- {data0.A_SendOrder(Enum_Buy,Enum_Entry,1,myprice0;
- }
- }
- Else
- {
- ……
- }
復制代碼1、實際運行的結(jié)果卻是商品1和商品0同時進行掛單了,哪怕商品1未成交,商品0還是一起掛單了,無法起到判斷作用,我應該怎么修改?
2、還有一個疑問,如果在商品1掛單后,系統(tǒng)在做后續(xù)判斷的過程中con1又滿足觸發(fā)條件了,這時候系統(tǒng)是繼續(xù)執(zhí)行上一次指令還是轉(zhuǎn)向新的一個觸發(fā)指令亦或是兩邊一起執(zhí)行?
- 網(wǎng)友回復:
TB_KKYY 發(fā)表于 2016-3-17 08:53
感謝斑竹大大的解惑,后來試著編了一段代碼模擬運行了下但又產(chǎn)生了新的疑惑
我的思路是這樣的 ...
- if(con1 && barstatus==2 && getglovalvar(0)==0)
- {
- data1.a_sendorder();
- setglobalvar(0,1);
- }
- if(data1.a_buyposition>0 && a_getopenordercount==0 && barstatus==2 && getglobalvar(1)==0)
- {
- a_sendorder();
- setglobalvar(1,1);
- }
復制代碼使用a_sendorder是需在限制在最后K線上執(zhí)行的,以及要使用全局變量來配合控制發(fā)單的次數(shù),否則會有重復發(fā)單 的問題。
上例中已經(jīng)給出的全局變量在下單 時的控制,但仍需要自己加上全局變量的初始化以及清零 ,以為下一次的交易做準備 。
不太建議一來就開始使用A_XXXX函數(shù)啊。。A_XXX的策略不能在圖表上顯示信號,不那么直觀。
而且需要自己做更多的控制,是比較復雜的,需要對TB的編程 以及機制有更多的了解后方好著手。