Смотри, как бесплатно скачать роботов
Ищи нас в Twitter!
Ставь лайки и следи за новостями
Интересный скрипт?
Поставь на него ссылку - пусть другие тоже оценят
Понравился скрипт?
Оцени его работу в терминале MetaTrader 5
Советники

Broker Clock Auditor - эксперт для MetaTrader 5

Quoc Dat Quach
Quoc Dat Quach
Software engineer with 8 years in fintech and mobile, writing MQL4/MQL5 since 2017. I build Expert Advisors, indicators, trade and risk-management panels and utilities for MT4/MT5, and I trade forex and gold on MT5 myself.
| Russian English 中文 Español Deutsch 日本語 Português 한국어 Français Italiano Türkçe
Просмотров:
16
Рейтинг:
(1)
Опубликован:
MQL5 Фриланс Нужен робот или индикатор на основе этого кода? Закажите его на бирже фрилансеров Перейти на биржу

Каждый сессионный фильтр в советнике написан с учетом серверного времени, а серверное время зависит от того, какие часы выбрал брокер. Некоторые серверы работают по UTC, некоторые — по UTC+2 зимой и UTC+3 летом, причем те, у которых происходит смена времени, не все переходят на новое время в один и тот же уик-энд. Этот инструмент считывает время из собственной ценовой истории символа, а не из сообщений на форуме: торговая неделя на Forex и CME заканчивается в 17:00 по нью-йоркскому времени, поэтому сравнение серверного времени каждого недельного закрытия с этим моментом в формате UTC позволяет определить смещение сервера для данной недели. За последние 60 недель это составляет около 60 измерений — по одному на каждое закрытие — и по их последовательности инструмент определяет, сдвигались ли часы, когда и по какому календарю — американскому или европейскому переходу на летнее время. Затем он выводит время сервера, в которое открываются рынки Лондона, Нью-Йорка, Токио и Сиднея в каждую из предстоящих недель.

bca-panel

Демо-сервер Exness, пять символов в окне «Market Watch», по 60 недель баров H1 для каждого, один проход за 12,3 мс. «Now» — смещение последнего регулярного закрытия; «Calendar» указывает: фиксированное, США или ЕС, а также находится ли дата перехода на летнее время в США и в Европе в пределах окна (проверено); «Нестандартные» учитывает закрытия, не совпадающие с соседними — в данном случае четыре ранних закрытия по золоту в дни американских праздников; «Воскресенья» учитывает серверные воскресенья, в которых есть хотя бы один бар. Торговля BTCUSD ведётся круглосуточно, и у неё нет фиксированного закрытия. Снимок сделан при размере шрифта панели 4 для вписывания в страницу; по умолчанию — 8.

Проблема

Фильтр сессии, например «торговля с 10:00 до 13:00», представляет собой условие, относящееся к Лондону или Нью-Йорку, заданное по серверному времени. Он остается верным только до тех пор, пока разница между этими двумя часами не меняется, а два раза в год это не так. Европа и США переводят часы в разные выходные — в 2026 году США перевели часы вперёд 8 марта, а Европа — 29 марта, а осенью Европа переводит часы назад 25 октября, а США — 1 ноября. В течение трёх недель весной и одной недели осенью Лондон опережает Нью-Йорк на четыре часа вместо пяти, и сервер, следующий одному из этих двух календарей, не синхронизируется с другим городом.

Какая из этих недель затрагивает конкретный EA, зависит от собственного правила сервера, а это правило редко записывается в формате, доступном для чтения программой. Функция TimeTradeServer() − TimeGMT() возвращает сегодняшнее смещение, но оно рассчитывается на основе часов и часового пояса ПК и ничего не говорит ни о прошлом марте, когда проводился бэктест, ни о следующем месяце.

Что измеряется

