Вопросы от начинающих MQL5 MT5 MetaTrader 5 - страница 1058

 

В MqlTradeResult result.price получаю 0 при исполнении лимитного ордера (BUY STOP в моем случае).

Остальные поля, такие как объем, ордер и пр. приходят с данными. Почему цена 0? Или как правильно?

p.s. я смотрю в дебаггере на истории.

 
leonerd:

В MqlTradeResult result.price получаю 0 при исполнении лимитного ордера (BUY STOP в моем случае).

Остальные поля, такие как объем, ордер и пр. приходят с данными. Почему цена 0? Или как правильно?

p.s. я смотрю в дебаггере на истории.

Ну так и есть. При ORDER_TYPE_BUY в result.price я получаю цену, а при ORDER_TYPE_BUY_STOP туда же получаю 0. Почему?

 
Цена в сделке, подтверждённая брокером. Зависит от поля deviation в торговом запросе и/или от типа торговой операции


Т.е. это для сделки только. А как же цену ордера получить после установки через OrderSend()? Через ответ MqlTradeResult я имею в виду, а не через всякие обработчики транзакций. Как-то непонятно, почему если есть сделка, то в ответе есть цена, а если лимитный ордер, то там цены его нет.

 
leonerd:

Т.е. это для сделки только. А как же цену ордера получить после установки через OrderSend()? Через ответ MqlTradeResult я имею в виду, а не через всякие обработчики транзакций. Как-то непонятно, почему если есть сделка, то в ответе есть цена, а если лимитный ордер, то там цены его нет.

Request.price.

 
fxsaber:

Request.price.

Гипотетически цена запроса может быть изменена на сервере и ордер может быть установлен с другой ценой отличной от цены в ордере.

 
leonerd:

Гипотетически цена запроса может быть изменена на сервере и ордер может быть установлен с другой ценой отличной от цены в ордере.

Такое возможно только в том случае, если отправляется маркет-ордер с Request.price = 0.

ЗЫ На MT4 этот вопрос никого не беспокоил. По какой причине он должен возникать на MT5?
 
fxsaber:

Такое возможно только в том случае, если отправляется маркет-ордер с Request.price = 0.

ЗЫ На MT4 этот вопрос никого не беспокоил. По какой причине он должен возникать на MT5?

Тут очевидно какой-то косяк логический. MqlTradeResult - результат торговой операции. Лимитный ордер - торговая операция? Да. Объем, другие параметры приходят в эту структуру. Почему же не цена? Непонятно.

 
leonerd:

Тут очевидно какой-то косяк логический. MqlTradeResult - результат торговой операции. Лимитный ордер - торговая операция? Да. Объем, другие параметры приходят в эту структуру. Почему же не цена? Непонятно.

Отложенный ордер - не торговая операция. Это приказ на исполнение по цене, указанной в ордере. Торговая операция случится по факту исполнения ордера - сделка, которая породит позицию, либо изменит существующую в зависимости от типа счёта (хедж, неттинг)

 
Artyom Trishkin:

Отложенный ордер - не торговая операция. Это приказ на исполнение по цене, указанной в ордере. Торговая операция случится по факту исполнения ордера - сделка, которая породит позицию, либо изменит существующую в зависимости от типа счёта (хедж, неттинг)

Хорошо, я неправильно выразился. Давайте цитировать первоисточник:

Структура результата торгового запроса (MqlTradeResult)

В ответ на торговый запрос постановки ордера в торговую систему, торговый сервер возвращает данные, содержащие информацию о результате обработки торгового запроса в виде специальной предопределенной структуры MqlTradeResult.


p.s. где ж тут цитирование в редакторе? Мне в хтмл что ли лезть? Как неудобно-то.

 

p.s. где ж тут цитирование в редакторе? Мне в хтмл что ли лезть? Как неудобно-то.

нашел
Причина обращения: