【求助】跨多周期策略,重复发出开仓指令的问题

请教下,能否帮忙优化一下代码:

方案:长中短三个周期,①三个收盘价都超过均线则开多 ②三个收盘价都低于均线则开空

异常点:当短周期,中周期都已经向上突破了均线时,此时长周期一直在均线附近上下波动,导致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);
    }
    
}

如何优化重复发出平仓委托的指令
跨周期跟踪止损重复开仓问题
信号闪烁造成重复开仓的问题反馈
信号闪烁导致重复开仓
求助:跨周期,共振行情的代码咋写
关于跨周期的问题
策略单元中使用跨周期程序,出现的问题。
关于跨周期的问题
跨周期信号闪烁加开仓延迟
跨周期均线策略

你这又偷价又信号闪烁,重新学一学开发吧,基本等于瞎写