Skip to content

Chapter 28: Hidden Markov Models — Regime-Switching Trading Strategy

Chapter 28: Hidden Markov Models — Regime-Switching Trading Strategy

Overview

Финансовые рынки функционируют в различных режимах (bull, bear, sideways), каждый со своими статистическими характеристиками. Hidden Markov Models (HMM) позволяют автоматически определять текущий режим и вероятности перехода между режимами. В этой главе мы строим стратегию, которая адаптирует свое поведение к текущему рыночному режиму.

Trading Strategy

Суть стратегии: HMM определяет 3 режима рынка. Для каждого режима — своя подстратегия:

  • Bull regime: Aggressive momentum, high equity allocation
  • Bear regime: Defensive, low equity / high bonds / hedges
  • Sideways regime: Mean-reversion, pairs trading

Сигнал на переключение: Когда posterior probability нового режима превышает порог (например, 70%)

Position Sizing: Зависит от confidence в текущем режиме и волатильности режима

Technical Specification

Notebooks to Create

#NotebookDescription
101_data_preparation.ipynbЗагрузка S&P 500, VIX, yields, macro данных
202_hmm_theory.ipynbТеория HMM: forward-backward, Viterbi, Baum-Welch
303_regime_features.ipynbFeature engineering для определения режимов
404_gaussian_hmm.ipynbОбучение Gaussian HMM с hmmlearn
505_regime_interpretation.ipynbИнтерпретация режимов, визуализация
606_regime_characteristics.ipynbСтатистика каждого режима (return, vol, duration)
707_substrategy_bull.ipynbMomentum стратегия для bull режима
808_substrategy_bear.ipynbDefensive стратегия для bear режима
909_substrategy_sideways.ipynbMean-reversion для sideways режима
1010_strategy_switching.ipynbЛогика переключения между стратегиями
1111_backtesting.ipynbFull backtest с transaction costs
1212_robustness_analysis.ipynbSensitivity analysis, out-of-sample

Data Requirements

Market Data:
├── S&P 500 index daily (20+ лет для разных режимов)
├── VIX index
├── US Treasury yields (2Y, 10Y)
├── Credit spreads (BAA-AAA)
└── Gold, USD index
Macro Indicators:
├── NBER recession dates (ground truth)
├── Leading Economic Index (LEI)
├── Yield curve slope
└── Unemployment rate

HMM Configuration

from hmmlearn import hmm
# 3-state Gaussian HMM
model = hmm.GaussianHMM(
n_components=3, # Bull, Bear, Sideways
covariance_type="full", # Full covariance matrix
n_iter=1000,
random_state=42
)
# Features for regime detection
features = [
'return_20d', # 20-day return
'volatility_20d', # 20-day realized vol
'vix_level', # VIX
'yield_slope', # 10Y - 2Y
'credit_spread' # BAA - AAA
]

Regime Characteristics (Expected)

RegimeAvg ReturnVolatilityAvg DurationTypical Indicators
Bull+15% ann.12%24 monthsLow VIX, steep yield curve
Bear-20% ann.25%8 monthsHigh VIX, inverted curve
Sideways+5% ann.15%12 monthsMid VIX, flat curve

Sub-strategies per Regime

Bull Regime Strategy:
├── Long equity (100% allocation)
├── Momentum factor tilt
├── Small cap overweight
└── No hedges
Bear Regime Strategy:
├── Reduced equity (30% allocation)
├── Long-term treasuries (40%)
├── Gold allocation (20%)
├── Cash buffer (10%)
└── Optional: VIX calls hedge
Sideways Regime Strategy:
├── Market neutral (50% equity)
├── Pairs trading overlay
├── Sector rotation (momentum within)
└── Enhanced yield strategies

Transition Matrix Example

To Bull To Bear To Sideways
From Bull 0.92 0.03 0.05
From Bear 0.08 0.85 0.07
From Sideways 0.10 0.08 0.82

Key Metrics

  • Regime Detection: Accuracy vs NBER, Average regime duration, False switches
  • Strategy: Sharpe Ratio, Max Drawdown, Calmar Ratio
  • Comparison: vs Buy&Hold, vs 60/40, vs static momentum

Dependencies

hmmlearn>=0.3.0
pomegranate>=1.0.0 # Alternative HMM library
pandas>=1.5.0
numpy>=1.23.0
matplotlib>=3.6.0
seaborn>=0.12.0
scipy>=1.10.0
yfinance>=0.2.0

Expected Outcomes

  1. 3-state HMM с интерпретируемыми режимами (bull/bear/sideways)
  2. Visualization режимов на историческом графике S&P 500
  3. Статистика режимов — duration, returns, volatility per regime
  4. 3 подстратегии оптимизированные для каждого режима
  5. Switching logic с учетом transaction costs и whipsaws
  6. Backtest results с улучшением risk-adjusted returns vs buy&hold

References

Difficulty Level

⭐⭐⭐☆☆ (Intermediate)

Требуется понимание: HMM theory, Time series analysis, Portfolio construction