LSTM Library
- Библиотеки
-
Thalles Nascimento De Carvalho
🚀 **Исследуя захватывающие пути финансовых рынков**, я увлечен как искусством трейдинга, так и наукой программирования. Мое путешествие началось с любопытства понять движения рынков, что привело к развитию острых навыков для выявления и использования прибыльных возможностей. 💡📈 - Версия: 4.12
- Активации: 5
Профессиональная библиотека нейронных сетей для алгоритмической торговли
LSTM Library предоставляет мощность рекуррентных нейронных сетей для ваших торговых стратегий в MQL5. Эта профессиональная реализация включает сети LSTM, BiLSTM и GRU с продвинутыми функциями, обычно доступными только в специализированных фреймворках машинного обучения.
Ключевые особенности
- Полная реализация LSTM, BiLSTM и GRU
- Рекуррентный дропаут для лучшей генерализации
- Множественные алгоритмы оптимизации (Adam, AdamW, RAdam)
- Продвинутые методы нормализации
- Комплексная система оценки метрик
- Визуализация прогресса обучения
- Поддержка несбалансированных данных с весами классов
Технические характеристики
- Чистая реализация на MQL5 - без внешних зависимостей
- Оптимизирована для торговых приложений
- Комплексная обработка и валидация ошибок
- Полная поддержка сохранения/загрузки обученных моделей
- Обширная документация
Инструкции по интеграции
Чтобы интегрировать LSTM Library в ваш Expert Advisor, следуйте этим шагам:
1. Полный импорт библиотеки
#import "LSTM_Library.ex5" // Информация о библиотеке void GetLibraryVersion(string &version); void GetLibraryInfo(string &info); // Управление моделями int CreateModel(string name); int DeleteModel(int handle); // Конструирование слоев int AddLSTMLayer(int handle, int units, int input_size, int seq_len, bool return_seq); int AddLSTMLayerEx(int handle, int units, int input_size, int seq_len, bool return_seq, double recurrent_dropout); int AddGRULayer(int handle, int units, int input_size, int seq_len, bool return_seq); int AddBiLSTMLayer(int handle, int units, int input_size, int seq_len, bool return_seq); int AddBiLSTMLayerEx(int handle, int units, int input_size, int seq_len, bool return_seq, double recurrent_dropout); int AddDenseLayer(int handle, int input_size, int units, int activation); int AddDropoutLayer(int handle, double rate); int AddBatchNormLayer(int handle, int size); int AddLayerNormLayer(int handle, int size); // Компиляция и обучение int CompileModel(int handle, int optimizer, double lr, int loss); int SetClassWeights(int handle, double &weights[], int n_classes); int EnableConfusionMatrixTracking(int handle, int n_classes); int GetConfusionMatrix(int handle, int &confusion_matrix[]); int FitModel(int handle, double &X_train[], double &y_train[], int n_train, int input_dim, double &X_val[], double &y_val[], int n_val, int epochs, int batch); // Прогнозирование и оценка int PredictSingle(int handle, double &input_data[], int input_size, double &output_data[]); int PredictBatch(int handle, double &X[], int n_samples, int input_dim, double &predictions[]); double EvaluateModel(int handle, double &X[], double &y[], int n_samples, int input_dim); double CalculateClassificationMetrics(double &y_true[], double &y_pred[], int n_samples, int n_classes, double &precision[], double &recall[], double &f1[]); // Предобработка данных int CreateScaler(); int DeleteScaler(int handle); int FitScaler(int handle, double &data[], int samples, int features); int TransformData(int handle, double &data[], double &transformed[], int samples, int features); int InverseTransform(int handle, double &transformed[], double &original[], int samples, int features); int FitTransformData(int scaler, double &data[], double &transformed[], int samples, int features); // Колбэки и планировщики int AddEarlyStopping(int handle, int patience, double min_delta); int AddProgressBar(int handle, int epochs); int AddCosineScheduler(int handle, double base_lr, int T_0, int T_mult); int AddOneCycleLR(int handle, double max_lr, int total_steps); // Утилиты int PrintModelSummary(int handle); int SetModelTrainingMode(int handle, int training); int GetModelTrainingMode(int handle); int SaveModel(int handle, string filename); int LoadModel(int handle, string filename); int SaveHistory(int handle, string filename); void CleanupAll(); int GetActiveModelsCount(); int GetActiveScalersCount(); #import
2. Инициализация в OnInit()
int model_handle = 0; int OnInit() { // Создание LSTM модели model_handle = CreateModel("TradingModel"); if(model_handle <= 0) return INIT_FAILED; // Добавление слоев if(AddLSTMLayer(model_handle, 32, 5, 10, false) <= 0) return INIT_FAILED; if(AddDropoutLayer(model_handle, 0.2) <= 0) return INIT_FAILED; if(AddDenseLayer(model_handle, 32, 1, 1) <= 0) return INIT_FAILED; // Компиляция модели (оптимизатор Adam, функция потерь MSE) if(CompileModel(model_handle, 1, 0.001, 0) <= 0) return INIT_FAILED; // Загрузка существующей модели, если доступна if(FileIsExist("model.bin")) LoadModel(model_handle, "model.bin"); return INIT_SUCCEEDED; }
3. Очистка в OnDeinit()
void OnDeinit(const int reason) { if(model_handle > 0) { SaveModel(model_handle, "model.bin"); DeleteModel(model_handle); } CleanupAll(); }
4. Использование в OnTick()
void OnTick() { // Подготовка признаков double features[50]; // Например, 5 признаков * 10 длина последовательности // Заполнение массива признаков данными рынка // ... // Прогнозирование double prediction[]; if(PredictSingle(model_handle, features, ArraySize(features), prediction) > 0) { if(prediction[0] > 0.5) { // Бычий сигнал - размещение ордера на покупку } else { // Медвежий сигнал - размещение ордера на продажу } } }
ИСПОЛЬЗУЙТЕ МОЩЬ МАШИННОГО ОБУЧЕНИЯ В ТРЕЙДИНГЕ
LSTM Library разработана для легкой интеграции в ваши EA и индикаторы, предоставляя продвинутые возможности машинного обучения непосредственно в MetaTrader 5.
Следуйте примеру кода выше, чтобы начать внедрять прогнозирование на основе нейронных сетей в ваши торговые системы. Простой пример можно легко адаптировать к вашим конкретным потребностям.
Исследуйте продвинутые функции, описанные ниже, чтобы использовать весь потенциал этой библиотеки в ваших торговых стратегиях.
Доступные продвинутые функции
Варианты рекуррентных слоев
- AddLSTMLayerEx() - LSTM с рекуррентным дропаутом для лучшей генерализации
- AddBiLSTMLayerEx() - Двунаправленный BiLSTM с рекуррентным дропаутом
Нормализация и регуляризация
- AddBatchNormLayer() - Батч-нормализация для стабильного обучения
- AddLayerNormLayer() - Нормализация слоев
Обработка несбалансированных данных
- SetClassWeights() - Установка весов для миноритарных классов
- EnableConfusionMatrixTracking() - Детальный мониторинг производительности по классам
Продвинутая оптимизация
- AddCosineScheduler() - Циклические скорости обучения с теплыми рестартами
- AddOneCycleLR() - Реализация One-Cycle Learning Rate
Комплексная оценка
- PredictBatch() - Пакетные прогнозы для повышения эффективности
- EvaluateModel() - Полная оценка на тестовых данных
- CalculateClassificationMetrics() - Детальные метрики (точность, полнота, F1)
Предобработка данных
- CreateScaler/FitScaler - Нормализация входных данных
- TransformData/InverseTransform - Преобразование между масштабами
Требования
- MetaTrader 5
- Базовое понимание концепций машинного обучения
- Средние навыки программирования на MQL5
УСИЛЬТЕ СВОИ ТОРГОВЫЕ СИСТЕМЫ
Преобразуйте ваши существующие стратегии и индикаторы с помощью машинного обучения непосредственно в MQL5. Эта прямая интеграция означает отсутствие внешних соединений, зависимостей от Python и сложностей API - только чистая предиктивная мощность внутри вашей торговой платформы.
Независимо от того, разрабатываете ли вы системы прогнозирования цен, прогнозирования волатильности или продвинутого распознавания паттернов, LSTM Library предоставляет основу для по-настоящему интеллектуальных торговых решений, которые адаптируются к изменяющимся рыночным условиям.
Ключевые слова: LSTM Прогнозирование акций, LSTM Прогнозирование цен, Торговля с нейронными сетями, MQL5 Глубокое обучение, Прогнозирование временных рядов, Форекс машинное обучение, Торговля криптовалютой с ИИ, Распознавание рыночных паттернов, BiLSTM Торговая система, GRU Анализ рынка, Алгоритмическая торговля с ИИ, MQL5 Глубокое обучение, Прогнозирование направления цены, Машинное обучение для HFT
