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

 

Автор сего скрипта как я понимаю не из россии, боюсь не ответит.

Поэтому попрошу помощи здесь-

Как исправить предупреждение :

possible loss of data due to type conversion

В этом скрипте

https://www.mql5.com/ru/articles/download/5204/scraperbot04.mq5

 
erotin:

Автор сего скрипта как я понимаю не из россии, боюсь не ответит.

Поэтому попрошу помощи здесь-

Как исправить предупреждение :

possible loss of data due to type conversion

В этом скрипте

https://www.mql5.com/ru/articles/download/5204/scraperbot04.mq5

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

f_US=(float)StringToDouble(StringSubstr(CharArrayToString(ch_Buffer),i,8));
 


Я правильно понял, что в 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:

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

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

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