请求加入延时函数,原因有几点。希望能采纳 [文华财经]
- 咨询内容:
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 进行 有偿 编写!(不贵!点击查看价格!)
相关文章
-
没有相关内容