Глава 136: Иерархические модели пространства состояний (HiSS) для трейдинга
Обзор
Иерархические модели пространства состояний (HiSS) объединяют глубокие модели пространства состояний (такие как S4 и Mamba) в многоуровневую архитектуру для захвата мультимасштабных временных паттернов в последовательных данных. Изначально предложенные для непрерывного предсказания последовательностей в робототехнике и сенсорном слиянии, HiSS отлично подходят для финансовых рынков, где динамика цен развивается на нескольких временных горизонтах одновременно — от тиковой микроструктуры до недельных макротрендов.
В этой главе реализуется HiSS для торговли криптовалютами на Bybit и прогнозирования фондового рынка, демонстрируя, как иерархическое временное рассуждение превосходит плоские архитектуры SSM для финансового прогнозирования.
Содержание
- Теоретические основы
- Архитектура HiSS
- Математическая формулировка
- Реализация
- Торговая стратегия
- Результаты и метрики
- Литература
Теоретические основы
Модели пространства состояний (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_ky_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, где каждый уровень работает с разным временным разрешением:
- Уровень 0 (самый тонкий): Обрабатывает сырой вход на полном разрешении
- Уровень 1: Понижающая дискретизация с коэффициентом
k₁, захватывает паттерны среднего масштаба - Уровень 2: Понижающая дискретизация с коэффициентом
k₂, захватывает грубые паттерны
Каждый уровень передаёт выход на следующий уровень (после понижающей дискретизации) и получает контекст от более грубых уровней (после повышающей дискретизации). Это создаёт двунаправленный поток информации между временными масштабами.
Архитектура HiSS
Входная последовательность (T шагов) │ ▼┌─────────────────────────┐│ Уровень 0: SSM блок │ Полное разрешение (T шагов)│ (Тонкие паттерны) │└─────────┬───────────────┘ │ Понижающая дискретизация (шаг k₁) ▼┌─────────────────────────┐│ Уровень 1: SSM блок │ T/k₁ шагов│ (Средние паттерны) │└─────────┬───────────────┘ │ Понижающая дискретизация (шаг k₂) ▼┌─────────────────────────┐│ Уровень 2: SSM блок │ T/(k₁·k₂) шагов│ (Грубые паттерны) │└─────────┬───────────────┘ │ Повышающая дискретизация + Слияние ▼┌─────────────────────────┐│ Модуль слияния и ││ предсказания │└─────────────────────────┘ │ ▼Выход (предсказания)Компоненты
-
SSM блок: Каждый блок содержит:
- Нормализация слоя (Layer Normalization)
- SSM слой S4/Mamba с обучаемыми параметрами
A,B,C,D - Нелинейная активация (GELU)
- Остаточное соединение (Residual connection)
- Dropout для регуляризации
-
Понижающая дискретизация: Средний пулинг или свёрточный слой с шагом для уменьшения временного разрешения между уровнями.
-
Повышающая дискретизация: Линейная интерполяция или транспонированная свёртка для восстановления разрешения при межуровневом слиянии.
-
Модуль слияния: Конкатенация или сложение признаков со всех уровней иерархии для получения итогового представления.
Математическая формулировка
Мультимасштабная 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 предсказывает три цели:
- Ожидаемая доходность (регрессия): Используется для размера позиции
- Вероятность направления (классификация): Используется для сигналов входа/выхода
- Прогноз волатильности (регрессия): Используется для управления рисками
Правила входа
- Лонг: Вероятность направления > 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 # Полная торговая стратегияЛитература
-
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
-
Gu, A., Goel, K., & Ré, C. (2022). Efficiently Modeling Long Sequences with Structured State Spaces. ICLR 2022. https://arxiv.org/abs/2111.00396
-
Gu, A. & Dao, T. (2023). Mamba: Linear-Time Sequence Modeling with Selective State Spaces. arXiv:2312.00752. https://arxiv.org/abs/2312.00752
-
Kendall, A., Gal, Y., & Cipolla, R. (2018). Multi-task learning using uncertainty to weigh losses for scene geometry and semantics. CVPR 2018.
-
De Prado, M. L. (2018). Advances in Financial Machine Learning. Wiley.
Лицензия
MIT