Пошаговое руководство по созданию нейросетевого предиктора (MLP) на базе библиотеки ALGLIB в MQL5. Исходный код, разбор параметров и интеграция в советник.
Суть: Для создания нейросетевого предиктора в MQL5 не нужно подключать внешние Python-скрипты или DLL. Достаточно использовать встроенный порт библиотеки ALGLIB. Мы реализуем класс многослойного перцептрона (MLP), обучим его прямо в терминале методом Левенберга-Марквардта на разностях цен и получим прогноз направления следующего бара.
Ниже представлен чистый объектно-ориентированный код класса предиктора CMLPPredictor и пример его интеграции в торговый советник (EA). Код использует современные нативные типы данных MQL5 (matrix и vector) для удобной подготовки обучающей выборки.
//+------------------------------------------------------------------+
//| MLPPredictor.mq5 |
//| Copyright 2024, Finfluct.com|
//| https://finfluct.com|
//+------------------------------------------------------------------+
#property copyright "Copyright 2024, Finfluct.com"
#property link "https://finfluct.com"
#property version "1.00"
// Подключаем модуль анализа данных ALGLIB
#include
Разбор параметров
Для гибкой настройки нейросети крайне важно понимать ключевые параметры инициализации и обучения:
inputs: Количество входных признаков (фичей). В нашем примере это InpInputs — разности цен закрытия предыдущих баров.
hidden: Число нейронов в скрытом слое. Определяет емкость сети. Слишком маленькое значение приведет к недообучению, слишком большое — к переобучению (overfitting).
outputs: Количество выходов сети. Для задач регрессии (прогноз величины изменения цены) используется 1 выход.
decay: Коэффициент регуляризации (весового затухания). Помогает предотвратить переобучение, штрафуя модель за слишком большие веса.
restarts: Количество случайных перезапусков алгоритма оптимизации. Позволяет избежать попадания в локальные минимумы при обучении.
Как запустить
Чтобы запустить нейросетевой предиктор на своем торговом счете, выполните следующие шаги:
1. Убедитесь, что у вас установлена стандартная библиотека ALGLIB. Она поставляется вместе с терминалом MetaTrader 5 и находится в папке MQL5\Include\Math\Alglib\.
2. Создайте нового эксперта в MetaEditor, скопируйте туда представленный выше код и скомпилируйте его.
3. При практическом применении полученных сигналов критически важно фильтровать рыночные шумы. Резкое расширение спреда способно уничтожить математическое ожидание любой нейросети. Чтобы избежать этого, интегрируйте в свой советник Фильтр максимального спреда в MQL4: Защита ночного скальпера (логика легко адаптируется под MQL5).
4. Если вы решите усложнить логику и проводить дообучение (Reinforcement Learning) на основе результатов закрытых сделок, вам понадобится надежный доступ к истории ордеров. Обязательно изучите руководство по Обходу лимитов HistorySelect в MQL5, чтобы избежать пропусков данных при анализе торговой истории.
Пошаговое руководство по созданию индикатора микроструктурного имбаланса (Bid/Ask Imbalance) в MQL5 на
00
Отказ от ответственности
Материалы, представленные на Finfluct.com, несут исключительно образовательный и исследовательский характер. Мы не предоставляем индивидуальных инвестиционных рекомендаций (NFA).
Торговля на финансовых рынках сопряжена с высоким риском потери капитала. Любые скрипты, индикаторы и алгоритмы (Pine Script, Python, MQL) предоставляются «как есть» без гарантий прибыльности или безошибочной работы.
Всегда проводите бэктесты и тестируйте код на демо-счетах (Paper Trading) перед запуском в реальную торговлю. Авторы и администрация сайта не несут ответственности за ваши прямые или косвенные финансовые убытки.
Этот сайт использует cookie для хранения данных. Продолжая использовать сайт, Вы даете свое согласие на работу с этими файлами.