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

Глава 315: Decision Transformer для трейдинга

Обзор

Decision Transformer (DT), представленный Chen et al. (2021), переосмысливает обучение с подкреплением как задачу моделирования последовательностей. Вместо обучения функций ценности или градиентов политики, Decision Transformer использует архитектуру каузального трансформера для авторегрессивной генерации действий, обусловленных желаемой доходностью, прошлыми состояниями и прошлыми действиями. Эта смена парадигмы позволяет использовать мощь архитектуры трансформеров — которая революционизировала NLP и компьютерное зрение — для последовательного принятия решений.

В контексте алгоритмического трейдинга Decision Transformer предлагает убедительный подход к офлайн обучению с подкреплением: обучение торговым стратегиям на исторических рыночных данных без необходимости симулятора или онлайн-взаимодействия с живыми рынками. Обусловливая на целевой return-to-go (RTG), трейдеры могут задать желаемый уровень доходности и позволить модели генерировать соответствующие торговые действия для достижения этой цели.

Содержание

  1. Введение в Decision Transformer
  2. Математические основы
  3. Формулировка офлайн RL для трейдинга
  4. Применение в трейдинге
  5. Реализация на Rust
  6. Интеграция с Bybit
  7. Ключевые выводы

Введение в Decision Transformer

От RL к моделированию последовательностей

Традиционные методы обучения с подкреплением оптимизируют политики через итеративное взаимодействие со средой. Методы на основе функций ценности (DQN, Q-learning) оценивают значения состояние-действие; методы градиентов политики (PPO, A2C) напрямую оптимизируют политику. Обе парадигмы требуют либо онлайн-взаимодействия, либо тщательного importance sampling для офлайн-настроек.

Decision Transformer использует принципиально другой подход: он рассматривает задачу RL как условную генерацию последовательностей. Имея траекторию кортежей (return-to-go, состояние, действие), трансформер обучается предсказывать следующее действие, согласованное с достижением указанной будущей доходности.

Почему Decision Transformer для трейдинга?

Трейдинг является естественной областью применения парадигмы Decision Transformer:

  • Обширные исторические данные: Финансовые рынки предоставляют массивные офлайн-датасеты траекторий (истории цен, потоки ордеров, исполненные сделки), которые можно использовать для офлайн RL без симулятора
  • Обусловливание на доходности: Трейдеры могут задать целевую доходность (например, “достичь 2% дневной доходности”) и позволить модели генерировать действия соответственно
  • Не требуется симулятор: В отличие от model-based RL, Decision Transformer обучается напрямую на исторических данных без необходимости рыночного симулятора, точно отражающего проскальзывание, ликвидность и влияние на рынок
  • Сила моделирования последовательностей: Финансовые временные ряды по своей природе последовательны, что делает архитектуру трансформеров естественным выбором
  • Долгосрочные зависимости: Трансформеры улавливают долгосрочные временные паттерны, с которыми рекуррентные сети справляются с трудом
  • Мультиактивная генерализация: Одна модель может обучаться на нескольких активах и рыночных режимах

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

Decision Transformer обрабатывает траектории как последовательности триплетов:

(R_1, s_1, a_1, R_2, s_2, a_2, ..., R_T, s_T, a_T)

Где:

  • R_t — return-to-go на шаге t (сумма будущих вознаграждений)
  • s_t — состояние рынка на шаге t (OHLCV-признаки, индикаторы)
  • a_t — торговое действие на шаге t (покупка, продажа, удержание или размер позиции)

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


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

Марковский процесс принятия решений (MDP)

