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