Ориентир. Межбанковская неделя на рынке Forex, а также неделя CME для фьючерсов на металлы и американские индексы заканчивается в 17:00 по часовому поясу America/New_York. При каждой паузе в истории H1 символа продолжительностью не менее InpMinGapHours часов (по умолчанию 20) инструмент принимает close = время открытия последнего бара H1 перед паузой + 1 час, а U = момент времени 17:00 по Нью-Йорку, ближайший к нему, преобразованный в UTC с учётом правил перехода на летнее время в США. close − U — это смещение сервера на момент закрытия. Праздничные паузы (сочельник, канун Нового года) заканчиваются в то же время 17:00 и также считаются якорями.

  • Нерегулярные закрытия. Закрытие, смещение которого отличается как от последнего регулярного закрытия, предшествующего ему, так и от закрытия, следующего за ним, помечается и исключается из всего, что приводится ниже (первое и последнее закрытия никогда не помечаются): в противном случае канал, который в одну пятницу работал с часовым опозданием, или пробел в истории, достаточно длинный, чтобы выглядеть как пауза, интерпретировались бы как два изменения времени.
  • Переходы. Два последовательных регулярных закрытия с разными смещениями обрамляют переход на новый часовой пояс. Инструмент определяет дату между этими двумя закрытиями и сверяет этот интервал (в UTC) с датами перехода на летнее и зимнее время в США (второе воскресенье марта, первое воскресенье ноября) и в Европе (последнее воскресенье марта, последнее воскресенье октября), проверяя при этом направление: весенний переход должен сдвигать смещение вверх, осенний — вниз. Каждый переход помечается как «США», «ЕС», «США+ЕС» (если в интервале присутствуют оба типа, но данных недостаточно) или «другое».
  • Режим. Отсутствие переключений = фиксированное смещение; все переключения «US» = календарь США; все «EU» = европейский календарь; всё остальное = смешанный режим. Фиксированный результат считается «проверенным» только в том случае, если окно содержит как минимум одну дату переключения по календарю США и одну — по европейскому календарю — четыре недели истории в июле не позволяют отличить фиксированное время от переходящего, и инструмент об этом сообщает.
  • Свечи воскресенья. Количество воскресений (и суббот) на сервере, в которые выпала хотя бы одна свеча H1. Сервер в часовом поясе UTC открывает форекс-неделю в воскресенье вечером, что дает каждому индикатору, основанному на D1, шестую, небольшую дневную свечу.
  • Перекрестная проверка в реальном времени. На графике в реальном времени рядом со смещением, указанным в истории, выводится выражение TimeTradeServer() − TimeGMT(). Разница указывает на часы или часовой пояс компьютера, а не на сервер.
  • Прогноз. На основе последнего смещения и обнаруженного календаря вычисляется время открытия рынков в Лондоне, Нью-Йорке, Токио и Сиднее (местное время задается пользователем) для каждого рабочего дня в течение следующих InpProjectWeeks недель. В списке указываются только те дни, когда время открытия одного из этих рынков изменяется.

При наличии нескольких символов в качестве окончательного результата принимается наиболее распространённое смещение и календарь, а символы, которые не соответствуют этим данным, указываются в журнале — например, CFD на акции, торги по которым закрываются в 16:00 по нью-йоркскому времени, показывают смещение в минус один час, а криптовалютный символ, торгуемый круглосуточно, не имеет времени закрытия вообще.

Три демо-сервера, три часовых пояса

Прилагается к графику EURUSD, H1, на 7 октября 2026 года; 60 недель баров H1 вплоть до самого последнего бара (с 13.08.2025 по 07.10.2026); все настройки по умолчанию, за исключением списка символов (* на Exness, на двух других — указанные символы).

сервер символы закрытия смещение сейчас календарь переключатели замечено (первое закрытие после) нерегулярные закрытия воскресенья с целыми свечами
Exness-MT5Trial17 EURUSD, GBPUSD, USDJPY, XAUUSD по 62 UTC+0 нет, протестировано — XAUUSD 4, остальные 0 60
ICMarketsSC-Demo EURUSD, GBPUSD, USDJPY по 62 UTC+3 США 08.11.2025 −1 ч, 14.03.2026 +1 ч 0 0
MetaQuotes-Демо EURUSD, GBPUSD, USDJPY, XAUUSD 62 / 40 / 40 / 62 UTC+3 ЕС по всем 4; смещение: 3 из 4 согласны 31.10.2025 −1 ч, 04.04.2026 +1 ч EURUSD 1, XAUUSD 4 0

bca-три-сервера

