Встречные позиции и закрытие позиций

 

Доброго времени суток! Сразу скажу: я -дилетант в алгоритмической торговле.  Прошу знатоков подсказать, уместно ли использование встречных позиций для закрытия существующих? 

Конкретно мне интересно, могу ли я при отправке торгового запроса TRADE_ACTION_CLOSE_BY  не указывать тикет встречной позиции (т.е. сформирует ли брокер самостоятельно встречную позицию на основе указанных мной данных)? Если такая реализация не уместна - для чего вообще нужны встречные позиции, если можно оформить такую реализацию:

OrderMasterReport ClosePosition(ulong Ticket)
     {
      OrderMasterReport Report();
      MqlTradeRequest request= {};
      MqlTradeResult result= {};
      PositionSelectByTicket(Ticket);
      request.action=TRADE_ACTION_DEAL;                      // тип торговой операции
      request.symbol=TraidingSymbol;                         // символ
      request.volume=PositionGetDouble(POSITION_VOLUME);     // объём
      if(PositionGetInteger(POSITION_TYPE) == POSITION_TYPE_BUY)
         request.type=ORDER_TYPE_SELL;                       //тип встречной позиции
      else
         request.type=ORDER_TYPE_BUY;                        //тип встречной позиции
      if(!OrderSend(request,result))
        {
         Report.ErrorCode = result.retcode;
         Report.ResultMessage = result.comment;
         return(Report);
        }
      else
        {
         Report.InteractionResult = true;
         Report.ResultTicket = result.order;
         Report.ErrorCode = result.retcode;
         Report.ResultMessage = result.comment;
         return(Report);
        }
     }

P.s. Я понимаю, что TRADE_ACTION_CLOSE_BY необходим, но в связи со свои непрофессионализмом пока не могу найти ему применение. Заранее спасибо всем умным людям!

 

CLOSE_BY применяется для сокращения разно направленных позиций

Наппример, у вас открыто Бай 0,1 kn и Sell 0.1 лота. Очевидно что при движениии цены фин. результат обоих сделок равен нулю. НО задействована лишняя маржа под эти позиции. Вот их можно сократить. Применив CLOSE_BY.