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

Глава 314: Консервативное Q-обучение для трейдинга

Введение

Обучение с подкреплением (RL) продемонстрировало значительный потенциал в разработке автономных торговых стратегий, однако развертывание RL-агентов на реальных финансовых рынках создает фундаментальную дилемму: исследование в реальной среде несет реальный финансовый риск. Каждое субоптимальное действие, которое RL-агент совершает во время исследования, напрямую приводит к денежным потерям. Консервативное Q-обучение (CQL), представленное Kumar et al. (2020), предлагает элегантное решение этой проблемы, позволяя агентам обучать эффективные торговые политики исключительно на исторических данных --- без необходимости взаимодействия с реальным рынком во время обучения.

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

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

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

  • Безопасное офлайн-обучение: Нет необходимости во взаимодействии с рынком во время обучения, что исключает риск исследования
  • Пессимистичная оценка значений: Агент консервативен в отношении непроверенных действий, естественно избегая экстремальных позиций
  • Совместимость с существующими данными: Можно использовать обширные архивы исторических рыночных данных
  • Устойчивость к сдвигу распределения: Политики устойчивы к различиям между историческими и текущими данными
  • Соответствие регуляторным требованиям: Легче аудировать и проверять по сравнению с онлайн RL-системами

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

Обзор стандартного Q-обучения

В стандартном Q-обучении агент обучает функцию ценности действия Q(s, a), которая оценивает ожидаемое кумулятивное вознаграждение за выполнение действия a в состоянии s с последующим следованием оптимальной политике. Уравнение оптимальности Беллмана:

Q*(s, a) = E[r + gamma * max_a' Q*(s', a')]

где gamma --- коэффициент дисконтирования, r --- немедленное вознаграждение, s’ --- следующее состояние.

В офлайн-режиме у нас есть фиксированный набор данных D = {(s_i, a_i, r_i, s’_i)}, собранный некоторой поведенческой политикой pi_beta. Стандартная функция потерь временной разности (TD):

L_TD(theta) = E_{(s,a,r,s')~D} [(Q_theta(s,a) - (r + gamma * max_a' Q_target(s', a')))^2]

Проблема переоценки в офлайн RL

Когда набор данных D не покрывает полное пространство состояний-действий, стандартное Q-обучение производит завышенные Q-значения для действий за пределами распределения (OOD). Оператор максимизации max_a' в обновлении Беллмана выбирает действия, которые могут иметь ошибочно высокие Q-значения просто потому, что они никогда не были скорректированы реальными данными. В трейдинге это может означать, что агент считает размещение огромного рыночного ордера в период низкой ликвидности прибыльным, поскольку он никогда не наблюдал негативных последствий.

Целевая функция CQL

CQL модифицирует стандартную целевую функцию Q-обучения, добавляя консервативный регуляризационный член:

L_CQL(theta) = alpha * [E_{s~D, a~mu(a|s)} [Q_theta(s, a)] - E_{(s,a)~D} [Q_theta(s, a)]] + L_TD(theta)

Где:

  • alpha --- вес регуляризации, контролирующий уровень консервативности
  • mu(a|s) --- распределение для выборки OOD-действий (часто равномерное или обученная политика)
  • Первое математическое ожидание штрафует Q-значения для действий, выбранных из mu (потенциально OOD-действия)
  • Второе ожидание поддерживает высокие Q-значения для действий, фактически наблюдаемых в наборе данных
  • L_TD --- стандартные потери временной разности

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

Теоретическая гарантия

CQL обеспечивает доказуемую нижнюю границу истинной Q-функции:

Q_CQL(s, a) <= Q_pi(s, a), для всех (s, a)

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

Практический вариант CQL (CQL-H)

На практике обычно используется вариант CQL(H), включающий формулировку log-sum-exp:

L_CQL-H(theta) = alpha * [E_s~D [log sum_a exp(Q_theta(s, a))] - E_{(s,a)~D} [Q_theta(s, a)]] + L_TD(theta)

Это можно аппроксимировать, выбрав N действий равномерно случайно:

log sum_a exp(Q(s,a)) ~ log (1/N * sum_{i=1}^{N} exp(Q(s, a_i)))

Пространства состояний и действий для трейдинга

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

Пространство состояний s_t включает:

  • Недавние ценовые доходности (например, последние 10 свечей)
  • Индикаторы объема
  • Дисбаланс книги ордеров
  • Текущая позиция
  • Нереализованная прибыль/убыток

Пространство действий A = {сильная_продажа, продажа, удержание, покупка, сильная_покупка}

Функция вознаграждения:

r_t = position_t * (price_{t+1} - price_t) / price_t - transaction_cost * |action_change|

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

Обучение на исторических данных книги ордеров

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

  1. Сбор данных: Агрегация исторических данных OHLCV и снимков книги ордеров с бирж, таких как Bybit
  2. Инженерия признаков: Вычисление технических индикаторов, характеристик книги ордеров и сигналов микроструктуры рынка
  3. Построение офлайн-набора данных: Преобразование временного ряда признаков в кортежи (состояние, действие, вознаграждение, следующее_состояние) с использованием эвристической или существующей стратегии в качестве поведенческой политики
  4. Обучение CQL: Обучение CQL-агента на этом фиксированном офлайн-наборе данных
  5. Оценка: Бэктестинг обученной политики на отложенных исторических данных
  6. Развертывание: Развертывание консервативной политики в среде бумажной торговли, затем в реальной

Преимущества перед онлайн RL в трейдинге

АспектОнлайн RLCQL (Офлайн RL)
Риск обученияРеальное финансовое воздействиеНулевой рыночный риск
Эффективность данныхТребует живого взаимодействияИспользует существующие данные
Стоимость исследованияПотенциально катастрофическаяНулевая (только офлайн)
Консервативность политикиМожет совершать экстремальные действияЕстественно консервативна
ВоспроизводимостьНедетерминированнаяПолностью воспроизводимая
Регуляторные аспектыСложно аудироватьЛегче проверить

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

CQL естественно интегрируется с фреймворками управления рисками:

  • Консервативные оценки Q-значений приводят к более осторожному определению размера позиции
  • Штрафы за OOD-действия предотвращают принятие агентом беспрецедентно больших позиций
  • Гарантия нижней границы обеспечивает оценку производительности в наихудшем случае
  • Параметр alpha позволяет тонко настраивать компромисс между консервативностью и производительностью

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

Реализация на Rust предоставляет полную систему CQL для офлайн-обучения торговых стратегий. Ключевые компоненты:

Обзор архитектуры

conservative_q_learning/
rust/
src/lib.rs - Основная реализация CQL
examples/
trading_example.rs - Полный торговый пример с данными Bybit

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

  1. QNetwork: Полносвязная нейронная сеть, аппроксимирующая Q-функцию с настраиваемыми скрытыми слоями
  2. ReplayBuffer: Хранит офлайн торговый опыт в виде кортежей (состояние, действие, вознаграждение, следующее_состояние, завершение)
  3. CQLAgent: Реализует полный алгоритм CQL, включая:
    • Вычисление стандартных потерь TD
    • Консервативную регуляризацию с выборкой OOD-действий
    • Целевую сеть с мягкими обновлениями
    • Epsilon-жадный выбор действий для оценки
  4. BybitClient: Получает исторические данные kline из API Bybit

Ключевые детали реализации

Функция потерь CQL объединяет стандартную ошибку временной разности с консервативным штрафом:

let td_loss = mse(q_values_for_actions, td_targets);
let cql_penalty = logsumexp_q - dataset_q_mean;
let total_loss = td_loss + alpha * cql_penalty;

Выборка OOD-действий использует равномерно случайные действия для вычисления члена log-sum-exp, который служит верхней границей Q-значений по пространству действий. Затем это сопоставляется со средними Q-значениями для действий, фактически присутствующих в наборе данных.

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

Реализация получает исторические данные kline (свечи) из публичного API Bybit:

GET https://api.bybit.com/v5/market/kline?category=linear&symbol=BTCUSDT&interval=15&limit=200

Признаки, извлекаемые из каждой свечи:

  • Ценовая доходность: (close - open) / open
  • Диапазон high-low: (high - low) / open
  • Коэффициент объема: Нормализованный торговый объем
  • Коэффициент тела: |close - open| / (high - low), измеряющий тело свечи относительно диапазона
  • Тренд: Направление простой скользящей средней

Эти признаки комбинируются с состоянием позиции и P&L для формирования полного вектора наблюдений CQL-агента.

Конвейер данных

  1. Получение необработанных kline из API Bybit
  2. Вычисление технических признаков для каждой свечи
  3. Генерация действий с использованием простой импульсной поведенческой политики
  4. Расчет вознаграждений на основе P&L позиции за вычетом транзакционных издержек
  5. Сохранение в виде офлайн-набора данных в буфер воспроизведения
  6. Обучение CQL-агента на этом фиксированном наборе данных

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

  1. Консервативное Q-обучение решает проблему офлайн RL для трейдинга, обеспечивая принципиальный способ обучения на исторических данных без переоценки ценности непроверенных действий. Консервативная регуляризация гарантирует, что политики будут осторожными и устойчивыми.

  2. Штраф CQL создает нижнюю границу Q-значений, что является именно тем, что нужно для торговых приложений с неприятием риска. Вместо оптимистичной экстраполяции из ограниченных данных, CQL предполагает худшее в отношении неизвестных действий.

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

  4. Гиперпараметр alpha контролирует компромисс между консервативностью и производительностью. Более высокие значения alpha производят более консервативные политики, которые ближе к поведенческой политике в исторических данных, а более низкие значения допускают больше отклонений.

  5. CQL особенно хорошо подходит для торговли криптовалютой, где исторические данные обильны, рынки работают 24/7, а стоимость неудачного исследования может быть значительной.

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

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

Ссылки

  • Kumar, A., Zhou, A., Tucker, G., & Levine, S. (2020). Conservative Q-Learning for Offline Reinforcement Learning. NeurIPS 2020.
  • Levine, S., Kumar, A., Tucker, G., & Fu, J. (2020). Offline Reinforcement Learning: Tutorial, Review, and Perspectives on Open Problems.
  • Fujimoto, S., Meger, D., & Precup, D. (2019). Off-Policy Deep Reinforcement Learning without Exploration. ICML 2019.
  • Yang, H., Liu, X. Y., Zhong, S., & Walid, A. (2020). Deep Reinforcement Learning for Automated Stock Trading. ICAIF 2020.