Экономический календарь

При разработке торговых стратегий желательно учитывать фундаментальные факторы, влияющие на рынок. В MetaTrader 5 встроен календарь экономических новостей, который доступен в интерфейсе программы в виде отдельной вкладки в инструментальной панели, а также в виде меток, опционально выводимых непосредственно на график. Включение данного календаря — в целом как сервиса — производится отдельным флажком на закладке Сообщество в диалоге настройки терминала (логиниться в сообщество при этом не обязательно).

Вполне закономерно, что в платформе для алготрейдинга к записям экономического календаря можно обращаться и программным образом из MQL5 API. В данной главе мы познакомимся с функциями и структурами данных, обеспечивающими чтение, фильтрацию и мониторинг изменений экономических событий.

Экономический календарь содержит описание, график выхода и историю значений макроэкономических индикаторов множества стран. Для каждого события известно точное время планируемого выхода, степень важности, влияние на конкретные валюты, прогнозные значения и другие атрибуты. Актуальные значения макроэкономических показателей поступают в MetaTrader 5 моментально в момент публикации.

Наличие календаря позволяет автоматически анализировать поступающие события и реагировать на них в эксперте самыми разными способами, например, торгуя в рамках стратегии на пробой или колебаний волатильности внутри коридора. С другой стороны, знание предстоящих возмущений на рынке позволяет находить в расписании спокойные часы и временно отключать те роботы, для которых сильные движения цены опасны убытками.

Все функции и структуры для работы с экономическим календарем используют в значениях типа datetime время торгового сервера (TimeTradeServer), с учетом его временной зоны и перехода на "летнее" (DST, Daylight Saving Time) или "зимнее" время. Иными словами, для корректного тестирования новостных советников, их разработчик должен самостоятельно изменить времена исторических новостей в те периоды (примерно полгода внутри каждого года), когда режим DST отличается от текущего.

Функции календаря нельзя использовать в тестере: при попытке вызвать любую из них получим ошибку FUNCTION_NOT_ALLOWED (4014). В связи с этим тестирование стратегий на основе календаря предполагает предварительное сохранение записей календаря во внешних хранилищах (например, в файлах) при запуске MQL-программы на онлайн-чарте, а затем их загрузку и чтение из MQL-программы, выполняющейся в тестере.