Новая версия платформы MetaTrader 5 build 2940: Перенос витрин MQL5-сервисов в рабочую область и обновление дизайна - страница 28
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Думаю что закладываться нельзя.
Формально ситуации одинаковые, но на самом деле это сравнение теплого с мягким.
В истории сортировку никто не продумывал. Сделано просто, как сделали. Без какого-либо осознания, как может быть полезно, а что - наоборот.
Сейчас же предлагается на эту тему подумать.
Сейчас же предлагается на эту тему подумать.
Допускаю, что при записи в конец в общем случае ордер исполнившийся раньше будет записан фактически позже
Допускаю, что даже при записи в конец в общем случае ордер исполнившийся раньше будет записан фактически позже
Не понял.
Результат Тестера.
Все четко и правильно в Тестере! Это не повод ломать Тестер. Это повод вернуть хотя бы поведение Терминала к тому, что было еще в b2958. Там работало только для inFrom = 0, но работало. В Тестере работает для любого inFrom правильно. Это абсолютно логично.
Что имеем на данный момент. HistorySelect в Терминале и в Тестере работают разными алгоритмами. При этом в Тестере этот алгоритм удобный и логичный, да еще и супер-быстрый - дозапись всего, что приходит в историю, в конец таблицы. В Терминале же - нет.
Заметьте, не упоминаю сортировку по какому-либо признаку во время работы советника. Просто говорю о дозаписи в конец (а не в середину) новых элементов истории.
Если же говорить о сортировке, то она нужна только один раз - при запуске советника. И сортировка должна быть по ORDER_TIME_DONE_MSC (при совпадающих значениях - по тикету). Тогда будет полная однозначность HistorySelect-таблицы во время работы и сразу после запуска.
Не понял.
Это как с транзакциями в OnTradeTransaction - очередность прихода транзакций не гарантируется. Одни транзакции фактически приходят после других (хотя в теории должно быть наоборот), а Тестере - все идеально
Это как с транзакциями в OnTradeTransaction - очередность прихода транзакций не гарантируется. Одни транзакции фактически приходят после других (хотя в теории должно быть наоборот), а Тестере - все идеально
Об этом сразу написал.
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Новая версия платформы MetaTrader 5 build 2940: Перенос витрин MQL5-сервисов в рабочую область и обновление дизайна
fxsaber, 2021.06.11 15:24
Супер-оптимизированная разработчиками HistorySelect(0, INT_MAX) дозаписывает в конец все новые ордера. Они туда попадают согласно приходу соответствующих OnTradeTransaction. Если два ордера закрылись с разницей в микросекунду, но попали в разные миллисекунды, то первый ордер может (сетевой пакет) запоздать теоретически. Поэтому на миллисекунду закрытый позже ордер может попасть в историю раньше.
Но это абсолютно не принципиально! Важно - дозаписывание в конец.
Формально ситуации одинаковые, но на самом деле это сравнение теплого с мягким.
Могу привести еще пример "гарантий":
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
"Плавающая" ошибка PositionSelect()
MQ Alexander, 2016.08.03 18:00
Что касается этой фразы.
Судя по всему - она осталась из документации к одной из начальных версий терминала с асинхронной торговли. В ближайшее время уберём. Виновные будут расстреляны.
Могу привести еще пример "гарантий":
Поэтому и не полагаюсь исключительно на OnTradeTransaction. И даже историю проверяю на корректность.
Думаю что закладываться нельзя. В свое время возник такой вопрос:
Уточните, когда порядок поменяли - это повлияло на уже работу уже откомпилированных .ex5 или только на новые компиляции?
Т.е. порядок загрузки зашивается в .ex5 или задается терминалом при загрузке программы?
Уточните, когда порядок поменяли - это повлияло на уже работу уже откомпилированных .ex5 или только на новые компиляции?
Берете дату из сообщения, прибавляете один\два года - получается, что порядок меняли 4-5 лет назад. Но это было приведено лишь как пример неожиданных изменений и относится к тогда еще 32х битному MetaTrader 5. В 64x битном - не знаю - может там изначально другой порядок был
Т.е. порядок загрузки зашивается в .ex5 или задается терминалом при загрузке программы?
В такой постановке вопроса - зашивается в .ex5