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