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

Глава 136: Иерархические модели пространства состояний (HiSS) для трейдинга

Обзор

Иерархические модели пространства состояний (HiSS) объединяют глубокие модели пространства состояний (такие как S4 и Mamba) в многоуровневую архитектуру для захвата мультимасштабных временных паттернов в последовательных данных. Изначально предложенные для непрерывного предсказания последовательностей в робототехнике и сенсорном слиянии, HiSS отлично подходят для финансовых рынков, где динамика цен развивается на нескольких временных горизонтах одновременно — от тиковой микроструктуры до недельных макротрендов.

В этой главе реализуется HiSS для торговли криптовалютами на Bybit и прогнозирования фондового рынка, демонстрируя, как иерархическое временное рассуждение превосходит плоские архитектуры SSM для финансового прогнозирования.

Содержание

  1. Теоретические основы
  2. Архитектура HiSS
  3. Математическая формулировка
  4. Реализация
  5. Торговая стратегия
  6. Результаты и метрики
  7. Литература

Теоретические основы

Модели пространства состояний (SSM)

Непрерывная модель пространства состояний отображает входной сигнал u(t) в выходной y(t) через скрытое состояние x(t):

x'(t) = A·x(t) + B·u(t)
y(t) = C·x(t) + D·u(t)

Где:

  • A ∈ ℝ^{N×N} — матрица перехода состояний
  • B ∈ ℝ^{N×1} — матрица проекции входа
  • C ∈ ℝ^{1×N} — матрица проекции выхода
  • D ∈ ℝ — прямая связь (skip connection)

Для дискретных последовательностей непрерывная система дискретизируется с шагом Δ:

x_k = Ā·x_{k-1} + B̄·u_k
y_k = C·x_k + D·u_k

Где Ā = exp(ΔA) и B̄ = (ΔA)^{-1}(exp(ΔA) - I)·ΔB.

Почему иерархия?

Финансовые рынки демонстрируют мультимасштабную динамику:

Масштаб времениТип паттернаПример
Секунды–МинутыМикроструктурный шум, поток ордеровОтскок bid-ask, кластеризация сделок
Минуты–ЧасыВнутридневные тренды, возврат к среднемуСессионный моментум, обеденный спад
Часы–ДниСвинговые паттерны, реакция на событияДрейф после отчётов, влияние новостей
Дни–НеделиРежимы тренда/моментумаРотация секторов, макротренды

Плоская SSM с одним временным разрешением не может одновременно захватить как высокочастотную микроструктуру, так и низкочастотные смены режимов. HiSS решает эту проблему, объединяя слои SSM на разных временных гранулярностях.

HiSS: Иерархические модели пространства состояний

Ключевая идея HiSS (Bhirangi et al., 2024) — создание иерархии слоёв SSM, где каждый уровень работает с разным временным разрешением:

  1. Уровень 0 (самый тонкий): Обрабатывает сырой вход на полном разрешении
  2. Уровень 1: Понижающая дискретизация с коэффициентом k₁, захватывает паттерны среднего масштаба
  3. Уровень 2: Понижающая дискретизация с коэффициентом k₂, захватывает грубые паттерны

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

Архитектура HiSS

Входная последовательность (T шагов)
┌─────────────────────────┐
│ Уровень 0: SSM блок │ Полное разрешение (T шагов)
│ (Тонкие паттерны) │
└─────────┬───────────────┘
│ Понижающая дискретизация (шаг k₁)
┌─────────────────────────┐
│ Уровень 1: SSM блок │ T/k₁ шагов
│ (Средние паттерны) │
└─────────┬───────────────┘
│ Понижающая дискретизация (шаг k₂)
┌─────────────────────────┐
│ Уровень 2: SSM блок │ T/(k₁·k₂) шагов
│ (Грубые паттерны) │
└─────────┬───────────────┘
│ Повышающая дискретизация + Слияние
┌─────────────────────────┐
│ Модуль слияния и │
│ предсказания │
└─────────────────────────┘
Выход (предсказания)

