Back to Blog
Strategy Insights

Regime Detection Without ML: Quantitative Classification

QFQuantForge Team·April 3, 2026·7 min read

Market regime detection sounds like it requires sophisticated machine learning. Hidden Markov Models, neural networks, clustering algorithms. We tested the ML approach (HMM specifically) and it produced inconclusive results even after training per-symbol models. The simpler approach, using four standard indicators to classify regimes quantitatively, has been more reliable in production.

The Four-Indicator Classifier

Our regime detector uses four inputs, each measuring a different aspect of market condition.

ADX measures trend strength. Above 25 indicates a strong trend. Below 20 indicates no significant trend. Between 20 and 25 is transitional. ADX does not indicate direction, only strength.

ATR percentile measures current volatility relative to recent history. If current ATR ranks in the 90th percentile of the last 100 bars, volatility is exceptionally high. If it ranks in the 10th percentile, volatility is compressed. This contextualizes ATR: a raw ATR of 3.0 means nothing without knowing whether that is normal or extreme for the current period.

Bollinger Band width measures the standard deviation of prices relative to the mean. Wide bands indicate dispersed price action (trending or volatile). Narrow bands indicate compressed action (ranging or squeezing). The width is often the first indicator to change during regime transitions because it responds directly to the dispersion of recent closes.

Price position relative to the 50-period SMA provides directional context. Price well above the SMA suggests an uptrend. Well below suggests a downtrend. Near the SMA suggests a range or transition.

The Seven Regime Labels

The combination of these four inputs produces seven distinct regime classifications.

TRENDING_UP: ADX above 25, price above SMA, moderate to high volatility. TRENDING_DOWN: ADX above 25, price below SMA, moderate to high volatility. These two regimes favor momentum and breakout strategies.

RANGING_TIGHT: ADX below 20, low ATR percentile, narrow Bollinger width. This is a compressed range where mean reversion thrives with tight parameters. RANGING_WIDE: ADX below 20, moderate ATR, wider Bollinger width. Still mean-reverting but with larger oscillations requiring wider parameters.

HIGH_VOL_CHAOS: High ATR percentile (above 80th), no consistent trend direction (ADX may be high but price whipsaws). This regime is dangerous for all strategies and receives a 0.3 position size multiplier.

BREAKOUT_IMMINENT: Narrow Bollinger width (squeeze forming), ADX transitioning from low to moderate. The volatility compression suggests a breakout is forming. Position sizing is moderate (0.5) because the direction is uncertain.

EVENT_DRIVEN: Sudden spike in ATR with limited prior trend development. Often triggered by news events, exchange announcements, or liquidation cascades. Receives a 0.4 multiplier because the move may reverse as quickly as it appeared.

How Regimes Drive Strategy Behavior

Each regime label carries an associated position size multiplier that adjusts all strategy outputs. During TRENDING_UP or TRENDING_DOWN, the multiplier is 1.0 to 1.2 — normal to slightly increased sizing because the environment supports directional strategies. During RANGING_TIGHT, the multiplier is 0.8 — slightly reduced because ranges can break at any time. During HIGH_VOL_CHAOS, the multiplier drops to 0.3 — aggressive risk reduction because neither mean reversion nor momentum is reliable.

These multipliers are applied as defaults when the AI regime narrator is unavailable. When Claude is available, it receives the four indicator values plus recent news headlines and produces a narrative assessment with its own recommended multiplier (clamped between 0.0 and 1.5). The AI assessment is often more nuanced, distinguishing between a high-volatility crash (reduce everything) and a high-volatility breakout (increase momentum sizing).

The AI enrichment layer also uses the regime label when adjusting individual signal confidence. A mean reversion long signal during TRENDING_DOWN receives reduced confidence. A momentum long signal during TRENDING_UP receives increased confidence. The regime provides context that pure price-based signals cannot.

Why HMM Failed

We tested Hidden Markov Models as an alternative regime classification approach. HMMs are probabilistic models that infer hidden states (regimes) from observable data (returns, volatility). The appeal is that HMMs can discover regime structure from data rather than requiring manually defined rules.

We trained per-symbol HMM models with 2 to 4 hidden states. The models produced regime classifications, but validation across five market periods was inconclusive. The identified regimes did not correspond consistently to tradeable conditions. A state labeled as regime 1 in the 2021-2022 period might capture a trending market, while regime 1 in 2023-2024 captured a ranging market. The hidden states were not stable across time.

The fundamental issue is that HMMs require stationarity in the relationship between hidden states and observable data. Crypto markets are not stationary in this sense. The relationship between returns, volatility, and market condition shifts as market structure evolves (new participants, new instruments, changing regulations). A model trained on 2021 data captures 2021 market structure, which may not generalize to 2025.

Our rule-based approach avoids this problem because the rules are defined in terms of universal market concepts (trend strength, volatility percentile, price position) rather than learned from specific historical relationships. ADX above 25 indicates a strong trend regardless of the year. ATR in the 90th percentile indicates high volatility regardless of the market structure. These definitions are stable by construction.

The Regime-Adaptive Meta-Strategy

Our regime_adaptive strategy takes regime detection one step further: it delegates to different sub-strategies based on the current regime. During trending regimes, it delegates to momentum logic. During ranging regimes, it delegates to mean reversion logic. During chaotic regimes, it reduces or skips entirely.

This is intellectually elegant but practically complex. The meta-strategy adds a layer of indirection that makes debugging harder and introduces additional parameters (which sub-strategy to use in each regime, when to switch). In our testing, the meta-strategy did not outperform simply running both momentum and mean reversion bots simultaneously with regime-adjusted confidence.

The simpler approach — multiple dedicated bots with regime-aware confidence adjustment — achieves the same objective (deploying the right strategy in the right regime) without the complexity of dynamic strategy switching. Each bot runs its own strategy with fixed logic, and the regime detector adjusts confidence levels through the enrichment layer. This is operationally simpler and easier to monitor.

Practical Application

For traders building their own regime detection, the four-indicator approach is immediately implementable. Calculate ADX(14), ATR percentile over 100 bars, Bollinger Band width, and price distance from SMA(50). Classify using simple threshold rules. Use the classification to adjust position sizing or strategy selection.

The most important output is not the label itself but the position sizing adjustment. Knowing you are in HIGH_VOL_CHAOS and reducing position size to 30 percent of normal is more valuable than knowing the label. The sizing adjustment protects capital during hostile conditions and preserves it for favorable ones.

Do not over-engineer the classification. Seven labels might be more than necessary. A simple three-label system (trending, ranging, volatile) captures most of the value with less complexity. The additional labels (tight vs wide ranging, breakout imminent, event driven) add nuance that matters for automated systems but is often unnecessary for discretionary sizing adjustments.