Смотри, как бесплатно скачать роботов
Ищи нас в Twitter!
Ставь лайки и следи за новостями
Интересный скрипт?
Поставь на него ссылку - пусть другие тоже оценят
Понравился скрипт?
Оцени его работу в терминале MetaTrader 5
Просмотров:
196
Рейтинг:
(9)
Опубликован:
MQL5 Фриланс Нужен робот или индикатор на основе этого кода? Закажите его на бирже фрилансеров Перейти на биржу

Это расширенная версия скрипта CalendarForDates.mq5, представленного в книге по алготрейдингу.

Входные переменные позволяют указать код страны, код текущей даты и временной диапазон для фильтрации требуемых записей. Если оставить входные данные пустыми, то можно запросить полный календарь (если календарь запрашивается впервые после запуска терминала, то загрузка его базы может занять некоторое время или даже завершиться и не выдать никаких результатов - тогда запустите скрипт еще раз).

В результате вы получите CSV-файл с записями календаря с наиболее важными полями (экспортируются не все поля - не стесняйтесь корректировать исходный код в соответствии с вашими потребностями).

Опционально можно ввести *.cal-файл (архивную копию календаря на определенное время), созданный индикатором CalendarMonitorCached.mq5, также представленным в книге, который сейчас устарел в пользу его расширенной версии CalendarMonitorCachedTZ.mq5 (рекомендуется и требуется для новой возможности, описанной далее).

Экономический календарь MetaTrader в формате CSV


Самая интересная особенность: скрипт демонстрирует использование TimeServerDST.mqh для корректировки временных меток исторических событий в соответствии с изменениями часового пояса сервера в прошлом, которые постоянно отражаются на временных метках свечей. Этот режим включается установкой значения true для входа FixCachedTimesBySymbolHistory.

Сохранение событий в CSV-файлы с коррекцией и без нее позволяет легко сравнить влияние коррекции времени на историю.

Для правильного использования этой функции рекомендуется запускать скрипт на H1-графиках XAUUSD или EURUSD. При программном использовании эти символы следует передавать в функции TimeServerDST.

Такой же подход используется в индикаторе CalendarMonitorCachedTZ.mq5 для экспорта скорректированных по времени календарных событий в архивные cal-файлы, готовые к загрузке изнутри тестера, что обеспечивает точность бэктестов и оптимизацию новостных роботов.

Диапазон дат, в которые производится коррекция времени, ограничен максимальным количеством баров на графике для таймфрейма H1. В этом заключается специфика эмпирического метода, используемого внутри TimeServerDST.mqh.

Рассмотрим конкретный тип события, желательно с большим влиянием на рынок, например выход данных по заработной плате в несельскохозяйственном секторе США (NFP).

На европейском сервере с графиком DST (MQ Demo) оно происходит в 14:30 зимой и в 15:30 летом. На скриншоте ниже вы можете видеть рядом две версии полной истории календаря, экспортированные в CSV-файлы, с конкретной летней датой 2023.08.04 в поле зрения. Оба экспорта были выполнены 8 ноября (зима, стандартное время), поэтому для всех событий, включая лето 2023 года (а также любые другие сезоны и годы), по умолчанию было применено смещение GMT+2. Без коррекции (показана справа) экспортированное время для летних NFP составляет 14:30. Это неверно.

События экономического календаря с исправленными временными отметками

После эмпирического автоопределения часового пояса сервера, который действовал летом, библиотека выполняет экспорт календаря с коррекцией времени (показано слева). В результате летние NFP сдвигаются на 15:30, как и должно быть. Вы можете взглянуть на график за этот период, чтобы убедиться в правильности коррекции.

Данные по занятости в несельскохозяйственном секторе на графике EURUSD H1

В данном конкретном случае все не так драматично, поскольку некорректируемое объявленное время 14:30 идет до 15:30, поэтому советники, вероятно, могли бы продолжать ждать новостей и открывать сделки. Но когда часовой пояс сервера переключается на летнее время, все зимние события, зарегистрированные в календаре, содержат временные метки, задержанные на 1 час (!).

Материал пока экспериментальный. Не стесняйтесь присылать свои замечания.

Планируется дальнейшее исследование влияния временных поправок на торговлю новостями. Следите за новостями.


Прилагаемые mqh-файлы(CalendarFilter.mqh, CalendarCache.mqh, QuickSortStructT(Ref).mqh) содержат исправления и улучшения по сравнению с их оригинальными версиями из книги.



04.10.2024 - добавлена запись/чтение смещения часового пояса сервера в cal-файлы и csv-файлы.

10.11.2024 - добавлена возможность корректировки временных меток событий в истории в соответствии с ретроспективными изменениями часового пояса сервера.

11.11.2024 - небольшие исправления и доработки в CalendarCache.mqh и CalendarFilter.mqh.

22.11.2024 - небольшие исправления и улучшения в CalendarCache.mqh.


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

Swap Monitor Swap Monitor

Этот сервис периодически проверяет свопы для заданных символов и сохраняет обнаруженные изменения в CSV-файлы для дальнейшего анализа и возможного воспроизведения (здесь не реализовано). Также он отслеживает и оповещает об изменениях свопов в существующих позициях.

MT5-BuildYourGridEA MT5-BuildYourGridEA

Этот эксперт - система, которая поможет любому трейдеру составить сетку ордеров.

Sample pine script stochastic divergence Sample pine script stochastic divergence

Пример соснового кода, преобразованного в MQL

Push Notification for Opened / Closed Trades (Netting) Push Notification for Opened / Closed Trades (Netting)

Этот код представляет собой простую функцию отправки push-уведомлений на мобильное устройство при открытии или закрытии сделок в MetaTrader 5. Она предназначена для неттинговых счетов (где разрешена только одна позиция на символ).