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);
}
if分支里不要放crossover和crossunder
用bool变量来存放这个两个函数的运行结果
这个地方是不是忘改了?估计应该是AvgValue3和4吧
老师,对于上面的开多,平多 语句有没有更简洁的编写方法,感谢老师帮助!