Новая версия платформы MetaTrader 5 build 6230: больше возможностей AI - страница 11
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Время начала торговой сессии как определить автоматически, если оно меняется в истории? Сейчас оно с 7, но в спецификации с 00:00. А до 2024 было с 10. Обещают еще изменения.
Один раз на истории и сторонних источниках определить хронологию реальных торговых сессий. И потом заложить это в скрипт, который один раз создает кастомный символ только на торговых тиках.
Соответственно, в советник для Тестера не вставлять никаких условий, как это с происходит с советниками на форекс.
Да никак - прописать в коде время начала сессий для разных интервалов в коде на истории. Ждать каких то глобальных изменений и индивидуального подхода - наивно, так как это экономически не обосновано для разработчиков.
Так советники теряют универсальность. Под каждый инструмент свою версию писать, не вариант. Вот например МА из примеров - сделать 10 версий для 10 разных бирж...
Мое предложение - это не индивидуальный подход, а подойдет для всех бирж, не только к Московской.
И изменения предлагаю не глобальные, а добавить всего 1 бит в флаги, свободные места наверняка есть.
Один раз на истории и сторонних источниках определить хронологию реальных торговых сессий. И потом заложить это в скрипт, который один раз создает кастомный символ только на торговых тиках.
Соответственно, в советник для Тестера не вставлять никаких условий, как это с происходит с советниками на форекс.
Это опять не автоматизированное предложение, а с ручной проверкой сессий.
Мой вариант c использованием только Last, пока представляется самым лучшим.
Все настолько привыкли, что у MQ ничего не допросишься, что сами убеждают уже ничего не просить.
Простая же доработка и начнет работать из коробки для тысяч пользователей торгующих на разных биржах без хитро-выдуманных индивидуальных костылей.
Последняя рабочая версия была build 6259. Между ними ничего не менялось.
Проверьте 6266+. Только что обновил 6249 -> 6266 и успешно запустил. Все работает, включая AI Assistant, mcp, агенты тестирования и Webview2 окна. Ubuntu 26.04.1, установка модифицированным под поддержку 26 скриптом mq.
Под каждый инструмент свою версию писать, не вариант.
https://www.moex.com/msn/stocks-morning
На мосбирже ликвидность давно просела, поэтому в моменты сведения заявок, может быть что угодно, это не баг, это рынок в условиях низкой ликвидности.
Протестировал еще ситуацию с тиками в неторговое время.
1) открыл сделку sell в торговое время в 18:39:59 со стопом ниже цен которые были в неторговое (видно по тонкой красной линии, где была Ask). И что интересно стоп не сработал. Это обнадеживает. Но не понятно, как тестер определил, что время неторговое и что нельзя применять SL.
2) отправил запрос на sell в неторговое время в 18:49:55 и тестер его исполнил, но биржа должна отклонить. Это однозначно ошибка и если бы был флаг, как предлагаю, то и это можно было бы отклонить.
Предполагаю, что тестер определяет неторговое время по отношению цен Bid Ask и поэтому не исполнил SL.
Из экспорта тиков:
В 18:40:02 ставится неправильные Bid>Ask потом идут тики без объемов и с 18:45 тики с объемами.
В 19:00:04.717 123.00 134.12 всего 1 тик ставится правильным Bid<Ask, но Ask ставится очень большим (красная линия на графике)
В 19:00:05 снова неправильные Bid>Ask, дальше тики без объемов и с объемами
В 19:04:52 возвращается правильный Bid<Ask и дальше с 19:05 начинается торговая сессия.
Получается что при Bid>Ask неторговое время и нужно все пропускать.
Но тик в 19:00:04 не укладывается в это предположение. Возможно дополнительным фильтром является то, что он без объема, т.е. до первого тика с объемом после Bid>Ask нужно все тики пропускать.
Видимо это и есть хитрый костыль которым пользуется MQ тестер и биржа. А можно было бы просто 1-м битом из флагов.
Но ошибку из п.2 это не предотвратило.
Попробую и себе это закодировать.
Прореженый экспорт тиков (удалены сотни тиков с объемами), если кому интересно:
<DATE> <TIME> <BID> <ASK> <LAST> <VOLUME> <FLAGS>
2024.06.07 18:39:58.719 122.44 1.00000000 56
2024.06.07 18:39:58.766 122.44 500.00000000 56
2024.06.07 18:39:58.866 122.44 3.00000000 56
2024.06.07 18:39:59.077 122.42 2
2024.06.07 18:40:02.219 124.50 2
2024.06.07 18:40:09.125 122.40 4
2024.06.07 18:40:10.423 122.44 4
2024.06.07 18:40:16.138 122.11 4
2024.06.07 18:40:33.219 122.00 4
2024.06.07 18:40:37.162 120.60 4
2024.06.07 18:40:37.925 122.00 4
2024.06.07 18:40:39.724 120.15 4
2024.06.07 18:40:40.195 122.00 4
2024.06.07 18:40:41.156 119.85 4
2024.06.07 18:40:41.745 122.00 4
2024.06.07 18:40:43.002 120.45 4
2024.06.07 18:40:43.418 122.00 4
2024.06.07 18:40:46.738 120.75 4
2024.06.07 18:40:47.063 122.00 4
2024.06.07 18:40:47.993 121.35 4
2024.06.07 18:40:48.518 122.00 4
2024.06.07 18:40:49.344 124.51 2
2024.06.07 18:40:49.676 121.65 4
2024.06.07 18:40:50.117 122.00 4
2024.06.07 18:40:50.954 121.35 4
2024.06.07 18:40:51.450 122.00 4
2024.06.07 18:40:52.216 121.00 4
2024.06.07 18:40:57.430 119.25 4
2024.06.07 18:40:57.878 121.00 4
2024.06.07 18:40:59.925 118.20 4
2024.06.07 18:41:00.582 124.51 121.00 6
2024.06.07 18:41:10.659 122.00 4
2024.06.07 18:41:15.434 121.00 4
2024.06.07 18:41:16.735 124.50 2
2024.06.07 18:41:20.734 124.52 2
2024.06.07 18:41:25.836 124.50 2
2024.06.07 18:42:07.539 125.00 2
2024.06.07 18:45:12.053 122.50 100.00000000 56
...
2024.06.07 18:49:38.883 122.50 1.00000000 88
2024.06.07 18:49:55.460 122.50 14.00000000 88
2024.06.07 19:00:04.717 123.00 134.12 6
2024.06.07 19:00:05.252 122.96 4
2024.06.07 19:00:05.604 122.58 4
2024.06.07 19:00:06.885 123.01 2
2024.06.07 19:00:13.358 131.13 2
2024.06.07 19:00:13.876 122.50 4
2024.06.07 19:00:54.961 132.50 2
2024.06.07 19:01:30.077 131.13 122.50 6
2024.06.07 19:01:31.830 132.50 2
2024.06.07 19:01:42.297 131.13 2
2024.06.07 19:01:45.138 134.00 2
2024.06.07 19:03:19.156 134.00 122.49 6
2024.06.07 19:03:20.834 134.14 2
2024.06.07 19:03:32.904 134.00 2
2024.06.07 19:03:38.211 131.13 2
2024.06.07 19:03:46.854 134.00 2
2024.06.07 19:04:06.388 134.00 122.48 6
2024.06.07 19:04:47.817 122.40 4
2024.06.07 19:04:52.026 122.55 20.00000000 88
2024.06.07 19:04:52.026 122.55 5.00000000 88
2024.06.07 19:04:52.027 122.55 1.00000000 88
2024.06.07 19:04:52.027 122.55 10.00000000 88
2024.06.07 19:04:52.027 122.55 50.00000000 88
2024.06.07 19:04:52.027 122.55 12.00000000 88
2024.06.07 19:04:52.027 122.55 106.00000000 88
2024.06.07 19:04:52.027 122.55 122.58 6
2024.06.07 19:05:02.622 122.55 150.00000000 88
2024.06.07 19:05:02.622 122.55 150.00000000 88
2024.06.07 19:05:02.622 122.55 150.00000000 88
Решил распечатать тики в более наглядном виде, чем выше и обнаружил баг.
Код для воспроизведения:
Несколько строк из терминала:
Они же из распечатки:
2024.06.07 18:49:14 2024.06.07 18:49:14.928 122.5 122.5 122.5 10 10.0 344
2024.06.07 18:49:38 2024.06.07 18:49:38.883 122.5 122.5 122.5 1 1.0 344
2024.06.07 18:49:55 2024.06.07 18:49:55.460 122.5 122.5 122.5 14 14.0 344
2024.06.07 19:00:04 2024.06.07 19:00:04.717 123.0 134.12 122.5 14 14.0 6
2024.06.07 19:00:05 2024.06.07 19:00:05.252 123.0 122.96 122.5 14 14.0 4
2024.06.07 19:00:05 2024.06.07 19:00:05.604 123.0 122.58 122.5 14 14.0 4
2024.06.07 19:00:06 2024.06.07 19:00:06.885 123.01 122.58 122.5 14 14.0 2
2024.06.07 19:00:13 2024.06.07 19:00:13.358 131.13 122.58 122.5 14 14.0 2
2024.06.07 19:00:13 2024.06.07 19:00:13.876 131.13 122.5 122.5 14 14.0 4
2024.06.07 19:00:54 2024.06.07 19:00:54.961 132.5 122.5 122.5 14 14.0 2
2024.06.07 19:01:30 2024.06.07 19:01:30.77 131.13 122.5 122.5 14 14.0 6
2024.06.07 19:01:31 2024.06.07 19:01:31.830 132.5 122.5 122.5 14 14.0 2
2024.06.07 19:01:42 2024.06.07 19:01:42.297 131.13 122.5 122.5 14 14.0 2
2024.06.07 19:01:45 2024.06.07 19:01:45.138 134.0 122.5 122.5 14 14.0 2
2024.06.07 19:03:19 2024.06.07 19:03:19.156 134.0 122.49 122.5 14 14.0 6
2024.06.07 19:03:20 2024.06.07 19:03:20.834 134.14 122.49 122.5 14 14.0 2
2024.06.07 19:03:32 2024.06.07 19:03:32.904 134.0 122.49 122.5 14 14.0 2
2024.06.07 19:03:38 2024.06.07 19:03:38.211 131.13 122.49 122.5 14 14.0 2
2024.06.07 19:03:46 2024.06.07 19:03:46.854 134.0 122.49 122.5 14 14.0 2
2024.06.07 19:04:06 2024.06.07 19:04:06.388 134.0 122.48 122.5 14 14.0 6
2024.06.07 19:04:47 2024.06.07 19:04:47.817 134.0 122.4 122.5 14 14.0 4
2024.06.07 19:04:52 2024.06.07 19:04:52.26 134.0 122.4 122.55 20 20.0 344
2024.06.07 19:04:52 2024.06.07 19:04:52.26 134.0 122.4 122.55 5 5.0 344
Выделенные строки показывают объем 14, но объем не указан на скриншоте из терминала, т.е. = 0.
Предполагаю, что тестер не отфильтровал их по флагам и оставил последний объем из известных, так же и цену Last оставил последнюю 122.5.
Только не пишите, что я должен костылить правильные объемы и Last-ы через флаги. Инструкция https://www.mql5.com/ru/docs/constants/structures/mqltick этого не предлагает.
Какая то деградация платформы (. Примитивные, базовые вещи ломают.
Интересно что за флаг 256, который там вместо 88 видим 344 = 88+256 ?
Вот используют флаги для чего-то необъявленного, почему для полезного дела не использовать, для пометки о торговой сессии?
Известные флаги: 2,4,8,16,32,64. Так что еще 128 есть, но в распечатке не видно.
Интересно что за флаг 256, который там вместо 88 видим 344 = 88+256 ?
Вот используют флаги для чего-то необъявленного, почему для полезного дела не использовать, для пометки о торговой сессии?
Известные флаги: 2,4,8,16,32,64. Так что еще 128 есть, но в распечатке не видно.
Это давняя и известная история:
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
MqlTick.flags выводит другие флаги (отличаются от TICK_FLAG_*)
Stanislav Korotky, 2024.08.22 18:14
Все прочие биты являются внутренними (проставляются платформой для себя в различных ситуациях) и не документированы, потому что могут меняться. На форуме представители MQ рассказывали про некоторые такие доп.флаги - можно поискать контекстно (лучше гуглом). Они никак не мешают работать с публичными флагами.
Из экспорта тиков:
В 18:40:02 ставится неправильные Bid>Ask потом идут тики без объемов и с 18:45 тики с объемами.
В 19:00:04.717 123.00 134.12 всего 1 тик ставится правильным Bid<Ask, но Ask ставится очень большим (красная линия на графике)
В 19:00:05 снова неправильные Bid>Ask, дальше тики без объемов и с объемами
В 19:04:52 возвращается правильный Bid<Ask и дальше с 19:05 начинается торговая сессия.
Получается что при Bid>Ask неторговое время и нужно все пропускать.
Но тик в 19:00:04 не укладывается в это предположение. Возможно дополнительным фильтром является то, что он без объема, т.е. до первого тика с объемом после Bid>Ask нужно все тики пропускать.
Попробую и себе это закодировать.
Закодировал и проверил. И увидел, что время остановки торгов еще менялось.
Сначала было как в таблице с 18:40 до 19:05.
Потом стало только с 18:40 до 18:45
А сейчас с 18:54/55 до 18:57 укладываются
Вот момент перехода на последний вариант - с 23 марта 2026
2026.03.19 18:40:09 No trading: 2026.03.19 18:40:09
2026.03.19 18:45:28 First trade tick: 2026.03.19 18:45:28.388 130.7 130.71 130.71 10 10.0 312
2026.03.20 06:50:05 No trading: 2026.03.20 06:50:05
2026.03.20 07:00:00 First trade tick: 2026.03.20 07:00:00.133 130.76 130.97 130.74 1 1.0 344
2026.03.20 18:40:01 No trading: 2026.03.20 18:40:01
2026.03.20 18:45:13 First trade tick: 2026.03.20 18:45:13.922 130.97 131.0 131.0 1 1.0 312
2026.03.23 06:50:10 No trading: 2026.03.23 06:50:10
2026.03.23 07:00:00 First trade tick: 2026.03.23 07:00:00.226 132.07 132.1 132.1 7 7.0 312
2026.03.23 14:12:59 No trading: 2026.03.23 14:12:59 -- бывают и случайные сбойные тики в середине дня
2026.03.23 14:13:00 First trade tick: 2026.03.23 14:13:00.8 129.96 129.98 130.01 50 50.0 312
2026.03.23 18:55:03 No trading: 2026.03.23 18:55:03
2026.03.23 18:57:40 First trade tick: 2026.03.23 18:57:40.949 132.21 132.23 132.21 4 4.0 344
2026.03.24 06:50:07 No trading: 2026.03.24 06:50:07
2026.03.24 07:00:00 First trade tick: 2026.03.24 07:00:00.279 131.59 131.67 131.65 1 1.0 344
2026.03.24 18:55:05 No trading: 2026.03.24 18:55:05
2026.03.24 18:57:55 First trade tick: 2026.03.24 18:57:55.999 135.59 135.6 135.6 25 25.0 344
Так что вручную календари крайне сложно прописать и информацию неясно где брать - по ссылке из ранних постов на сайте биржи по прежнему вариант с 18:40 до 19:05 показан. Так что флаг для торговой сессии был бы очень кстати, вместо всего этого...
Вот из терминала на 23 марта

В 18:55:03 Ask сделали меньше Bid и в 18:57:40, вернули выше Bid. Да и после этих моментов тики выглядят как обычные торговые.
И бары отсутствуют только за 55 и 56 минуты: (после 54 идет 57)

До 19:00 3 бара с одной ценой. Видимо там нет торговли. Но мой алгоритм не позволяет их отсеять, пока что, нужно еще условие придумать.