Глава 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 для трейдинга --- возможность обучения на обширных исторических наборах данных без риска потери капитала. Типичный рабочий процесс включает:
- Сбор данных: Агрегация исторических данных OHLCV и снимков книги ордеров с бирж, таких как Bybit
- Инженерия признаков: Вычисление технических индикаторов, характеристик книги ордеров и сигналов микроструктуры рынка
- Построение офлайн-набора данных: Преобразование временного ряда признаков в кортежи (состояние, действие, вознаграждение, следующее_состояние) с использованием эвристической или существующей стратегии в качестве поведенческой политики
- Обучение CQL: Обучение CQL-агента на этом фиксированном офлайн-наборе данных
- Оценка: Бэктестинг обученной политики на отложенных исторических данных
- Развертывание: Развертывание консервативной политики в среде бумажной торговли, затем в реальной
Преимущества перед онлайн RL в трейдинге
| Аспект | Онлайн RL | CQL (Офлайн RL) |
|---|---|---|
| Риск обучения | Реальное финансовое воздействие | Нулевой рыночный риск |
| Эффективность данных | Требует живого взаимодействия | Использует существующие данные |
| Стоимость исследования | Потенциально катастрофическая | Нулевая (только офлайн) |
| Консервативность политики | Может совершать экстремальные действия | Естественно консервативна |
| Воспроизводимость | Недетерминированная | Полностью воспроизводимая |
| Регуляторные аспекты | Сложно аудировать | Легче проверить |
Управление рисками
CQL естественно интегрируется с фреймворками управления рисками:
- Консервативные оценки Q-значений приводят к более осторожному определению размера позиции
- Штрафы за OOD-действия предотвращают принятие агентом беспрецедентно больших позиций
- Гарантия нижней границы обеспечивает оценку производительности в наихудшем случае
- Параметр alpha позволяет тонко настраивать компромисс между консервативностью и производительностью
Реализация на Rust
Реализация на Rust предоставляет полную систему CQL для офлайн-обучения торговых стратегий. Ключевые компоненты:
Обзор архитектуры
conservative_q_learning/ rust/ src/lib.rs - Основная реализация CQL examples/ trading_example.rs - Полный торговый пример с данными BybitОсновные компоненты
- QNetwork: Полносвязная нейронная сеть, аппроксимирующая Q-функцию с настраиваемыми скрытыми слоями
- ReplayBuffer: Хранит офлайн торговый опыт в виде кортежей (состояние, действие, вознаграждение, следующее_состояние, завершение)
- CQLAgent: Реализует полный алгоритм CQL, включая:
- Вычисление стандартных потерь TD
- Консервативную регуляризацию с выборкой OOD-действий
- Целевую сеть с мягкими обновлениями
- Epsilon-жадный выбор действий для оценки
- 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-агента.
Конвейер данных
- Получение необработанных kline из API Bybit
- Вычисление технических признаков для каждой свечи
- Генерация действий с использованием простой импульсной поведенческой политики
- Расчет вознаграждений на основе P&L позиции за вычетом транзакционных издержек
- Сохранение в виде офлайн-набора данных в буфер воспроизведения
- Обучение CQL-агента на этом фиксированном наборе данных
Ключевые выводы
-
Консервативное Q-обучение решает проблему офлайн RL для трейдинга, обеспечивая принципиальный способ обучения на исторических данных без переоценки ценности непроверенных действий. Консервативная регуляризация гарантирует, что политики будут осторожными и устойчивыми.
-
Штраф CQL создает нижнюю границу Q-значений, что является именно тем, что нужно для торговых приложений с неприятием риска. Вместо оптимистичной экстраполяции из ограниченных данных, CQL предполагает худшее в отношении неизвестных действий.
-
Офлайн RL полностью исключает риск исследования. На рынках, где одна неудачная сделка может быть катастрофической, возможность обучить политику на существующих данных без какого-либо живого взаимодействия бесценна.
-
Гиперпараметр alpha контролирует компромисс между консервативностью и производительностью. Более высокие значения alpha производят более консервативные политики, которые ближе к поведенческой политике в исторических данных, а более низкие значения допускают больше отклонений.
-
CQL особенно хорошо подходит для торговли криптовалютой, где исторические данные обильны, рынки работают 24/7, а стоимость неудачного исследования может быть значительной.
-
Практические аспекты имеют значение: инженерия признаков, правильная нормализация, моделирование транзакционных издержек и тщательное построение набора данных так же важны, как и сам алгоритм CQL. Качество офлайн-набора данных напрямую определяет качество обученной политики.
-
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.