Перейти к содержимому

Глава 318: Фреймворк опций для RL-трейдинга

1. Введение

Фреймворк опций (Options Framework) для обучения с подкреплением предоставляет принципиальный подход к иерархическому принятию решений в торговых системах. В то время как стандартное RL работает на одном временном масштабе — выбирая примитивные действия на каждом шаге — реальная торговля включает решения на нескольких временных разрешениях: определение макро-режима, выбор среднесрочной стратегии и микро-уровневое исполнение ордеров.

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

Фреймворк был предложен Саттоном, Прекупом и Сингхом в их фундаментальной работе по темпоральной абстракции в RL. Он расширяет стандартные MDP до полумарковских процессов принятия решений (semi-MDP, SMDP), где действия могут занимать различное количество времени. Для трейдинга это естественно: стратегия следования за трендом может длиться дни при сильном тренде, но завершиться за часы на неустойчивом рынке.

Ключевые преимущества для торговых приложений:

  • Многомасштабное рассуждение: макро-определение режима управляет выбором стратегии; микро-исполнение обрабатывает отдельные сделки
  • Эффективность исследования: опции обеспечивают структурированное исследование пространства стратегий вместо случайного возмущения действий
  • Перенос обучения: опции, выученные на одном рынке, могут быть применены к похожим рынкам
  • Интерпретируемость: каждая опция соответствует узнаваемой торговой стратегии, что делает систему проверяемой

В этой главе реализуется фреймворк опций с архитектурой Option-Critic, которая совместно обучает сами опции (их политики и условия завершения) наряду с политикой выбора опций, с применением к торговле криптовалютами на данных Bybit.

2. Математические основы

2.1 Полумарковский процесс принятия решений (Semi-MDP)

Стандартный MDP определяется кортежем $(S, A, P, R, \gamma)$. Semi-MDP расширяет его, позволяя действиям занимать переменную длительность. Формально переходы характеризуются:

$$P(s’, k \mid s, o) = \Pr(s_{t+k} = s’, \text{длительность} = k \mid s_t = s, o_t = o)$$

где $k$ — количество примитивных временных шагов, которые опция $o$ выполняет до завершения в состоянии $s’$.

Коэффициент дисконтирования накапливается за время действия опции:

$$\gamma^k \cdot V(s’)$$

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

2.2 Опции: тройка $(I, \pi, \beta)$

Опция $o$ формально определяется как тройка:

$$o = (I_o, \pi_o, \beta_o)$$

где:

  • Множество инициации $I_o \subseteq S$: множество состояний, в которых опция $o$ может быть запущена. Для трейдинга опция TrendFollow может инициироваться только когда индикаторы моментума превышают порог.

  • Внутренняя политика опции $\pi_o(a \mid s)$: вероятность выполнения примитивного действия $a$ в состоянии $s$ при исполнении опции $o$. Это «внутренняя» политика, которая управляет фактическими торговыми решениями в рамках стратегии.

  • Условие завершения $\beta_o(s) \in [0, 1]$: вероятность завершения опции $o$ при входе в состояние $s$. Высокая вероятность завершения в неблагоприятных состояниях позволяет агенту быстро отказаться от неудачных стратегий.

2.3 Политика выбора опций

Политика выбора опций $\mu(o \mid s)$ выбирает, какую опцию выполнять в данном состоянии. Она работает на более высоком уровне, чем внутренние политики опций:

$$\mu(o \mid s) = \begin{cases} \text{политика выбора опций} & \text{если нет активной опции или текущая опция завершилась} \end{cases}$$

Модель выполнения «вызов и возврат» работает следующим образом:

  1. В состоянии $s$, если нет активной опции, выбрать опцию $o \sim \mu(\cdot \mid s)$
  2. Выполнить действие $a \sim \pi_o(\cdot \mid s)$
  3. Перейти в $s’$, получить вознаграждение $r$
  4. С вероятностью $\beta_o(s’)$ опция $o$ завершается; перейти к шагу 1
  5. Иначе продолжить с опцией $o$ от шага 2

2.4 Внутриопционное Q-обучение

Функция ценности опций $Q_\Omega(s, o)$ представляет ожидаемый возврат при выполнении опции $o$ в состоянии $s$ с последующим следованием политике $\mu$:

$$Q_\Omega(s, o) = \sum_a \pi_o(a \mid s) \sum_{s’} P(s’ \mid s, a) \left[ r(s, a) + \gamma , U(o, s’) \right]$$

где $U(o, s’)$ — функция завершения опции:

$$U(o, s’) = (1 - \beta_o(s’)) , Q_\Omega(s’, o) + \beta_o(s’) \max_{o’} Q_\Omega(s’, o’)$$