Смещение, вытекающее из каждого закрытия EURUSD в 17:00 по Нью-Йорку на трёх демо-серверах, бары H1 с 01.08.2025 по 07.10.2026, 64 закрытия на каждый сервер, одна точка на каждое закрытие; пунктирные линии обозначают переключения в США, штриховые — в Европе. График построен на основе временных данных баров H1, полученных с помощью пакета Python для MetaTrader 5 и интерфейса MCP терминала, а не на основе собственных данных инструмента.

Exness: UTC в течение всего года. Каждое из 62 закрытий имеет значение +0:00, включая перерывы в канун Рождества и Нового года. Изменяется само время закрытия: последний бар H1 недели заканчивается в 21:00 по серверному времени, пока в Нью-Йорке действует летнее время (с середины марта до начала ноября), и в 22:00 в остальное время года. Каждое воскресенье имеет свечи, начинающиеся в 21:00 или 22:00, поэтому на дневных графиках появляется шестая, короткая свеча. У золота наблюдается такое же смещение и добавляются четыре нестандартных закрытия, все из которых связаны с ранним закрытием торгов в связи с праздниками в США: «Черная пятница» 28.11.2025 (−2 ч), канун Рождества (−3 ч), День освобождения рабов 19.06.2026 и пятница 03.07.2026 (по −4 ч).

IC Markets: UTC+2 зимой, UTC+3 летом, по календарю США. Смещение меняется между закрытиями 1 и 8 ноября 2025 года, а также 7 и 14 марта 2026 года — в те выходные, когда в США переводили часы. Торговая неделя на Форекс длится с 00:00 понедельника до 24:00 пятницы по серверному времени в течение всего года, без свечей по воскресеньям.

MetaQuotes-Demo: UTC+2 / UTC+3 по европейскому календарю. Переключения происходят между закрытиями 25 и 31 октября 2025 года и 27 марта и 4 апреля 2026 года. Одно закрытие пары EURUSD является нестандартным: в пятницу, 13 марта 2026 года, в период между переходом на летнее и зимнее время в США и Европе, последний бар завершился в 00:00 по серверному времени, через час после 17:00 по нью-йоркскому времени, в то время как закрытия до и после него произошли в установленное время. Для пар GBPUSD и USDJPY на этом терминале имеется история на графике H1 только с января 2026 года, поэтому они отражают только весенний переход. Золото расходится с этими тремя парами и упоминается в журнале: с момента весеннего перехода на европейское время весной 2026 года его недельное закрытие остается в 23:00 по серверному времени, за час до 17:00 по нью-йоркскому времени, так что по себе оно сейчас отображается как UTC+2:00.

Что это означает для ближайших недель. Три прогноза от 7 октября 2026 года: на Exness Лондон открывается в 07:00 по серверному времени до 23 октября и в 08:00 с 26 октября, Нью-Йорк — в 12:00 до 30 октября и в 13:00 с 2 ноября. На платформе IC Markets Лондон открывается в 10:00, за исключением недели с 26 октября, когда открытие происходит в 11:00. На MetaQuotes-Demo Нью-Йорк открывается в 15:00, за исключением той же недели, когда открытие происходит в 14:00. Фильтр, заданный как «Лондон 10:00» или «Нью-Йорк 15:00», будет правильным как для серверов UTC+2/+3 в течение 48 из 52 недель 2026 года и будет неверным в остальные четыре — три весной и одну осенью, причём каждый фильтр будет работать на отдельном сервере; в 2027 и 2028 годах весенний разрыв составит две недели.

На всех трёх активных соединениях перекрёстная проверка совпала с историей: TimeTradeServer() − TimeGMT() дало +3:00 на IC Markets и на MetaQuotes-Demo, +0:00 на Exness. При подготовке этой страницы один терминал был запущен без входа в систему; в автономном режиме разница на сервере с отклонением +3:00 составляла +0:00. Поэтому инструмент пропускает проверку, записывая одну строку в журнал, когда терминал не подключен.

Независимая проверка отчёта

