Новая версия платформы MetaTrader 5 build 2940: Перенос витрин MQL5-сервисов в рабочую область и обновление дизайна - страница 16
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Я работаю только на отложенных ордерах. Потому и запрашиваю изменения.
Я не предлагаю выкинуть время установки из структуры ордера вообще. Я имею в виду, что раз ордер уже в истории, значит это исполненный/отменённый ордер. А значит по этому результату и логично сортировать. По крайней мере для того история и есть, чтобы на результат ориентироваться. А время жизни ордера из истории уже более специфично, если стратегия того требует.
Предложил Вам предоставить сценарий, где текущее положение дел полезно. В ответ одна философия. Я практик.
Странно, что практик знает только об одном способе использовании отложенных ордеров. Без обид.
Заменил в скрипте ORDER_TIME_DONE_MSC на ORDER_TIME_SETUP_MSC.
Да, ордера отсортированы по времени установки. Это принципиальная ошибка! Очень прошу разработчиков высказаться по этому поводу. Жутко тормозной и нелогичный код получается, если нужно что-то отслеживать, синхронизировать и т.д. Такое ощущение, что это просто ошибка опечатки в коде: вместо Done написали Setup.
ЗЫ Похоже, время никак не анализировали. Просто по ORDER_TICKET сортировка. Для сделок это логично. Для ордеров - абсолютно нет!Подождите,
когда-то вы сами писали, что "Ордера в таблице истории отсортированы по времени выставления (не исполнения/отмены). Учитывайте это обстоятельство при вызовах HistorySelect."
https://www.mql5.com/ru/forum/170952/page52#comment_5561497
И это не вызывало никаких претензий. Концепция поменялась?
А точно ли сортировка ордеров в порядке попадания в историю ВСЕГДА эквивалентна сортировке по ORDER_TIME_DONE_MSC?
А то может опять какая-нибудь затыка вылезет?
Вообще логично что в структуре отложенных ордеров должно быть 2 времени.
Ребята, да что же вы так совсем не в курсе?! Все ордера (не только отложенные) имеют два времени - рождения и попадания в историю.
Странно, что практик знает только об одном способе использовании отложенных ордеров. Без обид.
Вы так и не привели ни одного сценария, о котором просил. Скорее всего, потому что не поняли, о чем говорю.
Вовсю использую при анализе SETUP и DONE-время. Если что-то не понимаете, лучше просто уточнить, чем гадать.
Ну нельзя же Вам быть не в курсе, что здесь на форуме лучше всех разбираюсь в ордерной системе MT5.
Ребята, да что же вы так совсем не в курсе?! Все ордера (не только отложенные) имеют два времени - рождения и попадания в историю.
По справке - ORDER_TIME_DONE = "Время исполнения или снятия ордера". Это все-таки не то же самое, что время попадания в историю.
Хотя близко.
Подождите,
когда-то вы сами писали, что "Ордера в таблице истории отсортированы по времени выставления (не исполнения/отмены). Учитывайте это обстоятельство при вызовах HistorySelect."
https://www.mql5.com/ru/forum/170952/page52#comment_5561497
И это не вызывало никаких претензий. Концепция поменялась?
Ну Вы даете, выцепить сообщение, которому четыре года! С тех пор все ОЧЕНЬ сильно поменялось. Разработчики внесли огромные коррективы. Стало возможно делать, что раньше не представлялось. Куча багов исправлено, масса улучшений торговой части. Из недавних: кеши истории и скорость акцептирования ордеров. Замечу, что это никому из практиков не надо, но разработчики лучше воспринимают конструктивную критику. Так что сделали. Выше привел исчерпывающую конструктивную критику. Воспроизводится 100% неоднозначность. Приведены доводы, почему одно поведения правильное, а другое - нет.
А точно ли сортировка ордеров в порядке попадания в историю ВСЕГДА эквивалентна сортировке по ORDER_TIME_DONE_MSC?
Супер-оптимизированная разработчиками HistorySelect(0, INT_MAX) дозаписывает в конец все новые ордера. Они туда попадают согласно приходу соответствующих OnTradeTransaction. Если два ордера закрылись с разницей в микросекунду, но попали в разные миллисекунды, то первый ордер может (сетевой пакет) запоздать теоретически. Поэтому на миллисекунду закрытый позже ордер может попасть в историю раньше.
Но это абсолютно не принципиально! Важно - дозаписывание в конец.
Могу привести сценарии реальной торговли, когда HistorySelect выдает полный бред с точки зрения логики использования. Сейчас для эффективой работы годится только HistorySelect(0, INT_MAX).
Но что ордера сортируются по времени установки, логики не вижу.
А почему Вы решили, что они вообще сортируются? Изначально ордера идут по времени установки. Сортировка требует дополнительного времени, поэтому логично что результат в ряде случаев получается как есть - т.е. без сортировки.