那位老师帮帮忙 该成先平仓后开仓

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); } } //不一定能起效果,如果要百分百先平仓成交再开仓,需要写订单管理算法交易模块,非常复杂,建议多加保证金,如果保证金只够一手开仓那杠杆也太高了,不建议这样执行程序化交易