Это учитывает, что в состоянии $s’$ опция либо продолжается (с вероятностью $1 - \beta$), либо завершается (с вероятностью $\beta$), и тогда жадно выбирается новая опция.

Обновление SMDP Q-обучения для функции ценности опций после выполнения опции $o$ за $k$ шагов с кумулятивным вознаграждением $R$:

$$Q_\Omega(s, o) \leftarrow Q_\Omega(s, o) + \alpha \left[ R + \gamma^k \max_{o’} Q_\Omega(s’, o’) - Q_\Omega(s, o) \right]$$

2.5 Архитектура Option-Critic

Архитектура Option-Critic (Bacon et al., 2017) обучает все компоненты сквозным образом с помощью методов градиента политики:

Градиент внутренней политики опции (обновляет $\pi_o$):

$$\frac{\partial Q_U(s, o, a)}{\partial \theta_o} \propto Q_U(s, o, a) \nabla_{\theta_o} \ln \pi_o(a \mid s; \theta_o)$$

где $Q_U(s, o, a)$ — функция ценности действий внутри опции.

Градиент завершения (обновляет $\beta_o$):

$$\frac{\partial}{\partial \vartheta_o} \beta_o(s’; \vartheta_o) \cdot A_\Omega(s’, o)$$

где $A_\Omega(s’, o) = Q_\Omega(s’, o) - V_\Omega(s’)$ — преимущество продолжения опции $o$ по сравнению с выбором новой опции. Когда преимущество отрицательно (текущая опция хуже среднего), градиент увеличивает вероятность завершения.

2.6 Детали условия завершения

Функция завершения параметризуется с помощью сигмоиды:

$$\beta_o(s; \vartheta) = \sigma(\vartheta_o^T \phi(s))$$

Теорема о градиенте завершения гласит:

$$-\frac{\partial J}{\partial \vartheta_{o,s}} = -\beta_o(s)(1 - \beta_o(s)) \cdot A_\Omega(s, o)$$

Этот элегантный результат означает:

  • Если текущая опция лучше альтернатив ($A_\Omega > 0$), уменьшить вероятность завершения (продолжать)
  • Если текущая опция хуже ($A_\Omega < 0$), увеличить вероятность завершения (сменить стратегию)

3. Применения в трейдинге

3.1 Многомасштабная торговля

Фреймворк опций естественно отображается на многомасштабную структуру финансовых рынков:

УровеньМасштабФреймворк опцийТорговое применение
МакроДни-неделиПолитика опций $\mu$Определение режима (бычий/медвежий/боковой)
МезоЧасы-дниВнутренняя политика $\pi_o$Исполнение стратегии (тренд, возврат к среднему)
МикроМинутыПримитивные действияРазмещение ордеров (покупка/продажа/удержание)

Определение макро-режима осуществляется через политику выбора опций. Когда агент обнаруживает трендовый рынок (высокий моментум, растущий объём), он выбирает опцию TrendFollow. На рынках с диапазонной торговлей и характеристиками возврата к среднему он переключается на MeanRevert. В периоды неопределённости или низкой волатильности активируется Hold.

Микро-исполнение обрабатывается внутренними политиками опций. Политика опции TrendFollow преимущественно выбирает действия Buy при восходящих трендах и Sell при нисходящих. Опция MeanRevert делает противоположное: Buy на просадках и Sell на ралли.

3.2 Ребалансировка портфеля

Опции могут представлять полные стратегии ребалансировки:

  • AggressiveRebalance: быстро движется к целевой аллокации, завершается при достижении допуска
  • GradualRebalance: медленно корректирует позиции во времени для минимизации рыночного воздействия
  • OpportunisticRebalance: ждёт благоприятных ценовых движений перед ребалансировкой

Условие завершения естественно фиксирует «когда прекратить ребалансировку» — стратегия завершается, когда портфель достаточно близок к целевой аллокации или когда рыночные условия меняются.

3.3 Управление рисками

Опции предоставляют естественный фреймворк для торговли с учётом рисков:

  • Опция RiskOff: активируется при высокой волатильности, уменьшает размер позиций, завершается при снижении волатильности
  • Опция Recovery: после просадки реализует консервативное наращивание позиций с тесными стоп-лоссами

Множества инициации кодируют ограничения по рискам: опция RiskOff может инициироваться только при превышении порога волатильности, предотвращая преждевременное снижение рисков.

4. Реализация на Rust

Реализация в rust/src/lib.rs предоставляет полный фреймворк опций для трейдинга:

Основные компоненты

