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

 


Я правильно понял, что в mql5 в истории нет позиций, а есть только сделки? Судя по наличию HistoryDealsTotal() и отсутствию HistoryPositionsTotal().

Почему тогда на вкладке История терминала можно выбрать "Позиции", и они видны в истории?

Как получить цену закрытия позиций в этой истории?


 
secret:

Я правильно понял, что в mql5 в истории нет позиций, а есть только сделки? Судя по наличию HistoryDealsTotal() и отсутствию HistoryPositionsTotal().

Да.

Почему тогда на вкладке История терминала можно выбрать "Позиции", и они видны в истории?

Это одна из попыток интерпретации истории в виде позиций. По-моему, не самая удачная.

Как получить цену закрытия позиций в этой истории?

На хедже делаю так.

#property script_show_inputs

#include <MT4Orders.mqh> // https://www.mql5.com/en/code/16006

input TICKET_TYPE PositionTicket = 0;

void OnStart()
{
  if (OrderSelect(PositionTicket, SELECT_BY_TICKET))
    OrderPrint();
}
 
Alekseu Fedotov:

Попробуйте так

Спасибо
 
fxsaberДа.

Получается, чтобы распечатать профит открытой сделки, надо работать с одним списком и тикетом, а чтобы распечатать профит той же но закрытой сделки, надо работать уже с другим списком и другим тикетом?

 
secret:

Получается, чтобы распечатать профит открытой сделки, надо работать с одним списком и тикетом, а чтобы распечатать профит той же но закрытой сделки, надо работать уже с другим списком и другим тикетом?

Не понял вопроса.

 
secret:

Получается, чтобы распечатать профит открытой сделки, надо работать с одним списком и тикетом, а чтобы распечатать профит той же но закрытой сделки, надо работать уже с другим списком и другим тикетом?

Каждый ордер и каждая сделка имеют свой тикет, но ещё имеют ORDER_POSITION_ID и DEAL_POSITION_ID соответственно. Именно это и определяет принадлежность их к позиции.

 
secret:

Как получить цену закрытия позиций в этой истории?

Нужно еще хорошо понимать, что эта цена закрытия даже на хедже может иметь число знаков после запятой больше, чем Digits.


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

Разработчики хотели сделать аналогию с историей MT4, но сделали ее неудачно.

Когда в Терминале хочу посмотреть историю торгов, то использую расширение GUI. Там исторические позиции, как в MT4. Цены закрытия соответствуют времени закрытия и т.д.

Поэтому исторические позиции - это условность, которой можно давать различные интерпретации.
 
fxsaber:

Не понял вопроса.

Для расчета профита сделки нужна, в частности, цена открытия. Пока сделка открыта, цену открытия надо брать из списка позиций по тикету позиции. А когда сделка закрыта, то ту же самую цену открытия уже приходится брать из другого списка (сделок, а не позиций) по другому тикету. Так?

 
secret:

Для расчета профита сделки нужна, в частности, цена открытия. Пока сделка открыта, цену открытия надо брать из списка позиций по тикету позиции.

Не обязательно. Можете ее же взять из HistoryDeals. На хедже это будет в один шаг, на неттинге - в несколько.

А когда сделка закрыта, то ту же самую цену открытия уже приходится брать из другого списка (сделок, а не позиций) по другому тикету. Так?

Там только HistoryDeals.


Ну и если нужно еще вычислить величины проскальзыаний на открытии и закрытии, то нужно подключать еще HistoryOrders.

 
fxsaber:

Когда в Терминале хочу посмотреть историю торгов, то использую расширение GUI. Там исторические позиции, как в MT4. Цены закрытия соответствуют времени закрытия и т.д.

Поэтому исторические позиции - это условность, которой можно давать различные интерпретации.


На скрине видно, что MT5 показывает, что позиция имеет профит 0.71 и кривую цену закрытия (1.131878 - число знаков больше, чем Digits, и эта цена не соответствует цене символа во время закрытия).

Расширение GUI же показывает, что эта позиция состояла из двух позиций, закрытых в разное время. И профит у одной -0.09, у другой - +0.80. Что в итоге дает те же самые 0.71. Ну и цены закрытия соответствуют времени закрытия. Как в MT4, в общем.

Какое представление исторических MT5-позиций яснее - каждый может сам выбирать.