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

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);
  } 
 }

先平仓后开仓该如何编写。
那位老师帮帮忙 合并修改
实际代码是先买卖后赋值 还是先赋值后买卖 哪样代码会更准确些了
开仓后无法平仓
账户空仓,开实盘后是居然先平仓再开仓。问题出在哪里?
老师好,请教一个问题,如何写当跟BAR上不能交易两次,比如开仓后不能平仓和平仓后不能再开仓?谢谢!
当账户开仓后,如何设置成自动价差止损,急
如何解决在同一根K线平仓后在开仓的手数问题
跨周期的问题那位老师帮我看看
老师麻烦帮忙看下该怎样修改

 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);
  } 
 }

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