Обсуждение статьи "Нейросети в трейдинге: AlphaGen — поиск торговых факторов"

Опубликована статья Нейросети в трейдинге: AlphaGen — поиск торговых факторов:

Начинаем изучение AlphaGen — фреймворка автоматического поиска формульных факторов для прогнозирования рыночной доходности и формирования торговых сигналов. Разбираем, как генератор создаёт выражения из цен и объёмов, а совместная оценка факторов помогает отбирать полезные признаки для торговой модели. Рассматриваем адаптацию алгоритма к финансовым временным рядам. В практической части реализуем OpenCL-примитивы типизированного стека и маскирования токенов, обеспечивающие корректное построение формул с учётом ограничений доступной истории.

При разработке торговой системы приходится решать, какие свойства рынка передать модели. Изменение цены за несколько баров может описывать направленное движение, а отклонение от средней — удаление цены от сглаженного уровня. Колебания объёма характеризуют активность торгов. Каждый такой признак нужно проверить: связан ли он с последующей доходностью и помогает ли принять решение на выбранном горизонте.

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

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

В работе Generating Synergistic Formulaic Alpha Collections via Reinforcement Learning Shuo Yu и соавторы предлагают фреймворк AlphaGen. Его генератор строит формулы, а комбинационная модель оценивает их совместную связь с будущей доходностью. Эта оценка направляет дальнейший поиск: генератор обучается предлагать факторы с учётом текущего набора.

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

Автор: Dmitriy Gizlyk