Библиотеки: MT4Orders - страница 95

 
fxsaber #:

Она идеально соответствует хронологии. Еще раз. MT5 генерирует историю торговли. Это кривое представление закрытых позиций.

Надо ориентироваться не на то, что MT5 показывает, а на здравый смысл.

Хорошо, я понял. Вы фокусируетесь на процессе закрытия исторических ордеров.

А я хотел сказать, или, точнее, получить список позиций (ордеров на позиции), которые существовали на счёте между двумя указанными моментами времени.

Конечно, из-за операции CloseBy, цена и время закрытия некоторых ордеров могут быть неточными. Но для меня (как пользователя) это не критично, так как расчёт прибыли — правильный. Если потребуются детали, всегда можно посмотреть в разделе «Orders & Deals».
 
hini #:
список позиций (ордеров на позиции), которые существовали на счёте между двумя указанными моментами времени.
Это показывает MT4Orders в режиме без снепшотов. Т.е. сразу.
 
#define MT4ORDERS_BYPASS_MAXTIME 1000000

Когда этот макрос включён, почему-то иногда в журнал выводится строка с двумя или тремя тикетами: "18521123 22323214".

После того как закомментировал этот макрос, такого больше не наблюдалось. Я пытался найти Print в коде, но не нашёл.

 
hini #:

Когда этот макрос включён, почему-то иногда в журнал выводится строка с двумя или тремя тикетами: "18521123 22323214".

После того как закомментировал этот макрос, такого больше не наблюдалось. Я пытался найти Print в коде, но не нашёл.

Include\fxsaber\TradesID\ByPass.mqh

Когда-то MQ испоганили формирование таблицы исторических ордеров и не захотели это исправлять. Поэтому данный макрос не гарантирует свой функционал, которым обладал до дурной реализации MQ.
 
fxsaber #:

Некоторое время назад MQ испортил формирование таблицы исторических ордеров и не захотел ее исправлять. Поэтому данный макрос не гарантирует своей функциональности, которая была у него до плохой реализации MQ.
О чем вы говорите?
 
fxsaber # :
Поэтому данный макрос не гарантирует свой функционал, которым обладал до дурной реализации MQ.
Значит, нам придётся отказаться от этого макроса?
 
Alain Verleyen #:
О чем вы говорите?
Вот тут очень подробно с воспроизведением. Кратко - только что удаленный отложенный ордер может не попасть в конец торговой истории, т.к. она принудительно сортируется по тикетам.
Зашивается в Ex5 или задается терминалом при загрузке платформы MetaTrader 5 build 2940
Зашивается в Ex5 или задается терминалом при загрузке платформы MetaTrader 5 build 2940
  • 2021.06.19
  • www.mql5.com
Это как с транзакциями в OnTradeTransaction - очередность прихода транзакций не гарантируется. Одни транзакции фактически приходят после других хотя в теории должно быть наоборот. Супер-оптимизированная разработчиками HistorySelect дозаписывает в конец все новые ордера
 
hini #:
Значит, нам придётся отказаться от этого макроса?

Макрос использовал эту особенность.

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Новая версия платформы MetaTrader 5 build 2940: Перенос витрин MQL5-сервисов в рабочую область и обновление дизайна

fxsaber, 2021.06.11 09:47

При использовании HistorySelect от нуля, новые ордера попадают в конец таблицы во время работы советника - правильно.

  • Если работаете ТОЛЬКО с HistorySelect(0, INT_MAX), то во время работы советника новые ордера (что попадают в историю во время работы советника) будут дозаписываться в конец - сортировка по  ORDER_TIME_DONE_MSC.

Это было сломано. Поэтому макрос не может гарантировать свой функционал.


ЗЫ В Virtual при удалении отложенного ордера всегда идет дозапись в конец исторической таблицы ордеров. Также делает и MT5-тестер. Проблема только в Терминале.