K线不走完,交易
各位朋友好!我使用TBQUANT程序化交易,遇到双均线金叉信号,必须等本根K线走完。我想实时交易,TBquant策略代码要怎么写?onbar模式下行不行?以下代码对不对呢? If(MarketPosition ==0 && AvgValue1> AvgValue2) { Buy(1,high); } If(MarketPosition ==1 && AvgValue1 < AvgValue2) { Sell(1,low); } }
各位朋友好!我使用TBQUANT程序化交易,遇到双均线金叉信号,必须等本根K线走完。我想实时交易,TBquant策略代码要怎么写?onbar模式下行不行?以下代码对不对呢? If(MarketPosition ==0 && AvgValue1> AvgValue2) { Buy(1,high); } If(MarketPosition ==1 && AvgValue1 < AvgValue2) { Sell(1,low); } }
可以onbar本来就是实时触发的只要能锁定信号发生过就可以也就是不要用close这种会闪烁的价格
您好,图表策略,不能有信号闪烁,否则历史回测结果相差很大。你可以用TBQ3,通过跨周期,切换到比较小的时间周期,这样延迟最多也就是一个小的时间周期,跟实时结果相差不大。何况实时的结果也未必就比收盘确认的结果好,这个不是影响策略结果的关键。
回复:谢谢,我就是疑惑,如果我用MarketPosition ==1,限制只开1手,策略信号闪烁,但是后续不会成交的吧,对策略还是没有影响,我理解对不对呢
回复:然后,我如果用突破策略,交易指令用HIGH和low,然后用MarketPosition ==1限制,在一根K线上信号闪烁,成交还是只有一次把
回复:MarketPosition是图表信号函数,信号消失了,它的值也就不对了,后面K就可能成交。所以,不要想那么多,把信号闪烁扼杀在摇篮里就对了,等你对TB了解到了比较深以后,再考虑怎么把信号闪烁问题更优化处理的问题。
回复:那就这么均线代码,可以吧 AvgValue1 = AverageFC(Close,FastLength); AvgValue2 = AverageFC(Close,SlowLength); PlotNumeric("MA1",AvgValue1); PlotNumeric("MA2",AvgValue2); If(MarketPosition ==0 && AvgValue1[1] > AvgValue2[1]) { Buy(0,Open); } If(MarketPosition ==1 && AvgValue1[1] < AvgValue2[1]) { Sell(0,Open); } } //