您现在的位置:程序化交易>> 期货公式>> 交易开拓者(TB)>> 开拓者知识>>正文内容

关于交易中超级图表买卖数只显示一下消失问题 [开拓者 TB]

  • 咨询内容: 我编了一个程序,内容如下,但以模拟帐号运行时,发现了个问题,就是在超级图表买卖数只显示一下,就会消失了,但实现模拟帐户是可以实现当笔交易的。但当下个信号出现时,却不再运行,请教大家,如何解决这个问题?


    Params
            Numeric FastLength(12);
            Numeric SlowLength(26);
            Numeric MACDLength(9);
    Vars
            NumericSeries MACDValue;
            Numeric AvgMACD;
            Numeric MACDDiff;
            BoolSeries condBuy(false);
            BoolSeries condSell(false);
            String time_sr;//交易bar时间
            String time_now;//当前bar时间
            Numeric N1(1);//买卖数量
            Numeric minpoint;//最少变化价格
    Begin
            MACDValue = XAverage( Close, FastLength ) - XAverage( Close, SlowLength ) ;       
            AvgMACD = XAverage(MACDValue,MACDLength);
            MACDDiff = MACDValue - AvgMACD;          
        condBuy=CrossOver(MACDValue,AvgMACD);
        condSell=CrossUnder(MACDValue,AvgMACD);
        minpoint=MinMove*PriceScale;
            //1、加入交易时间控制,被免同一根bar反复执行
             time_now=DateTimeToString(date+time);
             time_sr=GetTBProfileString("data","bartime");//赋值到time_sr
         if(Marketposition<>1 and (condBuy[1]==true and time_sr<>time_now))//判断是否持多仓,条件穿越是否成功
            {  
                       SetTBProfileString("data","bartime",DateTimeToString(date+time));//将当前交易的bar时间记录
                       Buy(N1,Open+minpoint);
                }
         if(MarketPosition<>-1 and (condSell[1]==true and time_sr<>time_now))//判断是否持空仓,条件穿越是否成功
            {  
               SetTBProfileString("data","bartime",DateTimeToString(date+time));//将当前交易的bar时间记录
               SellShort(N1,Open-minpoint);
                }
    End

     

  • TB技术人员: 你所使用的读写数据文件来判断,此写法会导致信号消失。
    TB本身就有控制,不会反复发单。你只要使用稳定的条件做发单信号就行了。
    去掉现在的这个控制,这个是不必要的。

     

  • TB客服: 好的,谢谢!管理员,如果我要实现这个判断,不用读写数据文件来实现,有没有更好的办法,又不让这个信号消失?请赐教,谢谢!

 

有思路,想编写各种指标公式,程序化交易模型,选股公式,预警公式的朋友

可联系技术人员 QQ: 262069696  点击在线交流进行 有偿 编写!不贵!点击查看价格!


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

相关文章

    没有相关内容