請求加入延時函數,原因有幾點。希望能采納 [文華財經]
- 咨詢內容:
1,由延時來避免重復下單: tick行情500毫秒一個變化,舉例: data = Def_TickData("RB1505",1,2); IF( data[1].Bid1 > data[0].Bid1) T_Deal("RB1505",0,0,1,Offers("RB1505","bid1")); 延時500毫秒 這樣循環時因為有500毫秒的延時,就避免了重復下單。2,減少CPU占有: 假如有10條if在判斷,算它10毫秒走完循環,那么就算在 后面加個1毫秒延時,也會減少模型占有CPU運算的1/11。 何況是500毫秒一個tick。加個200,400毫秒的延時都不會錯過行情判斷3,簡單。能不能采納都告知我一下。謝謝
- 文華技術人員:
1. 重復下單,您可以加一個全局變量來解決。不需要延時函數。
比如:
data = Def_TickData("RB1505",1,2);
IF( data[1].Bid1 > data[0].Bid1 && M==0) { T_Deal("RB1505",0,0,1,Offers("RB1505","bid1")); M=1; } 2. 如果執行一個IF,其他的IF不想在重復執行。可以用ELSE IF來代替其他的IF. 比如: IF(COND1) { .... } ELSE IF(COND2) { .... } ELSE IF(COND3) { .... } - 文華客服:
這是我全部的語句,這么寫我會重復的下單,假如條件判斷里加了個M==0,條件成立后在執行上再賦予M=1。這樣我重復是解決了,但語句就再也不會讓條件成立了。VAR_TICKDATA data;GLOBAL_VAR gdID,gdsj;VOID MAIN(){data = Def_TickData("RB1505",1,2); // 保存最近2筆的tick數據IF( data.State == 1 ){IF( data[1].Bid1 > data[0].Bid1){//MessageOut ("掛單");T_DeleteOrder(gdID);gdID=T_Deal("RB1505",0,0,1,Offers("RB1505","bid1"));//發出委托bid1gdsj=CurrentTime();}}IF (CurrentTime()==gdsj+5){//MessageOut("掛單撤銷");T_DeleteOrder(gdID);}IF (T_OrderState(gdID) == 1){//MessageOut("掛單成交,掛單止盈4點");T_Deal("RB1505",1,2,1,Offers("RB1505","bid1")+4);}}
- 網友回復:
語句不會讓條件在成立是由于你沒有對M重新賦值為0 ,在平倉委托成交后將M=0就可以了。
- 網友回復: 我策略是tick每往上一跳時都掛買1價買,5秒沒成交就撤掛單。假如這筆掛單成交就掛賣1價+4個點平今。掛單平今的我會一直熬,但每個tick上跳我都會買
有思路,想編寫各種指標公式,程序化交易模型,選股公式,預警公式的朋友
可聯系技術人員 QQ: 511411198 進行 有償 編寫!(不貴!點擊查看價格!)
相關文章
-
沒有相關內容