平仓 并 反向开仓问题

 

if(VLT_1<fd && count_buys==0  && count_sells>0 )   //判断 持有 空单 和反向开仓条件
    {
      
   
     double ask = SymbolInfoDouble(Symbol(),SYMBOL_ASK);
   
      if(ask>OpenPriceL)
    
      {m_trade.PositionClose(m_symbol.Name(),5); //平空单
     
       m_trade.Buy(InpLots);     //开多单
       }

}


用 每次报价模式  回测  发现   代码  {m_trade.PositionClose(m_symbol.Name(),5); //平空单      不执行  , 但执行了后面的代码:  m_trade.Buy(InpLots);     //开多单

开始以为 是 价格允许偏差  5   这个参数 影响    , 把   5 换成   从0到 60    ,还是   有 这个问题  ,清问问题 出在哪里呢
     

原因: