Что такое преобразование MT5 следующей команды из MT4?

 

Это заявления. Я хочу преобразовать его в MT5, но не получаю OrderOpenPrice (). Я пробовал пройти через сделку. Но я потерпел неудачу.

Пожалуйста, предложите мне, что я могу сделать

for(int loop_counter=OrdersHistoryTotal()-1; loop_counter>=0; loop_counter--)
{
 if(OrderSelect(loop_counter,SELECT_BY_POS,MODE_HISTORY))
   {
        if(OrderProfit()!=0.0)
          {
           if(OrderClosePrice()!=OrderOpenPrice())
                 {
                  if(OrderSymbol()==Symbol())
                        {
                         double intermeditate_calculation = MathAbs(OrderProfit() / (OrderClosePrice() - OrderOpenPrice()));
                         double result = (-OrderCommission()) / intermeditate_calculation;
                         break;
                        }
                 }
          }
   }
}
 
jaffer wilson:

Это заявления. Я хочу преобразовать его в MT5, но не получаю OrderOpenPrice (). Я пробовал пройти через сделку. Но я потерпел неудачу.

Пожалуйста, предложите мне, что я могу сделать

Если позиция не закрыта, то так…

      double posOpenPrice = 0;
      long posID = PositionGetInteger(POSITION_IDENTIFIER);
      if(HistorySelectByPosition(posID))
       {
        ulong orderTicket = HistoryOrderGetTicket(0);
        posOpenPrice = HistoryOrderGetDouble(orderTicket, ORDER_PRICE_OPEN);
       }

Из истории чуток не так, но тоже надо получить ID позиции и выбрать ордера и сделки которые участвовали в открытии, изменении и закрытии позиции.

 
Alexey Viktorov :

Если позиция не закрыта, то так…

Из истории чуток не так, но тоже надо получить ID позиции и выбрать ордера и сделки которые участвовали в открытии, изменении и закрытии позиции .

Заказ закрыт. Следовательно, я попытался получить position_ID, но цена, которую я получил, равна нулю. Я не знаю, как мне получить билет на сделку, чтобы получить open_price. Пожалуйста, предложите мне, если есть способ.

 
jaffer wilson:

Заказ закрыт. Следовательно, я попытался получить position_ID, но цена, которую я получил, равна нулю. Я не знаю, как мне получить билет на сделку, чтобы получить open_price. Пожалуйста, предложите мне, если есть способ.

Вы можете получить ID позиции из свойства сделки DEAL_POSITION_ID или ордера ORDER_POSITION_ID

 
Alexey Viktorov :

Вы можете получить ID позиции из свойства сделки DEAL_POSITION_ID или ордера ORDER_POSITION_ID

Спасибо, и это было полезно.

 
Забыл предупредить, что если позиция открывалась по рынку, то цена ордера открывшего позицию будет 0.0
Причина обращения: