Глава 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}$$
Модель выполнения «вызов и возврат» работает следующим образом:
- В состоянии $s$, если нет активной опции, выбрать опцию $o \sim \mu(\cdot \mid s)$
- Выполнить действие $a \sim \pi_o(\cdot \mid s)$
- Перейти в $s’$, получить вознаграждение $r$
- С вероятностью $\beta_o(s’)$ опция $o$ завершается; перейти к шагу 1
- Иначе продолжить с опцией $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-выбор действий внутри опции
Ключевые проектные решения
- Табличный подход: при 45 состояниях и 3 опциях Q-таблицы достаточно малы для быстрого обучения, сохраняя значимую структуру рынка
- Сигмоидное завершение: функция завершения использует логиты с сигмоидной активацией, позволяя градиентное обучение момента переключения стратегий
- Транзакционные издержки: среда включает реалистичные издержки 10 базисных пунктов за изменение позиции
- Ограничение длительности опции: предохранительный лимит в 50 шагов предотвращает бесконечное выполнение опций
5. Интеграция с Bybit
Реализация получает реальные рыночные данные из Bybit v5 API:
GET /v5/market/kline?category=spot&symbol=BTCUSDT&interval=60&limit=500Функция fetch_bybit_klines:
- Запрашивает спотовый рынок Bybit для почасовых свечей BTCUSDT
- Парсит ответ в структурированные объекты
Kline(open, high, low, close, volume) - Переворачивает данные в хронологический порядок (Bybit возвращает от новейших к старым)
- При недоступности API использует синтетические данные со сменой режимов
Генератор синтетических данных создаёт реалистичные ценовые ряды с циклическими режимами (восходящий тренд, нисходящий тренд, боковой) каждые 100 шагов, обеспечивая контролируемую среду для тестирования переключения режимов.
Рыночные признаки вычисляются из сырых данных цены/объёма:
- Моментум: возврат за окно наблюдения
- Волатильность: стандартное отклонение логарифмических возвратов
- Соотношение объёма: текущий объём относительно среднего по окну
6. Ключевые выводы
-
Темпоральная абстракция соответствует реальности трейдинга: трейдеры естественно думают в терминах стратегий (опций), а не отдельных сделок (примитивных действий). Фреймворк опций формализует эту иерархию.
-
Semi-MDP обрабатывают стратегии переменной длительности: в отличие от MDP с фиксированным шагом, semi-MDP правильно дисконтируют вознаграждения за фактическую длительность стратегии.
-
Условие завершения критически важно: обучение когда прекращать стратегию так же важно, как обучение что делать. Теорема о градиенте завершения предоставляет элегантное решение — отказываться от стратегий, которые работают хуже среднего.
-
Option-Critic обеспечивает сквозное обучение: вместо ручного проектирования опций архитектура Option-Critic одновременно обучает внутренние политики, условия завершения и политику выбора опций из рыночных данных.
-
Множества инициации кодируют экспертные знания: ограничивая, в каких состояниях может инициироваться каждая опция, мы включаем торговый опыт — например, предотвращая следование за трендом на боковых рынках.
-
Многомасштабная декомпозиция улучшает исследование: вместо исследования полного пространства действий на каждом шаге агент исследует на уровне стратегий, делая обучение более эффективным.
-
Транзакционные издержки взаимодействуют с длительностью опций: опции с большей длительностью снижают частоту торговли и транзакционные издержки, в то время как коэффициент дисконтирования штрафует чрезмерную приверженность. Это естественное напряжение создаёт сбалансированное торговое поведение.
Литература
- 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.