请教下,能否帮忙优化一下代码:
方案:长中短三个周期,①三个收盘价都超过均线则开多 ②三个收盘价都低于均线则开空
异常点:当短周期,中周期都已经向上突破了均线时,此时长周期一直在均线附近上下波动,导致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);
    }
    
}
你这又偷价又信号闪烁,重新学一学开发吧,基本等于瞎写