MarketState: дискретизирует непрерывные рыночные признаки (моментум, волатильность, объём) в конечное пространство из 45 состояний (5 бинов моментума x 3 бина волатильности x 3 бина объёма). Это позволяет использовать табличные методы, сохраняя существенную структуру рынка.

TradingOption: реализует тройку $(I, \pi, \beta)$ с тремя предварительно настроенными стратегиями:

  • TrendFollow: покупает в восходящих трендах, продаёт в нисходящих, завершается на нейтральных рынках
  • MeanRevert: покупает на просадках, продаёт на ралли, завершается при возврате цены к среднему
  • Hold: минимальная торговля, низкая вероятность завершения для терпеливого ожидания

SemiMdpEnv: торговая среда, поддерживающая как примитивные шаги, так и исполнение опций. Отслеживает позицию, PnL и транзакционные издержки. Метод execute_option выполняет опцию до завершения, накапливая дисконтированные вознаграждения.

IntraOptionQLearning: реализует SMDP Q-обучение функции ценности опций $Q_\Omega(s, o)$ с epsilon-жадным выбором опций.

OptionCritic: полная архитектура Option-Critic с:

  • $Q_\Omega(s, o)$: функция ценности на уровне опций
  • $Q_U(s, o, a)$: функция ценности действий внутри опции
  • Обучаемые функции завершения $\beta_o(s)$ через сигмоидную параметризацию
  • Softmax-выбор действий внутри опции

Ключевые проектные решения

  1. Табличный подход: при 45 состояниях и 3 опциях Q-таблицы достаточно малы для быстрого обучения, сохраняя значимую структуру рынка
  2. Сигмоидное завершение: функция завершения использует логиты с сигмоидной активацией, позволяя градиентное обучение момента переключения стратегий
  3. Транзакционные издержки: среда включает реалистичные издержки 10 базисных пунктов за изменение позиции
  4. Ограничение длительности опции: предохранительный лимит в 50 шагов предотвращает бесконечное выполнение опций

5. Интеграция с Bybit

Реализация получает реальные рыночные данные из Bybit v5 API:

GET /v5/market/kline?category=spot&symbol=BTCUSDT&interval=60&limit=500

Функция fetch_bybit_klines:

  1. Запрашивает спотовый рынок Bybit для почасовых свечей BTCUSDT
  2. Парсит ответ в структурированные объекты Kline (open, high, low, close, volume)
  3. Переворачивает данные в хронологический порядок (Bybit возвращает от новейших к старым)
  4. При недоступности API использует синтетические данные со сменой режимов

Генератор синтетических данных создаёт реалистичные ценовые ряды с циклическими режимами (восходящий тренд, нисходящий тренд, боковой) каждые 100 шагов, обеспечивая контролируемую среду для тестирования переключения режимов.

Рыночные признаки вычисляются из сырых данных цены/объёма:

  • Моментум: возврат за окно наблюдения
  • Волатильность: стандартное отклонение логарифмических возвратов
  • Соотношение объёма: текущий объём относительно среднего по окну

6. Ключевые выводы

  1. Темпоральная абстракция соответствует реальности трейдинга: трейдеры естественно думают в терминах стратегий (опций), а не отдельных сделок (примитивных действий). Фреймворк опций формализует эту иерархию.

  2. Semi-MDP обрабатывают стратегии переменной длительности: в отличие от MDP с фиксированным шагом, semi-MDP правильно дисконтируют вознаграждения за фактическую длительность стратегии.

  3. Условие завершения критически важно: обучение когда прекращать стратегию так же важно, как обучение что делать. Теорема о градиенте завершения предоставляет элегантное решение — отказываться от стратегий, которые работают хуже среднего.

  4. Option-Critic обеспечивает сквозное обучение: вместо ручного проектирования опций архитектура Option-Critic одновременно обучает внутренние политики, условия завершения и политику выбора опций из рыночных данных.

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

  6. Многомасштабная декомпозиция улучшает исследование: вместо исследования полного пространства действий на каждом шаге агент исследует на уровне стратегий, делая обучение более эффективным.

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

Литература

  • Sutton, R. S., Precup, D., & Singh, S. (1999). Between MDPs and semi-MDPs: A framework for temporal abstraction in reinforcement learning. Artificial Intelligence, 112(1-2), 181-211.
  • Bacon, P. L., Harb, J., & Precup, D. (2017). The Option-Critic Architecture. AAAI Conference on Artificial Intelligence.
  • Precup, D. (2000). Temporal abstraction in reinforcement learning. Ph.D. thesis, University of Massachusetts Amherst.
  • Harb, J., Bacon, P. L., Klissarov, M., & Precup, D. (2018). When is a good time to terminate? Advances in Neural Information Processing Systems.