【求助】跨多周期策略,重复发出开仓指令的问题
请教下,能否帮忙优化一下代码: 方案:长中短三个周期,①三个收盘价都超过均线则开多 ②三个收盘价都低于均线则开空 异常点:当短周期,中周期都已经向上突破了均线时,此时长周期一直在均线附近上下波动,导致2min之内重复发了4个开仓信号,k线图标上面也随之的出现信号,消失信号4次(走完之后,k线上面最终只显示了一个信号),导致结果是:应该只开1个多,但是开了4个多仓。代码里面的条件MarketPosition <> 1也没有起到限制开仓一手的作用。 代码如下: ------------------------------------------------------------------------------------------------ Params Numeric length(20); Vars Series<Numeric> p_ma; Numeric cc; Global Numeric sum_cc; Events OnBar(ArrayRef<Integer> indexs) { sum_cc=0; range[0:DataCount-1] { p_ma = Average(c,length); PlotNumeric("P_ma",p_ma); if(c > p_ma) { cc = 1; } Else { cc = -1; } sum_cc = sum_cc + cc; } Commentary("sum_cc="+text(sum_cc)); If(sum_cc > 1 and MarketPosition <> 1) { buy(1,C); } Else if(sum_cc < -1 and MarketPosition <> -1) { SellShort(1,C); } }