Обсуждение статьи "Нейросети в трейдинге: Двусторонняя адаптивная временная корреляция (Окончание)"

 

Опубликована статья Нейросети в трейдинге: Двусторонняя адаптивная временная корреляция (Окончание):

Фреймворк BAT превращает хаотичный поток рыночных данных в точные прогнозы и взвешенные торговые решения. Тесты на исторических данных показывают стабильный рост капитала при контролируемых рисках. Архитектура модели проста, масштабируема и готова к дальнейшей оптимизации.

Заключительный этап нашей работы посвящён обучению торговой политики и её тестированию на реальных исторических данных. Первым шагом стало офлайн-обучение на исторических котировках валютной пары EURUSD с таймфреймом H1 за период с Января 2024 по Июнь 2025 года. Этот временной отрезок стал своеобразной тренировочной площадкой, где модель училась распознавать исторические паттерны, анализировать динамику цен и объёмы сделок, выявлять закономерности между ключевыми признаками и применять их для прогнозирования. Можно сказать, что она формировала собственную интуицию трейдера, объединённую с математической строгостью обработки данных.

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

Финальная проверка проводилась на данных за период с Июля по Октябрь 2025 года, полностью новых и ранее не использованных в процессе обучения. Все параметры модели загружались без изменений, что позволяло объективно оценить способность алгоритма к обобщению и адаптации к незнакомым условиям. Результаты демонстрируют, что пошаговый подход к обучению и адаптации позволяет модели эффективно анализировать рынок, формировать прогнозы движения ключевых рыночных признаков и предоставлять трейдеру надёжную основу для принятия решений в реальном времени.

Автор: Dmitriy Gizlyk

 
Дмитрий, у вас 3 части этой статьи в каждой разные версии NeuroNet.mqh... Имеет ли это значение?
 

Текущая реализация (Study.mq5, Test.mq5, StudyOnline.mq5) использует названия компонентов BAT, но архитектурно НЕ РЕАЛИЗУЕТ описанную в статьях систему.

Ключевые расхождения:

  1. Энкодер упрощён — вместо многоуровневой структуры (CreateFlow → MultiWindowsConv → MSRes → BiDirectCorrelation → SATMA → SpikeConvGRU2D) используется один слой  defNeuronBAT .

  2. CreateFlow отсутствует — нет преобразования в event-based представление и voxel-grid формирования. Данные поступают как плоский вектор  HistoryBars * BarDescr .

  3. BiDirectCorrelation недоступна — модуль двусторонней временной корреляции определён, но не интегрирован в архитектуру энкодера.

  4. SATMA не используется — пространственно-адаптивная агрегация заменена на CrossDMHAttention (внимание), что принципиально иное.

  5. GRU модуль отсутствует — нет компонента динамического моделирования на уровне синтеза движения.

  6. STFS неправильно размещена — встроена повсюду, хотя по задумке должна быть только в Study.mq5 для обучения.

Итог: код реализует RL-трейдер общего назначения, адаптируя отдельные идеи из BAT, но не воплощает полноценную архитектуру, описанную в статьях.

 
Vladimir Sanin #:
Дмитрий, у вас 3 части этой статьи в каждой разные версии NeuroNet.mqh... Имеет ли это значение?
Добрый день, Владимир.
Каждая часть открывает отдельный блок реализации и дополняет предыдущие. Полная версия в завершающей статье.
 
Vladimir Sanin #:

Текущая реализация (Study.mq5, Test.mq5, StudyOnline.mq5) использует названия компонентов BAT, но архитектурно НЕ РЕАЛИЗУЕТ описанную в статьях систему.

Ключевые расхождения:

  1. Энкодер упрощён — вместо многоуровневой структуры (CreateFlow → MultiWindowsConv → MSRes → BiDirectCorrelation → SATMA → SpikeConvGRU2D) используется один слой  defNeuronBAT .

  2. CreateFlow отсутствует — нет преобразования в event-based представление и voxel-grid формирования. Данные поступают как плоский вектор  HistoryBars * BarDescr .

  3. BiDirectCorrelation недоступна — модуль двусторонней временной корреляции определён, но не интегрирован в архитектуру энкодера.

  4. SATMA не используется — пространственно-адаптивная агрегация заменена на CrossDMHAttention (внимание), что принципиально иное.

  5. GRU модуль отсутствует — нет компонента динамического моделирования на уровне синтеза движения.

  6. STFS неправильно размещена — встроена повсюду, хотя по задумке должна быть только в Study.mq5 для обучения.

Итог: код реализует RL-трейдер общего назначения, адаптируя отдельные идеи из BAT, но не воплощает полноценную архитектуру, описанную в статьях.

Тип defNeuronBAT соответсвует объекту CNeuronBAT, который описывается по ссылке. И включает указанные модули.

class CNeuronBAT :  public CNeuronSpikeConvBlock
  {
protected:
   CLayer                              cPrepare;
   CLayer                              cEncoder;
   CLayer                              cContext;
   CNeuronBaseOCL                      cConcatenated;
   CNeuronSpikeConvGRU2D               cGRU;
   CNeuronTransposeRCDOCL              cTranspose;
......
......
......
Нейросети в трейдинге: Двусторонняя адаптивная временная корреляция (Окончание)
Нейросети в трейдинге: Двусторонняя адаптивная временная корреляция (Окончание)
  • 2025.12.09
  • www.mql5.com
Фреймворк BAT превращает хаотичный поток рыночных данных в точные прогнозы и взвешенные торговые решения. Тесты на исторических данных показывают стабильный рост капитала при контролируемых рисках. Архитектура модели проста, масштабируема и готова к дальнейшей оптимизации.
 
Dmitriy Gizlyk #:

Тип defNeuronBAT соответсвует объекту CNeuronBAT, который описывается по ссылке. И включает указанные модули.

Прошу прощения, Дмитрий. Забыл подгрузить в LLM NeuroNet.mqh... отсюда все расхождения вылезли.
А что на счёт высокой (1500+) ошибки STFS? Нужна нормализация признаков? Я пробовал, ошибка снижается радикально... но не испортит ли это задумку?
 
Vladimir Sanin #:
Прошу прощения, Дмитрий. Забыл подгрузить в LLM NeuroNet.mqh... отсюда все расхождения вылезли.
А что на счёт высокой (1500+) ошибки STFS? Нужна нормализация признаков? Я пробовал, ошибка снижается радикально... но не испортит ли это задумку?
Ошибка снижается радикально, так как используется MSE — среднее квадратичное отклонение. Меньше сравниваемые значения, значит меньше ошибка. Задумка была в минимизации ручной работы вне модели. Поэтому на выходе STFS был добавлен слой пакетной нормализации, только в данном случае предполагалось выучить параметры масштабирования нормализованных латентных значений модели до "сырых", получаемых из терминала. Что-то вроде RevIN. Только в данном случае прямая нормализация данных осуществляется в другой модели и мы не можем взять из нее параметры нормализации, поэтому просто учим. 
Нейросети — это просто (Часть 84): Обратимая нормализация (RevIN)
Нейросети — это просто (Часть 84): Обратимая нормализация (RevIN)
  • 2024.04.05
  • www.mql5.com
Мы давно уже усвоили, что большую роль в стабильности обучения модели играет предварительная обработка исходных данных. И для online обработки "сырых" исходных данных мы часто используем слой пакетной нормализации. Но порой возникает необходимость обратной процедуры. Об одном из возможных подходов к решению подобных задач мы говорим в данной статье.