Params
Numeric FastLength(5);// 短期指数平均线参数
Numeric SlowLength(20);// 长期指数平均线参数
Vars
Series<Numeric> AvgValue1;
Series<Numeric> AvgValue2;
Events
OnBar(ArrayRef<Integer> indexs)
{
AvgValue1 = AverageFC(Close,FastLength);
AvgValue2 = AverageFC(Close,SlowLength);
PlotNumeric("MA1",AvgValue1);
PlotNumeric("MA2",AvgValue2);
If(MarketPosition <>1 && AvgValue1[1] > AvgValue2[1])
{
Buy(0,Open);
}
If(MarketPosition <>-1 && AvgValue1[1] < AvgValue2[1])
{
SellShort(0,Open);
}
}
If(MarketPosition <>1 && AvgValue1[1] > AvgValue2[1])
{
Buytocover(0,Open);
Buy(0,Open);
}
If(MarketPosition <>-1 && AvgValue1[1] < AvgValue2[1])
{
sell(0,Open);
SellShort(0,Open);
}
}
//不一定能起效果,如果要百分百先平仓成交再开仓,需要写订单管理算法交易模块,非常复杂,建议多加保证金,如果保证金只够一手开仓那杠杆也太高了,不建议这样执行程序化交易