Обсуждение статьи "Нейросети в трейдинге: Поиск устойчивых закономерностей в разнородных рыночных данных (Окончание)"

 

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

В статье представлена адаптация фреймворка INFNet в единый вычислительный конвейер для задач анализа финансовых временных рядов. Описана архитектура верхнеуровневого объекта, объединяющего последовательные, контекстные и сценарные потоки данных. Проведено тестирование на исторических данных EURUSD с оценкой устойчивости модели.

В этой реализации обучение INFNet идёт поэтапно. Модель переходит от статичных исторических данных к работе с живым потоком котировок. На первом этапе используется офлайн-обучение на архиве EURUSD H1 за 2025 год. Здесь рынок ещё зафиксирован, а модель анализирует его как целостную последовательность наблюдений. Ценовые движения преобразуются в токенизированное представление и проходят через архитектуру INFNet, где формируются устойчивые зависимости между различными состояниями рынка — импульсами, консолидациями и сменами режимов.

На этом этапе модель не просто подгоняет параметры под историю, а выстраивает внутреннюю структуру переходов между рыночными состояниями. По сути, формируется базовая карта поведения рынка, в которой фиксируются повторяемые закономерности: реакция на импульсы, поведение после флетов, изменение структуры контекста при переходе режимов. Это создаёт фундамент, на котором будет строиться дальнейшая адаптация.

Следующий этап — онлайн-обучение в тестере MetaTrader 5 — переводит систему в принципиально иной режим. Рынок перестаёт быть фиксированным набором данных и становится непрерывным потоком. Каждый новый бар не только проходит через уже обученную архитектуру, но и уточняет её внутренние представления. Последовательность обновляется через sequence-поток, контекст адаптируется к текущему состоянию рынка, а сценарные зависимости постепенно перестраиваются под новые условия. Обучение здесь приобретает характер непрерывной синхронизации модели с живым рынком.

Финальный этап тестирования на данных января–марта 2026 года служит проверкой устойчивости всей архитектуры. Модель сталкивается с новыми рыночными режимами, которые могут существенно отличаться от обучающего периода.

Автор: Dmitriy Gizlyk

 

Добрый день, Дмитрий! Внимательно читаю весь цикл статей и тестирую прилагаемые модели. Хотел бы в перспективе использовать их в своей торговле, в связи с чем возникают некоторые вопросы, которые Вам, как автору, хотел бы задать. В частности, при тестировании заметил, что результат последовательных прогонов советника Test на одном и том же периоде не совпадают друг с другом, причём существенно, как по количеству сделок, так и по результатам вплоть до прибыли в одном случае и убытка в другом (естественно в тестере эмуляция проскальзывания отключена). Отследил использование функции MathRand в отладчике в библиотеке Trajectory.mqh – используется только при обучении в советнике Study. Эффект наблюдается во всех последних моделях, которые я тестировал включая сегодняшнюю (обучение INFNet выполнил на коротком отрезке истории, а для модели MDL выполнил полный цикл обучения, что заняло примерно неделю). Следствием является то, что не удалость получить приведенные в статьях показатели стратегий. Хотелось бы получить от Вас авторские пояснения по этому вопросу.

P.S. Продублировал сюда.

 
Andrey Kotrin #:

Добрый день, Дмитрий! Внимательно читаю весь цикл статей и тестирую прилагаемые модели. Хотел бы в перспективе использовать их в своей торговле, в связи с чем возникают некоторые вопросы, которые Вам, как автору, хотел бы задать. В частности, при тестировании заметил, что результат последовательных прогонов советника Test на одном и том же периоде не совпадают друг с другом, причём существенно, как по количеству сделок, так и по результатам вплоть до прибыли в одном случае и убытка в другом (естественно в тестере эмуляция проскальзывания отключена). Отследил использование функции MathRand в отладчике в библиотеке Trajectory.mqh – используется только при обучении в советнике Study. Эффект наблюдается во всех последних моделях, которые я тестировал включая сегодняшнюю (обучение INFNet выполнил на коротком отрезке истории, а для модели MDL выполнил полный цикл обучения, что заняло примерно неделю). Следствием является то, что не удалость получить приведенные в статьях показатели стратегий. Хотелось бы получить от Вас авторские пояснения по этому вопросу.

P.S. Продублировал сюда.

Добрый день, Андрей.

Для активного исследования окружающей среды в Актере используется слой VAE. Его логика в том, что результаты предыдущего слоя трактуются как среднее и дисперсия распределения для каждого отдельного элемента на выходе. Внутри слоя осуществляется случайное семплирование из заданного распределения. Поэтому при каждом проходе на начальном этапе практически генерируются случайные значения. В процессе обучения модели среднее значение смещается, а дисперсия стремится к 0. Таким образом модель от случайного исследования окружающей среды переходит к осознанному поведению.

//--- layer 4
   if(!(descr = new CLayerDescription()))
      DeleteObjAndFalse(descr);
   descr.type = defNeuronBaseOCL;
   descr.count = 2 * NActions;
   descr.activation = SIGMOID;
   descr.optimization = ADAM;
   if(!actor.Add(descr))
      DeleteObjAndFalse(descr);
//--- layer 5
   if(!(descr = new CLayerDescription()))
      DeleteObjAndFalse(descr);
   descr.type = defNeuronVAEOCL;
   descr.count = NActions;
   descr.optimization = ADAM;
   if(!actor.Add(descr))
      DeleteObjAndFalse(descr);
Нейросети — это просто (Часть 21): Вариационные автоэнкодеры (VAE)
Нейросети — это просто (Часть 21): Вариационные автоэнкодеры (VAE)
  • 2022.07.18
  • www.mql5.com
В прошлой статье мы познакомились с алгоритмом работы автоэнкодера. Как и любой другой алгоритм, он имеет свои достоинства и недостатки. В оригинальной реализации автоэнкодер выполняет задачу максимально разделить объекты из обучающей выборки. А о том, как бороться с некоторыми его недостатками мы поговорим в этой статье.
 
Dmitriy Gizlyk #:

Добрый день, Андрей.

Для активного исследования окружающей среды в Актере используется слой VAE. Его логика в том, что результаты предыдущего слоя трактуются как среднее и дисперсия распределения для каждого отдельного элемента на выходе. Внутри слоя осуществляется случайное семплирование из заданного распределения. Поэтому при каждом проходе на начальном этапе практически генерируются случайные значения. В процессе обучения модели среднее значение смещается, а дисперсия стремится к 0. Таким образом модель от случайного исследования окружающей среды переходит к осознанному поведению.

Спасибо, Дмитрий!

Думаю задача при обучении модели и оптимизации стратегии может быть сформулирована как попадание результатов проходов  в диапазон значений по прибыли, пруфит-фактору, рековери и т.д.