为什么相同条件,平仓后不能反手开仓?

Params
 
Vars
      Series<Numeric> ma5; 
      Series<Numeric> ma10;
Events
    onBar(ArrayRef<Integer> indexs)
    {    
    
        ma5 = AverageFC(Close,5);
        ma10 = AverageFC(Close,10);
        PlotNumeric("MA5",ma5);
        PlotNumeric("MA10",ma10);        
        
        
        //平仓
            If(MarketPosition ==1 && CrossUnder(ma5[1] ,ma10[1]))
        {
            sell(0,Open);
        }
        
        If(MarketPosition==-1 &&  CrossOver(ma5[1] ,ma10[1]))
        {
            BuyToCover(0,Open);
        }
    
        
        //开仓
        If(MarketPosition ==0 && CrossOver(ma5[1] ,ma10[1]))
        {
            Buy(0,Open);
        }
        
        If(MarketPosition==0 && CrossUnder(ma5[1] ,ma10[1]))
        {
            SellShort(0,Open);
        }
    
    
}

请问这样写,为什么平仓后不同时开反向单?

老师好,请教一个问题,如何写当跟BAR上不能交易两次,比如开仓后不能平仓和平仓后不能再开仓?谢谢!
为什么用最简单的均线交易策略时 平仓后反手显示资金不足呢?
平仓延迟反手
如何写:在X根K线内触发过条件A后,满足条件B开仓
帮助文档案例8:延时反手不能在平仓bar延时几个Tick开仓,需要在下一个bar开盘开仓。怎么解决?
为什么不是在同一根K线上反手
实测帮助文件的延迟反手不能实现平仓之后延迟几个tick反手开仓
连续两次开仓方向不能相同怎么写
满足平仓条件,为什么不平仓呢
设置了SetTradeSide(1)为什么只平仓不开仓

如上图,平仓后为什么不在同根bar上反手?