Компоненты

  1. SSM блок: Каждый блок содержит:

    • Нормализация слоя (Layer Normalization)
    • SSM слой S4/Mamba с обучаемыми параметрами A, B, C, D
    • Нелинейная активация (GELU)
    • Остаточное соединение (Residual connection)
    • Dropout для регуляризации
  2. Понижающая дискретизация: Средний пулинг или свёрточный слой с шагом для уменьшения временного разрешения между уровнями.

  3. Повышающая дискретизация: Линейная интерполяция или транспонированная свёртка для восстановления разрешения при межуровневом слиянии.

  4. Модуль слияния: Конкатенация или сложение признаков со всех уровней иерархии для получения итогового представления.

Математическая формулировка

Мультимасштабная SSM

На уровне иерархии l SSM работает с последовательностью длины T_l:

T_l = T / (∏_{i=1}^{l} k_i)

Каждый уровень имеет собственные параметры (A_l, B_l, C_l, D_l) и шаг дискретизации Δ_l.

Межуровневый поток информации

Выход уровня l понижается и добавляется как контекст для уровня l+1:

h_l = SSM_l(Downsample(h_{l-1}))

Для итогового предсказания признаки со всех уровней приводятся к исходному разрешению и объединяются:

z = Fusion(h_0, Upsample(h_1), Upsample(h_2), ...)
ŷ = PredictionHead(z)

Функция потерь для трейдинга

Для многозадачного финансового предсказания:

L = λ_ret · MSE(ŷ_ret, y_ret) + λ_dir · BCE(ŷ_dir, y_dir) + λ_vol · MSE(ŷ_vol, y_vol)

Где:

  • ŷ_ret: Предсказанная доходность
  • ŷ_dir: Предсказанное направление (вверх/вниз)
  • ŷ_vol: Предсказанная волатильность
  • λ_*: Веса задач (могут обучаться через uncertainty weighting)

Реализация

Python

Реализация на Python использует PyTorch и включает:

  • python/model.py: Модель HiSS с настраиваемой глубиной иерархии и коэффициентами понижающей дискретизации
  • python/data_loader.py: Загрузка данных фондового рынка (yfinance) и криптовалютного (Bybit)
  • python/backtest.py: Фреймворк бэктестинга с метриками Шарпа, Сортино и просадки
from python.model import HierarchicalSSM
model = HierarchicalSSM(
input_dim=8, # OHLCV + технические индикаторы
hidden_dim=64,
output_dim=3, # доходность, направление, волатильность
num_levels=3, # глубина иерархии
downsample_factors=[4, 4], # 4x уменьшение на уровень
ssm_state_dim=16,
dropout=0.1
)

Rust

Реализация на Rust предоставляет продакшн-версию с использованием крейта ndarray:

  • src/model/: Иерархическая SSM с эффективными матричными операциями
  • src/data/: Клиент Bybit API и инженерия признаков
  • src/trading/: Генерация сигналов и исполнение стратегии
  • src/backtest/: Движок оценки производительности
Окно терминала
# Запуск базового примера
cargo run --example basic_hiss
# Запуск торговой стратегии
cargo run --example trading_strategy
# Запуск мультимасштабного анализа
cargo run --example multi_scale

Торговая стратегия

Генерация сигналов

Модель HiSS предсказывает три цели:

  1. Ожидаемая доходность (регрессия): Используется для размера позиции
  2. Вероятность направления (классификация): Используется для сигналов входа/выхода
  3. Прогноз волатильности (регрессия): Используется для управления рисками

Правила входа

  • Лонг: Вероятность направления > 0.6 И ожидаемая доходность > порог
  • Шорт: Вероятность направления < 0.4 И ожидаемая доходность < -порог
  • Без позиции: В остальных случаях

Размер позиции

