NewsRForestExpert
- Утилиты
- Версия: 4.2
- Обновлено: 17 сентября 2025
Торговый помощник NewsRForestExpert v4.01
1. Назначение и принцип работы
NewsRForestExpert — торговый помощник для MetaTrader 5, использующий встроенный экономический календарь и модель машинного обучения «Random Forest» библиотеки ALGLIB (далее «модель»).
Помощник:
- работает на валютной паре EURUSD на таймфреймах M1 – M5;
- загружает историю новостей за выбранный период и формирует обучающую и тестовую выборки;
- обучает на полученных данных или загружает уже готовую обученную модель;
- проводит тестирование качества обучения модели;
- отрисовывает на графике новости, показывает панель управления. На дополнительном графике показывает метрики качества обучения/тестирования;
- в Тестере Стратегий проверяет на истории качество торговли обученной модели, либо проводит обучение новой модели с возможностью оптимизации параметров модели и проверкой качества торговли на истории;
- в реальном времени получает новые события, обученная модель формирует сигналы: SELL / OUT OF DEAL / BUY;
- может работать в режиме автоторговли или с ручным подтверждением.
2. Требования
Терминал MetaTrader 5 (актуальная версия).
Интернет-соединение.
Доступность встроенного экономического календаря в терминале.
Качественная история котировок M1/M5 для корректной синхронизации и расчетов.
Разрешенная автоторговля, если планируется ExpertAutoTrade = true.
Валютная пара EURUSD, таймфреймы М1 – М5.
3. Установка и запуск
Скопируйте файлы в каталог терминала MT5. Помощник (*.ex5) должен находиться в MQL5/Experts.
Запустите MT5 и перетащите помощник на обычный торговый график нужного инструмента (EURUSD, период М1 - M5).
Разрешите Algo Trading.
Нажмите ОК. При запуске помощник:
- подготовит «train» и «test» выборки (train — по заданному периоду, test — день окончания даты выборки train до текущего времени);
- обучит модель или загрузит сохраненную, в зависимости от настроек пользователя;
- создаст подокно с панелью управления, отрисует новости на графике;
- выведет в лог рекомендуемые даты для Strategy Tester;
Дальше советник будет обновлять новости и прогнозы по таймеру и новому бару M1. В режиме без автоторговли появится окно подтверждения перед открытием позиции.
4. Панель управления на графике
Элементы:
- четыре календаря выбора дат: начало и конец периода TRAIN (для обучения) и начало и конец периода TEST (для проверки);
Кнопки:
- TRAIN — переобучить модель на выбранном периоде TRAIN. После обучения строятся метрики/графики «train»;
- TEST — проверить модель на выбранном периоде TEST. Строятся метрики/графики «test» и в лог печатаются рекомендуемые даты тестирования для Strategy Tester;
- SAVE — сохранить текущую обученную модель (перезапишет предыдущую);
Поведение:
- подокно и панель восстанавливаются, если их случайно закрыть;
- цвет панели подстраивается под фон графика (темный/светлый);
- при неверных введенных датах (начало >= конец − 1 день) выдается предупреждение.
5. Работа в Strategy Tester
До запуска тестера подготовьте данные:
Запустите советник на реальном графике, при этом будут загружены исторические данные экономического календаря и сформированы обучающая и тестовая выборки, согласно датам установленных в настройках пользователя.
В лог советника будут выведены рекомендованные даты «Testing start date» и «Test completion date».
В Tester (Ctrl+R):
Установите советник, символ, режим «Every tick» или «1 Minute OHLC».
Установите рекомендованные даты.
Параметр SavedModelUse:
true — загрузить ранее сохраненную модель (StateRandomForest).
false — обучить заново на train. Опция SaveStateModel = true сохранит обученную в Тестере Стратегий модель с суффиксом Tester.
Внутри тестера советник синхронизируется с метками времени событий и совершает сделки в «минуту выхода» новости. Кластеры новостей обрабатываются суммарно как и в реальной торговле.
6. Входные параметры
PARAMETERS OF PREPARATION OF INPUT FEATURES
**Begin date for loading economic calendar events (datetime) — начальная дата train.
**End date for loading economic calendar events (datetime) — конечная дата train.
**Minimum news importance (low_level, medium_level, high_level) — минимальная важность событий.
*Normalization of input features (without_normalization, MinMax_method, RobustScaler_method) — нормализация признаков.
RANDOM FOREST PARAMETERS
Use a previously saved Random Forest (bool) — использовать ранее обученную и сохраненную модель.
Selecting Random Forest Model Variants (стационарная model_1, рандомная model_2) — вариант реализации леса.
Number of trees in a Random Forest (int) — число деревьев в модели.
Share of data used to train the tree (double) — доля выборки для обучения каждого дерева «bootstrap» (0.2 - 0.95).
Number of features for each split (int) — число признаков на разбиение (0 - 48; if -1 then auto)
Auto selection of the best Forest parameters (bool) — авто-подбор параметров леса.
Minimum value of forecast probability (double) — порог уверенности модели в своем прогнозе (0.2 - 0.95).
TRADE TRANSACTION PARAMETERS
*Expert Auto Trade (bool) — включить автоторговлю.
*Magic number (int) — магик-номер.
Lot size (double) — лот.
Stop loss in points / Take profit in points (int, пункты) — уровни SL/TP.
Slippage in points (int, пункты) — проскальзывание.
TESTING PARAMETERS IN STRATEGY TESTER
*Save the state of the model trained in the strategy tester (bool) — сохранять модель, обученную в тестере.
PARAMETERS OF VISUALIZATION OF ECONOMIC CALENDAR EVENTS
*Low importance – LowImpactColor.
*Medium importance – MediumImpactColor.
*High importance - HighImpactColor.
*Line width – ширина линии.
*Line style – стиль линии.
Сноска:
Параметры, отмеченные «*» в исходниках, не влияют на оптимизацию в тестере.
Параметры, отмеченные «**», должны совпадать в тестере и в реальных настройках, иначе работа и оптимизация в Тестере Стратегий будет некорректной.
7. Логика сигналов и исполнение сделок
Модель выдает прогноз для каждого события: класс и уверенность (вероятность).
Итоговый сигнал строится по сумме «взвешенных голосов» в минуту выхода события:
Вес = уверенность прогноза × важность новости.
Суммируются по BUY и SELL для всех событий в минуту.
Если веса BUY > SELL — сигнал BUY, если SELL > BUY — сигнал SELL, иначе NEUTRAL.
Порог ProbabilityOfPrediction отсекает прогнозы с низкой уверенностью.
При подаче сигнала:
В режиме без автоторговли выводится окно подтверждения; если уже есть позиция в том же направлении — уведомление, сделка не повторяется.
Перед открытием новой позиции советник закрывает противоположные позиции этого MagicNumber.
Позиции открываются по trade_signal с заданными Lot/SL/TP/Slippage.
8. Формируемые файлы и имена
Префикс: номер счета + валютная пара + _таймфрейм_, например «34764EURUSD_5_».
Основные файлы, создаваемые помощником:
StateRandomForestC.bin — сохраненная обученная модель (реал).
StateRandomForestTesterC.bin – сохраненная обученная модель (тестер).
FilteredCalendarData_train.bin / _test.bin — бинарные датасеты (используются Тестером Стратегий).
Дополнительные файлы, создаваемые помощником (контроль):
FilteredCalendarData_train.csv – датасет подготовленный для обучения модели (реал).
FilteredCalendarData_test.csv – датасет подготовленный для тестирования качества модели (реал).
DatasetDataForTester_train.csv – датасет подготовленный для обучения модели (тестер).
DatasetDataForTester_test.csv – датасет подготовленный для проверки работы модели в торговле на истории (тестер).
ControlDatasetTester_test.csv — контрольный датасет – для проверки правильности подачи данных при тестировании в Тестере Стратегий.
Размещение файлов: C:\Users\User\AppData\Roaming\MetaQuotes\Terminal\Common\Files
9. Процедура проверки и тестирования
На реальном графике:
Обучите модель (TRAIN) на тренировочном периоде — получите метрики и тепловую карту.
Проверьте (TEST) на другом, тестовом периоде — получите метрики и тепловую карту.
Если результаты обучения удовлетворительны, сохраните модель кнопкой Save
В тестере стратегий:
Используйте рекомендованные даты из лога.
Прогоните на тестере стратегий, оцените результаты торговли модели.
Out-of-sample:
Переставьте окна периодов, чтобы исключить переобучение.
Периодически переобучайте модель, чтобы учесть свежие данные.
ВАЖНО!
Поскольку котировки, поставляемые одним брокером, могут отличаться от котировок других брокеров, рекомендуется перед использованием помощника NewsRForestExpert в реальной торговле, обучить модель с применением оптимизации.
При этом параметр Use a previously saved Random Forest — должен быть установлен в false.
Перечень оптимизируемых параметров модели:
- Number of trees in a Random Forest (10 – 4000);
- Share of data used to train the tree (0.2 - 0.95);
- Number of features for each split (0 - 48);
- Minimum value of forecast probability (0.2 - 0.95).
Так же на усмотрение пользователя, можно оптимизировать параметры из раздела «TRADE TRANSACTION PARAMETERS»
После оптимизации надо перезагрузить помощник установив параметры наилучшего результата.
10. Частые проблемы и решения
Нет данных/сигналов:
Убедитесь, что календарь доступен (View → Calendar), интернет есть.
Проверьте диапазон Begin/EndDateForLoad, понизьте NewsImportance.
Низкое качество:
Увеличьте TreeCount/TrainRatio, скорректируйте ProbabilityOfPrediction.
Проверьте целостность истории котировок, брокерские сдвиги времени.
В тестере не совпадают времена:
Используйте рекомендованные даты из лога после нажатия TEST в реале.
11. Ограничения и особенности
События с неопределенным временем («в течение дня») исключаются.
Для надежного тестирования используйте ровно те даты, которые советник выдает в логах после подготовки данных на реальном графике.
12. Чек-лист перед включением автоторговли
Протестировано в Strategy Tester с подготовленными файлами и корректными датами.
Проверены метрики на TRAIN и TEST в панели.
Проведена оптимизация параметров модели в Тестере стратегий (при необходимости).
Установлен уникальный MagicNumber на каждом символе/таймфрейме.
Подобраны SL/TP и лоты под волатильность и риски.
ProbabilityOfPrediction оптимизирован под желаемую селективность сигналов.
13. Примечания по нормализации
Доступны базовые методы нормализации (Without/MinMax/RobustScaler).
Параметры по умолчанию в этой сборке ориентированы на стабильную работу; увеличивайте мощность (TreeCount и пр.) постепенно.
14. Безопасность и риск-менеджмент
Начинайте с демо и ручного подтверждения (ExpertAutoTrade = false).
Учитывайте расширение спредов и проскальзывание на новостях.
Регулярно переобучайте модель и контролируйте out-of-sample результаты.
Автоматическая торговля несет существенные риски потери средств. Помощник NewsRForestExpert использует анализ новостей и машинное обучение, но не гарантирует прибыль. Тестируйте стратегию на демо-счете перед реальной торговлей. Вы используете помощник на свой собственный риск.
