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

Глава 317: Целеориентированное обучение с подкреплением для трейдинга

1. Введение

Традиционные агенты обучения с подкреплением (RL) в торговых средах оптимизируют единственный фиксированный сигнал вознаграждения — как правило, максимизацию кумулятивной доходности или коэффициента Шарпа. Хотя этот подход показал впечатляющие результаты, он страдает от фундаментального ограничения: агент не может адаптировать своё поведение к различным целям во время тестирования без полного переобучения. Портфельный управляющий может стремиться к 5% месячной доходности во время бычьих рынков, но переключиться на сохранение капитала в периоды волатильности. Риск-менеджер может требовать стратегий, которые никогда не превышают 10% просадку, а проприетарная торговая группа нацелена на конкретные пороги доходности за сделку.

Целеориентированное обучение с подкреплением (Goal-Conditioned RL, GCRL) решает это ограничение, обучая агентов, которые принимают явные цели в качестве входных данных наряду с рыночным состоянием. Вместо изучения единственной политики агент изучает универсальную политику, способную достигать континуума целей по запросу. При развёртывании трейдер указывает желаемый результат — целевую доходность, максимальную просадку, порог коэффициента Шарпа — и агент адаптирует своё торговое поведение соответственно.

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

  1. Целе-дополненные MDP: расширение пространства состояний для включения спецификаций целей
  2. Универсальные функции ценности (UVF): функции ценности, обобщающие как по состояниям, так и по целям
  3. Воспроизведение опыта с ретроспективой (HER): техника аугментации данных, которая учится на неудачах, переназначая достигнутые результаты как намеченные цели

В трейдинге GCRL особенно эффективен, поскольку рыночные условия нестационарны, и возможность динамической корректировки целей без переобучения обеспечивает значительное операционное преимущество. В этой главе представлены математические основы, практические алгоритмы и полная реализация на Rust с интеграцией рыночных данных Bybit.

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

2.1 Целе-дополненный марковский процесс принятия решений

Стандартный MDP определяется кортежем $(S, A, P, R, \gamma)$. Целе-ориентированный MDP расширяет его до $(S, A, G, P, R_g, \gamma, \phi)$, где:

  • $S$ — пространство состояний (рыночные наблюдения: цены, объёмы, индикаторы)
  • $A$ — пространство действий (покупка, продажа, удержание, размеры позиций)
  • $G$ — пространство целей (целевая доходность, лимиты просадки, целевой Шарп)
  • $P: S \times A \times S \rightarrow [0, 1]$ — функция переходов
  • $R_g: S \times A \times G \rightarrow \mathbb{R}$ — целе-ориентированная функция вознаграждения
  • $\gamma \in [0, 1)$ — коэффициент дисконтирования
  • $\phi: S \rightarrow G$ — функция отображения целей, извлекающая достигнутую цель из состояния

Целе-ориентированная функция вознаграждения обычно определяется как:

$$R_g(s, a, g) = -|g - \phi(s’)|_2 + \mathbb{1}[|\phi(s’) - g| < \epsilon]$$

где $s’$ — следующее состояние, $\phi(s’)$ отображает состояние на достигнутую цель (например, текущую кумулятивную доходность), а $\epsilon$ — порог допуска. Первый член обеспечивает формирующий сигнал, пропорциональный расстоянию до цели, а второй — разреженный бонус при достижении цели.

Для трейдинга определяем:

$$\phi_{\text{return}}(s_t) = \frac{V_t - V_0}{V_0}$$

$$\phi_{\text{sharpe}}(s_t) = \frac{\bar{r}t}{\sigma{r_t}} \cdot \sqrt{252}$$

$$\phi_{\text{drawdown}}(s_t) = \frac{V_t - \max_{\tau \leq t} V_\tau}{\max_{\tau \leq t} V_\tau}$$

где $V_t$ — стоимость портфеля в момент времени $t$, $\bar{r}t$ — средняя дневная доходность, а $\sigma{r_t}$ — стандартное отклонение дневной доходности.

2.2 Универсальные аппроксиматоры функций ценности (UVFA)

