您现在的位置:程序化交易>> 期货公式>> 文华财经>> 文华财经知识>>正文内容

请求加入延时函数,原因有几点。希望能采纳 [文华财经]

  • 咨询内容:  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  点击这里给我发消息进行 有偿 编写!不贵!点击查看价格!


【字体: 】【打印文章】【查看评论

相关文章

    没有相关内容