Пошаговое руководство по созданию нейросетевого предиктора (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, чтобы избежать пропусков данных при анализе торговой истории.
Узнайте, какую часть своего ежемесячного дохода безопасно выделять на погашение кредитов. Подробная инструкция
01
Отказ от ответственности
Материалы, представленные на Finfluct.com, несут исключительно образовательный и исследовательский характер. Мы не предоставляем индивидуальных инвестиционных рекомендаций (NFA).
Торговля на финансовых рынках сопряжена с высоким риском потери капитала. Любые скрипты, индикаторы и алгоритмы (Pine Script, Python, MQL) предоставляются «как есть» без гарантий прибыльности или безошибочной работы.
Всегда проводите бэктесты и тестируйте код на демо-счетах (Paper Trading) перед запуском в реальную торговлю. Авторы и администрация сайта не несут ответственности за ваши прямые или косвенные финансовые убытки.
Этот сайт использует cookie для хранения данных. Продолжая использовать сайт, Вы даете свое согласие на работу с этими файлами.