Универсальная функция ценности $V(s, g; \theta)$ оценивает ожидаемую доходность для нахождения в состоянии $s$ при преследовании цели $g$:

$$V(s, g; \theta) \approx \mathbb{E}\left[\sum_{t=0}^{\infty} \gamma^t R_g(s_t, a_t, g) \mid s_0 = s\right]$$

Аналогично, универсальная функция ценности действий:

$$Q(s, a, g; \theta) \approx \mathbb{E}\left[\sum_{t=0}^{\infty} \gamma^t R_g(s_t, a_t, g) \mid s_0 = s, a_0 = a\right]$$

Политика тогда является целе-ориентированной:

$$\pi(a \mid s, g; \theta) = \arg\max_a Q(s, a, g; \theta)$$

На практике векторы состояния и цели конкатенируются и подаются в нейронную сеть:

$$\text{input} = [s | g] \in \mathbb{R}^{d_s + d_g}$$

Архитектура сети обычно использует отдельные ветви кодирования для состояний и целей перед их объединением:

$$h_s = f_s(s; \theta_s), \quad h_g = f_g(g; \theta_g)$$

$$Q(s, a, g) = f_q([h_s | h_g]; \theta_q)$$

2.3 Воспроизведение опыта с ретроспективой (HER)

HER — ключевая инновация, делающая целе-ориентированное RL практичным. Фундаментальная проблема заключается в том, что при разреженных вознаграждениях агент редко достигает желаемой цели, что делает обучение чрезвычайно медленным. HER решает эту проблему, ретроспективно перемечая неудачные эпизоды целями, которые были фактически достигнуты.

Для данной траектории $\tau = {(s_0, a_0, g), (s_1, a_1, g), \ldots, (s_T, a_T, g)}$, где желаемая цель $g$ не была достигнута, HER создаёт дополнительные обучающие примеры, заменяя $g$ на $g’ = \phi(s_T)$ (достигнутую цель):

$$\tau’ = {(s_0, a_0, g’), (s_1, a_1, g’), \ldots, (s_T, a_T, g’)}$$

Стратегии перемечивания включают:

  1. Финальная (Final): использование цели, достигнутой в конце эпизода: $g’ = \phi(s_T)$
  2. Будущая (Future): для каждого перехода в момент $t$ выбирается будущее состояние $s_k$, где $k > t$, и устанавливается $g’ = \phi(s_k)$
  3. Эпизодная (Episode): выбирается любое состояние из эпизода: $g’ = \phi(s_k)$, где $k \sim \text{Uniform}(0, T)$
  4. Случайная (Random): выборка целей из всего буфера воспроизведения

В торговых терминах, если агент стремился к 5% доходности, но достиг только 2%, HER создаёт обучающие данные, как если бы агент намеревался достичь 2% изначально. Это значительно ускоряет обучение, поскольку каждая траектория становится информативной.

2.4 Целе-ориентированное уравнение Беллмана

Уравнение Беллмана для целе-ориентированного Q-обучения:

$$Q(s, a, g) = R_g(s, a, g) + \gamma \max_{a’} Q(s’, a’, g)$$

Функция потерь для обучения:

$$\mathcal{L}(\theta) = \mathbb{E}{(s, a, g, r, s’) \sim \mathcal{B}} \left[(r + \gamma \max{a’} Q(s’, a’, g; \theta^{-}) - Q(s, a, g; \theta))^2\right]$$

где $\mathcal{B}$ — буфер воспроизведения (дополненный HER-переразмеченными переходами), а $\theta^{-}$ — параметры целевой сети.

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

3.1 Торговля с целевой доходностью

Наиболее прямое применение GCRL в трейдинге — указание целевой доходности. Пространство целей просто $G = \mathbb{R}$, представляющее желаемую кумулятивную доходность за торговый горизонт. Агент учится модулировать размеры позиций, время входа/выхода и выбор активов для достижения указанной доходности.

На бычьих рынках цель в 10% месячной доходности может быть достижима при умеренном кредитном плече. На боковых рынках та же цель может потребовать от агента более концентрированных позиций. GCRL-агент изучает эти адаптации неявно.