Отчет можно пересчитать вне MetaTrader. Скрипт, используемый для этой страницы, считывает только окно из файла сводки, извлекает те же временные метки баров H1 — через интерфейс MCP терминала на Exness и через пакет Python для MetaTrader 5 на двух других серверах — и пересчитывает всё описанное выше с использованием базы данных часовых поясов Python вместо собственных правил перехода на летнее время инструмента: каждая строка-якорь, каждая строка переключения и её календарь, каждый суммарный счётчик, смещение и календарь вердикта, а также каждая строка прогноза. В трёх приведённых здесь прогонах результаты совпадают по 328, 250 и 284 значениям без единого расхождения. Его собственные определения сначала были проверены на десяти вручную подготовленных примерах — восьми синтетических сериях баров (фиксированные, американские, европейские, инвертированные переключения, паузы на праздники, пробел в данных, два досрочных закрытия с интервалом в неделю) и двух прогнозах — и все десять специально вставленных в него ошибок были обнаружены.

Как использовать

Прикрепите советник к любому графику. Если поле InpSymbols пусто, он проверяет символ графика; * проверяет все символы в «Обзоре рынка»; список, разделённый запятыми, проверяет указанные символы. Выбирайте символы, которые закрываются на выходных — основные валюты, золото, фьючерсы на индексы; у криптовалютных символов нет закрытия, которое можно измерить. Аудит запускается один раз (или каждые InpRefreshMinutes), выводит в журнал советника по одной строке на каждый символ, указывая нерегулярные значения закрытия, переключения, вердикт и прогноз, рисует таблицу на графике и записывает файлы в формате CSV. Программа читает только исторические данные: в коде нет торговых функций, нет DLL и нет доступа к сети. При наличии символа * считываются только те символы, которые уже находятся в окне «Market Watch». Инструмент никогда не выбирает символ, но когда указанный символ отсутствует в «Market Watch» и его историю сначала необходимо загрузить, терминал добавляет его туда самостоятельно (проверено: EURCHF и AUDNZD были добавлены при первом чтении, AUDUSD, прочитанный во второй раз, — нет); журнал указывает такие символы перед первым чтением.

Сначала прочитайте журнал. На IC Markets строка EURUSD выглядит так:

EURUSD 62 якорных значения (60 выходных, 2 праздничных) | сейчас UTC+3:00 | видно +2:00 +3:00 | 2 переключения: 08.11.2025 США -60, 14.03.2026 США +60 | режим США, dst_tested 1 | нерегулярный 0 | воскресные бары 0 дней

Здесь указано, что EURUSD закрывался 62 раза в этом окне, сервер сейчас опережает UTC на три часа, а ранее опережал на два, и переход на летнее время происходил дважды: назад на час в неделю перед 8 ноября 2025 г. и вперёд в неделю перед 14 марта 2026 г., оба раза по датам США. В приведенных ниже линиях прогноза указано серверное время каждого открытия в дни, когда оно меняется, например

прогноз 26.10.2026 пн смещение +3:00 Лондон 11:00 Нью-Йорк 15:00 Токио 03:00 Сидней Вс 23:00 (Лондон)

Используются несколько символов, которые останавливаются на выходных: вердиктом является их большинство, а символ, не согласный с этим, называется.

Входные данные

входные данные по умолчанию значение
InpSymbols "" Символы: пустое поле = символ графика, * = «Наблюдение за рынком», в остальных случаях — список в формате CSV
InpWeeks 60 Количество недель истории H1 для чтения (60 охватывает оба периода перехода на летнее и зимнее время)
InpMinGapHours 20 Пауза в котировках такой продолжительности означает закрытие рынка (выходные/праздники)
InpProjectWeeks 8 Количество недель с момента открытия сессии до проекта по серверному времени
InpLondonOpen 08:00 Открытие торгов в Лондоне, по местному времени в Лондоне
InpNewYorkOpen 08:00 Открытие рынка в Нью-Йорке, по местному времени в Нью-Йорке
InpTokyoOpen 09:00 Открытие торгов в Токио, по местному времени в Токио
InpSydneyOpen 07:00 Открытие торгов в Сиднее, по местному времени в Сиднее
InpMaxExamples 5 Журнал: количество напечатанных нерегулярных якорей на символ
InpWriteCsv true Запись CSV-файлов с анкорами, переключателями, сводкой, прогнозом и вердиктом
InpShowPanel true Построить таблицу результатов на графике
InpPanelCorner CORNER_LEFT_UPPER Угол панели
InpPanelFontSize 8 Размер шрифта панели
InpPanelX 10 Смещение панели по оси X, пикселей
InpPanelY 18 Смещение панели по оси Y, пикселей
InpRefreshMinutes 0 Повторная проверка каждые N минут (0 = проверка один раз)

