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

 
traveller00:

Я работаю только на отложенных ордерах. Потому и запрашиваю изменения.


Я не предлагаю выкинуть время установки из структуры ордера вообще. Я имею в виду, что раз ордер уже в истории, значит это исполненный/отменённый ордер. А значит по этому результату и логично сортировать. По крайней мере для того история и есть, чтобы на результат ориентироваться. А время жизни ордера из истории уже более специфично, если стратегия того требует.

Вообще логично что в структуре отложенных ордеров должно быть 2 времени.
 
fxsaber:

Предложил Вам предоставить сценарий, где текущее положение дел полезно. В ответ одна философия. Я практик.

Странно, что практик знает только об одном способе использовании отложенных ордеров. Без обид.

 
fxsaber:

Заменил в скрипте ORDER_TIME_DONE_MSC на ORDER_TIME_SETUP_MSC.

Да, ордера отсортированы по времени установки. Это принципиальная ошибка! Очень прошу разработчиков высказаться по этому поводу. Жутко тормозной и нелогичный код получается, если нужно что-то отслеживать, синхронизировать и т.д. Такое ощущение, что это просто ошибка опечатки в коде: вместо Done написали Setup.

ЗЫ Похоже, время никак не анализировали. Просто по ORDER_TICKET сортировка. Для сделок это логично. Для ордеров - абсолютно нет!

Подождите,

когда-то вы сами писали, что "Ордера в таблице истории отсортированы по времени выставления (не исполнения/отмены). Учитывайте это обстоятельство при вызовах HistorySelect."

https://www.mql5.com/ru/forum/170952/page52#comment_5561497


И это не вызывало никаких претензий. Концепция поменялась?

Особенности языка mql5, тонкости и приёмы работы
Особенности языка mql5, тонкости и приёмы работы
  • 2017.08.04
  • www.mql5.com
В данной теме будут обсуждаться недокументированные приёмы работы с языком mql5, примеры решения тех, или иных задач...
 
fxsaber:

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

А точно ли сортировка  ордеров в порядке попадания в историю ВСЕГДА эквивалентна сортировке по ORDER_TIME_DONE_MSC?

А то может опять какая-нибудь затыка вылезет?

 
Valeriy Yastremskiy:
Вообще логично что в структуре отложенных ордеров должно быть 2 времени.

Ребята, да что же вы так совсем не в курсе?! Все ордера (не только отложенные) имеют два времени - рождения и попадания в историю.

 
Artyom Trishkin:

Странно, что практик знает только об одном способе использовании отложенных ордеров. Без обид.

Вы так и не привели ни одного сценария, о котором просил. Скорее всего, потому что не поняли, о чем говорю.

Вовсю использую при анализе SETUP и DONE-время. Если что-то не понимаете, лучше просто уточнить, чем гадать.

Ну нельзя же Вам быть не в курсе, что здесь на форуме лучше всех разбираюсь в ордерной системе MT5.

 
fxsaber:

Ребята, да что же вы так совсем не в курсе?! Все ордера (не только отложенные) имеют два времени - рождения и попадания в историю.

По справке - ORDER_TIME_DONE = "Время исполнения или снятия ордера". Это все-таки не то же самое, что время попадания в историю.

Хотя близко.

 
mktr8591:

Подождите,

когда-то вы сами писали, что "Ордера в таблице истории отсортированы по времени выставления (не исполнения/отмены). Учитывайте это обстоятельство при вызовах HistorySelect."

https://www.mql5.com/ru/forum/170952/page52#comment_5561497


И это не вызывало никаких претензий. Концепция поменялась?

Ну Вы даете, выцепить сообщение, которому четыре года! С тех пор все ОЧЕНЬ сильно поменялось. Разработчики внесли огромные коррективы. Стало возможно делать, что раньше не представлялось. Куча багов исправлено, масса улучшений торговой части. Из недавних: кеши истории и скорость акцептирования ордеров. Замечу, что это никому из практиков не надо, но разработчики лучше воспринимают конструктивную критику. Так что сделали. Выше привел исчерпывающую конструктивную критику. Воспроизводится 100% неоднозначность. Приведены доводы, почему одно поведения правильное, а другое - нет.

 
mktr8591:

А точно ли сортировка  ордеров в порядке попадания в историю ВСЕГДА эквивалентна сортировке по ORDER_TIME_DONE_MSC?

Супер-оптимизированная разработчиками HistorySelect(0, INT_MAX)  дозаписывает в конец все новые ордера. Они туда попадают согласно приходу соответствующих OnTradeTransaction. Если два ордера закрылись с разницей в микросекунду, но попали в разные миллисекунды, то первый ордер может (сетевой пакет) запоздать теоретически. Поэтому на миллисекунду закрытый позже ордер может попасть в историю раньше.

Но это абсолютно не принципиально! Важно - дозаписывание в конец.

Могу привести сценарии реальной торговли, когда HistorySelect выдает полный бред с точки зрения логики использования. Сейчас для эффективой работы годится только HistorySelect(0, INT_MAX).

 
traveller00:

Но что ордера сортируются по времени установки, логики не вижу.

А почему Вы решили, что они вообще сортируются? Изначально ордера идут по времени установки. Сортировка требует дополнительного времени, поэтому логично что результат в ряде случаев получается как есть - т.е. без сортировки.  

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