3.2 Стратегии с ограничением просадки

Цели могут кодировать ограничения риска, а не целевую доходность. Установка $g = (\text{max_drawdown} = -5%)$ инструктирует агента торговать, никогда не допуская снижения портфеля более чем на 5% от его пика. Функция вознаграждения штрафует за нарушения просадки:

$$R_g(s, a, g) = r_t - \lambda \cdot \max(0, |\text{DD}_t| - |g|)$$

где $\text{DD}_t$ — текущая просадка, а $\lambda$ — коэффициент штрафа.

3.3 Целевые показатели Value-at-Risk (VaR)

Институциональные торговые подразделения часто имеют лимиты VaR. GCRL может включать целевые показатели VaR непосредственно в спецификацию цели: $g = (\text{VaR}_{95%} = -2%)$. Агент учится формировать портфели, где 95-й перцентиль дневных убытков не превышает 2%.

3.4 Композиция множественных целей

Цели могут быть скомпонованы в векторы: $g = (r_{\text{target}}, \text{DD}{\max}, \text{Sharpe}{\min})$. Это позволяет агенту одновременно стремиться к доходности, соблюдая ограничения риска, обеспечивая гибкий интерфейс для управления портфелем.

3.5 Динамическая корректировка целей

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

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

Реализация в rust/src/lib.rs предоставляет полную систему GCRL-трейдинга со следующими компонентами:

4.1 Основные структуры данных

  • GoalConditionedState: объединяет рыночные наблюдения со спецификациями целей в единый дополненный вектор состояния
  • HERReplayBuffer: реализует воспроизведение опыта с ретроспективой с настраиваемыми стратегиями перемечивания (Final, Future, Episode)
  • UniversalValueFunction: нейросетевой аппроксиматор, отображающий пары (состояние, цель) в Q-значения по действиям
  • GoalConditionedPolicy: политика, выбирающая действия на основе текущего состояния и желаемой цели, с epsilon-жадным исследованием

4.2 Конвейер обучения

Цикл обучения следует стандартному алгоритму GCRL:

  1. Для каждого эпизода выбирается цель из распределения целей
  2. Выполняется эпизод с использованием целе-ориентированной политики
  3. Переходы сохраняются в буфер воспроизведения
  4. Применяется HER для генерации дополнительных переразмеченных переходов
  5. Выбираются мини-батчи и обновляется Q-сеть через градиентный спуск
  6. Периодически обновляется целевая сеть

4.3 Спецификации целей

Система поддерживает три типа целей:

  • TargetReturn: достижение указанной кумулятивной доходности (например, 5%)
  • MaxDrawdown: удержание максимальной просадки в пределах лимита (например, -10%)
  • TargetSharpe: достижение целевого годового коэффициента Шарпа (например, 1.5)

5. Интеграция данных Bybit

Реализация включает BybitClient, который получает исторические данные свечей (kline) через Bybit V5 API. Клиент:

  1. Подключается к https://api.bybit.com/v5/market/kline
  2. Получает данные OHLCV для любой торговой пары (по умолчанию: BTCUSDT)
  3. Преобразует необработанные ответы API в структуры MarketCandle
  4. Вычисляет производные характеристики: доходность, волатильность и скользящие статистики
  5. Формирует векторы состояний, подходящие для GCRL-агента

Интеграция с Bybit позволяет агенту обучаться на реальных данных криптовалютного рынка, предоставляя реалистичный полигон для тестирования целе-ориентированных торговых стратегий. Пример в rust/examples/trading_example.rs демонстрирует получение данных в реальном времени, обучение агента с множественными целевыми показателями и оценку производительности при различных спецификациях целей.

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

  1. Целе-ориентированное RL отделяет цели от обучения: одна тренировочная сессия создаёт агента, способного преследовать множество различных торговых целей без переобучения.

  2. HER необходим для эффективности использования данных: без воспроизведения опыта с ретроспективой целе-ориентированным агентам в торговых средах с разреженными вознаграждениями потребовалось бы непрактичное количество данных. HER превращает каждую траекторию в полезный обучающий сигнал.

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

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

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

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

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

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