Значения, выходящие за пределы диапазона (недели вне диапазона от 2 до 520, пауза вне диапазона от 6 до 60 часов, прогноз вне диапазона от 1 до 52 недель, время работы, не представленное в формате ЧЧ:ММ), ограничиваются или сбрасываются до значений по умолчанию с записью одной строки в журнале для каждого случая; советник никогда не отказывается запускаться.

Выходные файлы

Все файлы сохраняются в папке MQL5\Files\BrokerClockAuditor\, разделены точкой с запятой и содержат строку заголовка, именованы по формату <символы>_<недели>w_<идентификатор графика>_…, чтобы файлы двух графиков никогда не перезаписывали друг друга.

  • …_<символ>_anchors.csv — по одной строке на каждое закрытие: время сервера, момент 17:00 в Нью-Йорке в формате UTC, смещение в минутах, выходной или праздничный день, продолжительность паузы, время повторного открытия, регулярное или нерегулярное.
  • …_<symbol>_switches.csv — по одной строке на каждое изменение времени: две цены закрытия, окружающие его, смещения до и после, календарь.
  • …_summary.csv — по одной строке на каждый символ со всеми вышеперечисленными показателями.
  • …_projection.csv — прогнозируемые открытия сессий, по одной строке на каждый день, когда один из них меняется.
  • …_verdict.csv — общее смещение и календарь, количество совпадающих символов и текущее смещение.

Ограничения, изложенные просто

  • Ориентиром является закрытие в Нью-Йорке в 17:00. Символ, закрывающийся в другое время (CFD на акции в 16:00, некоторые индексы), отображается со смещением, равным этой разнице; если его смешать с основными валютами, система обозначит это как несоответствие.
  • Разрешением является бар H1: смещения выражаются в целых часах. Сервер с получасовым смещением будет отображаться с округлением до часа своих баров.
  • Брокер, который меняет свои часы в дату, не связанную с переходом на летнее время в США или Европе, получает иные данные, и его прогноз предполагает, что последнее смещение останется неизменным.
  • Прогноз расширяет календарь, который показывает история. Он не может знать, что брокер перенесет свои серверы в другой часовой пояс в следующем месяце.
  • При первом чтении символа, история которого ещё не хранится в терминале, там может быть всего несколько недель (по данным измерений: для EURCHF было 2,8 недели). Журнал сообщает «окно сокращено», а календарь показывает «непроверено»; запустите его снова, как только появится история.
  • Недели, в которых нет регулярного закрытия ни до, ни после переключения, расширяют интервал; когда интервал охватывает как американскую, так и европейскую дату, переключение помечается как «US+EU» вместо предполагаемого значения.
  • Приведённые выше данные относятся к трём демо-серверам на указанные даты. Они ничего не говорят о серверах тех же брокеров, работающих с реальными деньгами, которые могут работать по другому времени.

Перевод с английского произведен MetaQuotes Ltd.
Оригинальная публикация: https://www.mql5.com/en/code/78123

Advanced Prop-firm Trade Panel based on S-R Advanced Prop-firm Trade Panel based on S-R

Панель для ручной торговли со встроенной системой защиты от рисков для проп-фирм и скрытым инструментом для поиска уровней поддержки и сопротивления для MetaTrader 5.

CajasTF — интегрированная боковая панель с несколькими таймфреймами для MT5 CajasTF — интегрированная боковая панель с несколькими таймфреймами для MT5

Мини-график на боковой панели, отображающий данные в реальном времени по нескольким таймфреймам, с интеллектуальной цветовой схемой, независимой ценовой шкалой и таймером обратного отсчёта свечей.

Prop Daily Loss Meter Prop Daily Loss Meter

Показывает, какая часть дневного лимита убытков на счете проп-фирмы уже использована, а какая осталась. Индикатор, доступный только для чтения.

YURAZ_MCCH YURAZ_MCCH

Индикатор рассчитывает % роста или падения относительно CLOSE, написан с применением ООП, и легко интегрируется в любой советник или иной индикатор.