Skip to content
← Back to projects

Market Regime Detection

Financial market regime detection using Hidden Markov Models for adaptive trading strategies

#Financial Market Regime Detection

A regime detection system using Hidden Markov Models and machine learning to identify market states (bull, bear, high-volatility) and adapt investment strategies accordingly.

#Problem Statement

Financial markets exhibit distinct behavioral regimes that require different trading strategies. A strategy optimized for bull markets often fails during bear markets or high-volatility periods. This system automatically identifies market regimes and enables regime-aware portfolio management.

#Industry Applications

  • Quantitative trading firms
  • Asset management (regime-aware allocation)
  • Risk management (volatility forecasting)
  • Algorithmic trading systems
  • Portfolio optimization
  • Market timing strategies

#Key Features

  • Hidden Markov Models (HMM): Unsupervised regime detection with Gaussian emissions
  • Gaussian Mixture Models (GMM): Alternative clustering-based approach
  • Change Point Detection: Structural break identification
  • Regime-Conditioned Trading: Adaptive strategies based on detected regime
  • Walk-Forward Validation: Proper backtesting without lookahead bias

#Detected Regimes

Regime Characteristics
Bull/Calm Low volatility, positive returns
Bear/Crisis High volatility, negative returns
Transition Medium volatility, mixed returns

#Technical Architecture

Market Data (Yahoo Finance)
        |
        v
+------------------+
|  Feature Eng     |
|  - Returns       |
|  - Volatility    |
|  - Technicals    |
+------------------+
        |
        v
+------------------+     +------------------+
| Regime Detection | --> | Strategy Engine  |
| - HMM            |     | - Position Sizing|
| - GMM            |     | - Risk Mgmt      |
| - Change Points  |     +------------------+
+------------------+              |
        |                         v
        v               +------------------+
+------------------+    |   Backtesting    |
| Visualization    |    | - Walk-Forward   |
| - Regime Plots   |    | - Metrics        |
| - Equity Curves  |    +------------------+
+------------------+

#Project Structure

market-regime-detection/
├── data/                    # Cached market data
├── src/
│   ├── data_loader.py       # Yahoo Finance data fetching
│   ├── features.py          # Feature engineering
│   ├── hmm_regime.py        # HMM regime detection
│   ├── gmm_regime.py        # GMM clustering approach
│   ├── changepoint.py       # Change point detection
│   ├── strategy.py          # Regime-based trading strategies
│   ├── backtest.py          # Backtesting framework
│   ├── visualize.py         # Regime visualization
│   └── walk_forward.py      # Walk-forward validation
├── notebooks/
│   └── EDA.ipynb            # Exploratory data analysis
├── docs/
│   └── IMPLEMENTATION_PLAN.md
├── tests/
├── requirements.txt
└── README.md

#Quick Start

# Clone repository
git clone https://github.com/Sakeeb91/market-regime-detection.git
cd market-regime-detection

# Install dependencies
pip install -r requirements.txt

# Download market data
python src/data_loader.py --ticker SPY --start 2000-01-01

# Fit HMM and detect regimes
python src/hmm_regime.py --n-states 3

# Run backtest
python src/backtest.py --strategy regime

# Generate visualizations
python src/visualize.py

#Expected Results

Metric Target
Regime detection Correctly identify 2008, 2020 crises
Strategy Sharpe 0.5-1.0 (after costs)
Max Drawdown Reduced vs buy-and-hold
Volatility Lower than benchmark

#Key Insights

The system should detect:

  • 2008 Financial Crisis: Transition to bear regime in late 2008
  • 2020 COVID Crash: Sharp regime change in March 2020
  • Bull Markets: Extended periods of low-volatility positive returns

#Requirements

  • Python 3.8+
  • hmmlearn
  • scikit-learn
  • yfinance
  • pandas
  • numpy
  • ruptures
  • matplotlib
  • seaborn

#License

MIT License

#Author

Sakeeb Rahman - GitHub

#Disclaimer

This project is for educational purposes only. Past performance does not guarantee future results. This is not financial advice.

New version available.