Мы моделируем трейдинг как MDP, определяемый кортежем (S, A, P, R, gamma):

  • Пространство состояний S: Рыночные признаки на каждом шаге — OHLCV-данные, технические индикаторы, состояние портфеля
  • Пространство действий A: Торговые решения — дискретные (покупка/продажа/удержание) или непрерывные (размер позиции)
  • Функция перехода P(s' | s, a): Динамика рынка (неизвестная и нестационарная)
  • Функция вознаграждения R(s, a): Торговый PnL, доходность с поправкой на риск или пользовательские цели
  • Фактор дисконтирования gamma в [0, 1]: Временное предпочтение будущих вознаграждений

Return-to-Go (RTG)

Return-to-go на шаге t — это сумма будущих вознаграждений от t до конца эпизода:

R_t = sum_{t'=t}^{T} r_{t'}

где r_{t'} — вознаграждение на шаге t'. В трейдинге это представляет кумулятивную будущую прибыль от текущего шага до конца торгового горизонта.

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

Представление траектории

Траектория tau представляется как:

tau = (R_1, s_1, a_1, R_2, s_2, a_2, ..., R_T, s_T, a_T)

Длина последовательности составляет 3T (три токена на шаг). Каждый тип токена имеет свое вложение:

token_embed(R_t) = W_R * R_t + b_R
token_embed(s_t) = W_s * s_t + b_s
token_embed(a_t) = W_a * a_t + b_a

Обученное вложение временного шага E_t добавляется к каждому токену на шаге t:

h_t^R = token_embed(R_t) + E_t
h_t^s = token_embed(s_t) + E_t
h_t^a = token_embed(a_t) + E_t

Каузальное самовнимание

Decision Transformer использует маскированное (каузальное) самовнимание, чтобы предсказания на шаге t зависели только от токенов на позициях <= t. Для последовательности скрытых состояний H = [h_1, h_2, ..., h_n]:

Attention(Q, K, V) = softmax(Q * K^T / sqrt(d_k) + M) * V

где:

  • Q = H * W_Q, K = H * W_K, V = H * W_V — проекции запросов, ключей и значений
  • d_k — размерность векторов ключей
  • M — каузальная маска: M_{ij} = 0 если i >= j, иначе M_{ij} = -бесконечность

Каузальная маска гарантирует, что позиция i может обращать внимание только на позиции j <= i, сохраняя авторегрессивное свойство.

Многоголовое внимание

С h головами внимания:

MultiHead(Q, K, V) = Concat(head_1, ..., head_h) * W_O
head_i = Attention(Q * W_Q^i, K * W_K^i, V * W_V^i)

Блок трансформера

Каждый блок трансформера состоит из:

x' = LayerNorm(x + MultiHead(x, x, x))
output = LayerNorm(x' + FFN(x'))

где FFN(x) = max(0, x * W_1 + b_1) * W_2 + b_2 — двухслойная сеть прямого распространения с активацией ReLU.

Целевая функция обучения

Модель обучается предсказывать действия по контексту return-to-go и состояний. Функция потерь:

L = sum_{t=1}^{T} || a_t - a_hat_t ||^2

для непрерывных действий (MSE loss), или:

L = -sum_{t=1}^{T} log P(a_t | R_{<=t}, s_{<=t}, a_{<t})

для дискретных действий (кросс-энтропийные потери).

Авторегрессивный вывод

Во время вывода, при заданной целевой доходности R_target и начальном состоянии s_1:

  1. Установить R_1 = R_target
  2. Подать (R_1, s_1) в трансформер
  3. Сэмплировать действие a_1 из предсказанного распределения
  4. Наблюдать вознаграждение r_1 и следующее состояние s_2
  5. Обновить: R_2 = R_1 - r_1
  6. Подать (R_1, s_1, a_1, R_2, s_2) и предсказать a_2
  7. Повторять до горизонта T

Формулировка офлайн RL для трейдинга

Почему офлайн RL?

Онлайн RL на живых финансовых рынках непрактичен:

  • Стоимость исследования: Случайное исследование означает реальные финансовые потери
  • Нестационарность: Среда меняется по мере торговли агента
  • Задержка: Взаимодействие в реальном времени требует инфраструктуры с ультранизкой задержкой
  • Регуляторные ограничения: Нормативные рамки ограничивают алгоритмическое экспериментирование

Офлайн RL решает эту проблему, обучаясь на исторических данных — фиксированном датасете ранее собранных траекторий. Decision Transformer особенно хорошо подходит, потому что обходит проблему дрейфа распределения, которая мешает другим методам офлайн RL (CQL, BCQ, BEAR).

Построение офлайн датасета

Из исторических OHLCV-данных мы конструируем траектории:

  1. Определение состояния: На каждом шаге t состояние s_t включает:

    • Нормализованные OHLCV-признаки (открытие, максимум, минимум, закрытие, объем)
    • Технические индикаторы (SMA, RSI, MACD, полосы Боллинджера)
    • Состояние портфеля (текущая позиция, нереализованный PnL)
  2. Определение действий: Дискретные действия {-1, 0, 1}:

    • -1: Шорт / Продажа
    • 0: Удержание / Без действия
    • 1: Лонг / Покупка
  3. Определение вознаграждения: Вознаграждение на каждом шаге:

    r_t = position_t * (close_{t+1} - close_t) / close_t

    Это процентная доходность на основе текущей позиции.

  4. Расчет RTG: Для каждой траектории длины T:

    R_t = sum_{t'=t}^{T} r_{t'}

Сегментация траекторий

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

Аугментация данных

Для увеличения разнообразия датасета:

  • Многотаймфреймовая выборка: Создание траекторий из 1м, 5м, 15м, 1ч свечей
  • Скользящие окна: Перекрывающиеся границы эпизодов
  • Масштабирование доходности: Нормализация значений RTG между эпизодами
  • Инъекция шума: Добавление малых возмущений к состояниям для устойчивости

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

Генерация стратегий, обусловленных доходностью

Самая мощная возможность Decision Transformer — генерация стратегий, обусловленных целевой доходностью:

  • Консервативный режим (R_target = 0.5%): Генерация стратегий с низким риском, нацеленных на умеренную доходность
  • Агрессивный режим (R_target = 5%): Генерация стратегий с высоким риском, нацеленных на высокую доходность
  • Адаптивный режим: Динамическая корректировка R_target на основе рыночного режима

Управление мультиактивным портфелем

Decision Transformer может быть расширен для мультиактивных настроек:

  • Состояние включает признаки нескольких активов
  • Пространство действий охватывает размер позиций по всему портфелю
  • RTG отражает доходность на уровне портфеля

Адаптация к рыночным режимам

Обучаясь на данных, охватывающих несколько рыночных режимов (бычий, медвежий, боковой, высокая волатильность), модель обучает зависящие от режима распределения действий. Во время вывода обусловливание на RTG естественно адаптируется к текущему режиму.

Интеграция управления рисками

Функция вознаграждения может включать метрики риска:

  • Коэффициент Шарпа как вознаграждение
  • Штрафы за максимальную просадку
  • Ограничения размера позиции через клиппинг действий

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

Реализация на Rust предоставляет Decision Transformer с нуля со следующими компонентами:

Основная архитектура

// Ключевые структуры в lib.rs:
// DecisionTransformer — основная модель с слоями эмбеддингов, блоками трансформера, головами предсказания
// CausalSelfAttention — маскированное многоголовое внимание
// TransformerBlock — Attention + FFN + LayerNorm
// TrajectoryDataset — офлайн датасет из OHLCV-данных
// Расчет RTG — вычисление return-to-go из вознаграждений

Ключевые возможности

  1. Расчет Return-to-Go: Эффективное вычисление RTG из последовательностей вознаграждений с использованием обратной кумулятивной суммы
  2. Каузальное маскирование: Реализация правильного авторегрессивного маскирования для механизма внимания
  3. Эмбеддинг состояний: Проекция сырых OHLCV-признаков в скрытую размерность трансформера
  4. Предсказание действий: Предсказание дискретных действий (покупка/продажа/удержание) из выходов трансформера
  5. Интеграция с Bybit: Загрузка данных BTCUSDT в реальном времени для построения обучающего датасета

Сборка и запуск

Окно терминала
cd 315_decision_transformer/rust
cargo build
cargo test
cargo run --example trading_example

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

API Endpoint

Реализация использует публичный API Bybit V5 для загрузки исторических данных свечей:

GET https://api.bybit.com/v5/market/kline

Параметры:

  • category: “spot”
  • symbol: “BTCUSDT”
  • interval: “60” (1-часовые свечи)
  • limit: 200

Конвейер обработки данных

  1. Загрузка: HTTP GET запрос к API Bybit
  2. Парсинг: Десериализация JSON-ответа в OHLCV-структуры
  3. Нормализация: Масштабирование признаков в диапазон [0, 1] с помощью min-max нормализации
  4. Сегментация: Разбиение на эпизоды фиксированной длины
  5. Разметка: Назначение действий на основе эвристик движения цены (для офлайн датасета)
  6. RTG: Расчет return-to-go для каждого временного шага

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

  1. RL как моделирование последовательностей: Decision Transformer переосмысливает RL как условную генерацию последовательностей, позволяя использовать мощные архитектуры трансформеров для последовательного принятия решений. Эта смена парадигмы устраняет необходимость в функциях ценности, temporal difference обучении или градиентах политики.

  2. Обусловливание на Return-to-Go: Обусловливая на желаемой будущей доходности, Decision Transformer позволяет трейдерам задавать цели по доходности и генерировать стратегии соответственно. Высокие значения RTG приводят к более агрессивным стратегиям; низкие — к консервативным.

  3. Офлайн RL для трейдинга: Decision Transformer идеально подходит для офлайн RL на финансовых рынках, где онлайн-исследование дорого и опасно. Он обучается на исторических данных без необходимости рыночного симулятора.

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

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

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

  7. Будущие направления: Расширения включают мультимодальные представления состояний, иерархические Decision Transformers для мультитаймфреймовых стратегий и онлайн-дообучение с консервативным исследованием.


Ссылки

  1. Chen, L., Lu, K., Rajeswaran, A., Lee, K., Grover, A., Laskin, M., Abbeel, P., Srinivas, A., & Mordatch, I. (2021). Decision Transformer: Reinforcement Learning via Sequence Modeling. NeurIPS 2021.
  2. Janner, M., Li, Q., & Levine, S. (2021). Offline Reinforcement Learning as One Big Sequence Modeling Problem. NeurIPS 2021.
  3. Vaswani, A., Shazeer, N., Parmar, N., Uszkoreit, J., Jones, L., Gomez, A. N., Kaiser, L., & Polosukhin, I. (2017). Attention Is All You Need. NeurIPS 2017.
  4. Levine, S., Kumar, A., Tucker, G., & Fu, J. (2020). Offline Reinforcement Learning: Tutorial, Review, and Perspectives on Open Problems. arXiv:2005.01643.
  5. Zheng, Q., Zhang, A., & Grover, A. (2022). Online Decision Transformer. ICML 2022.