Размер позиции на основе критерия Келли с учётом предсказанной доходности и волатильности:

position_size = (predicted_return / predicted_volatility²) × scale_factor

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

  • Максимальный размер позиции: 20% портфеля
  • Стоп-лосс: 2× предсказанная волатильность
  • Тейк-профит: 3× предсказанная волатильность
  • Лимит максимальной просадки: 15%

Результаты и метрики

Метрики оценки

МетрикаОписание
MSE / MAEТочность предсказания доходности
Accuracy / F1Качество классификации направления
Sharpe RatioДоходность с поправкой на риск
Sortino RatioДоходность с поправкой на нисходящий риск
Maximum DrawdownХудшее падение от пика до дна
Win RateПроцент прибыльных сделок
Profit FactorВаловая прибыль / Валовой убыток

Сравнение с базовыми моделями

Иерархический подход сравнивается с:

  • Плоская модель S4 (одномасштабная SSM)
  • Плоская модель Mamba
  • Базовая LSTM
  • Базовый Transformer
  • Стратегия Buy-and-Hold

Преимущество мультимасштабности

HiSS захватывает паттерны, которые плоские модели упускают:

  • Уровень 0 (тонкий): Обнаруживает дисбалансы потока ордеров и микроструктурные сигналы
  • Уровень 1 (средний): Захватывает внутридневной моментум и возврат к среднему
  • Уровень 2 (грубый): Идентифицирует смены режимов и макротренды

Структура проекта

136_hierarchical_ssm/
├── README.md # Основной README (English)
├── README.ru.md # Этот файл
├── readme.simple.md # Упрощённое объяснение (English)
├── readme.simple.ru.md # Упрощённое объяснение (Russian)
├── Cargo.toml # Конфигурация проекта Rust
├── python/
│ ├── __init__.py
│ ├── model.py # Модель HiSS на PyTorch
│ ├── data_loader.py # Загрузка данных акций и крипто
│ ├── backtest.py # Фреймворк бэктестинга
│ └── requirements.txt # Зависимости Python
├── src/
│ ├── lib.rs # Корень библиотеки Rust
│ ├── model/
│ │ ├── mod.rs # Модуль модели
│ │ └── network.rs # Реализация сети HiSS
│ ├── data/
│ │ ├── mod.rs # Модуль данных
│ │ ├── bybit.rs # Клиент API Bybit
│ │ └── features.rs # Инженерия признаков
│ ├── trading/
│ │ ├── mod.rs # Модуль торговли
│ │ ├── signals.rs # Генерация сигналов
│ │ └── strategy.rs # Торговая стратегия
│ └── backtest/
│ ├── mod.rs # Модуль бэктестинга
│ └── engine.rs # Движок бэктестинга
└── examples/
├── basic_hiss.rs # Базовый пример HiSS
├── multi_scale.rs # Мультимасштабный анализ
└── trading_strategy.rs # Полная торговая стратегия

Литература

  1. Bhirangi, R., Wang, C., Pattabiraman, V., Majidi, C., Gupta, A., Hellebrekers, T., & Pinto, L. (2024). Hierarchical State Space Models for Continuous Sequence-to-Sequence Modeling. arXiv:2402.10211. https://arxiv.org/abs/2402.10211

  2. Gu, A., Goel, K., & Ré, C. (2022). Efficiently Modeling Long Sequences with Structured State Spaces. ICLR 2022. https://arxiv.org/abs/2111.00396

  3. Gu, A. & Dao, T. (2023). Mamba: Linear-Time Sequence Modeling with Selective State Spaces. arXiv:2312.00752. https://arxiv.org/abs/2312.00752

  4. Kendall, A., Gal, Y., & Cipolla, R. (2018). Multi-task learning using uncertainty to weigh losses for scene geometry and semantics. CVPR 2018.

  5. De Prado, M. L. (2018). Advances in Financial Machine Learning. Wiley.

Лицензия

MIT