策略加载有两条均线显示不正常,没有开仓平仓信号,麻烦老师帮我修改下,谢谢!
2021-02-03 22:46

Params
    Numeric FastLength(5);// 短期指数平均线参数
    Numeric SlowLength(10);// 长期指数平均线参数
    Numeric FastLength1(20);// 短期指数平均线参数
    Numeric SlowLength1(40);// 长期指数平均线参数
Vars
    Series<Numeric> AvgValue1; 
    Series<Numeric> AvgValue2;
    Series<Numeric> AvgValue3; 
    Series<Numeric> AvgValue4;
Events
    OnBar(ArrayRef<Integer> indexs)
    {
        AvgValue1 = AverageFC(Close,FastLength);
        AvgValue2 = AverageFC(Close,SlowLength);
        AvgValue1 = AverageFC(Close,FastLength1);
        AvgValue2 = AverageFC(Close,SlowLength1);
        PlotNumeric("MA1",AvgValue1);
        PlotNumeric("MA2",AvgValue2);
        PlotNumeric("MA3",AvgValue3);
        PlotNumeric("MA4",AvgValue4);        
        
        
        
        If(MarketPosition <>1 && crossover(AvgValue1[1] , AvgValue2[1]) And AvgValue3[1] > AvgValue4[1])
        {
            Buy(0,Open);//ma3>ma4时,当ma1上穿ma2  开多1手
        }
        
        If(MarketPosition ==1 && CrossUnder(AvgValue1[1] , AvgValue2[1]) And AvgValue3[1] > AvgValue4[1])
        {
            Sell(0,Open);//ma3>ma4时ma1下破ma2  平多
        }
        
        
        If(MarketPosition <>-1 && CrossUnder(AvgValue1[1] , AvgValue2[1]) And AvgValue3[1] < AvgValue4[1])
        {
            SellShort(0,Open);//ma3<ma4时 ,当ma1下破ma2  开空1手
        }
        
        If(MarketPosition ==-1 && CrossOver(AvgValue1[1] , AvgValue2[1]) And AvgValue3[1] < AvgValue4[1])
        {
            BuyToCover(0,Open);//ma3<ma4时ma1上穿ma2  平空1手
        }
        //PlotNumeric("PL",Portfolio_TotalProfit);    
    }

评论区
fzzqglsj

老师,对于上面的开多,平多 语句有没有更简洁的编写方法,感谢老师帮助!

2021-02-04 15:22
顶部