Multi-scale volatility regime detection in EUR/USD - TTerminal Blog
EN CZ
Quant Research

Why one volatility model is not enough: multi-scale regime detection in EUR/USD

Markets are not one regime. A multi-scale Markov-switching GARCH framework reads Calm, Turbulent and Crisis across three timeframes at once. The full picture: the maths, the inference, the validation, and why it is a risk tool, not a magic alpha.

June 5, 202618 min readTTerminal Research

Most volatility models make one quiet assumption that the market routinely violates: that there is a single way the world generates returns. The workhorse GARCH(1,1) model treats the entire history as one regime. But a EUR/USD return series stitched together from policy cycles, positioning squeezes and liquidity shocks is not one process. It is several, and they take turns.

A recent paper by Jayesh Chaudhary (arXiv 2606.06190) tackles this head-on with a multi-scale Markov-switching GARCH framework for EUR/USD. It is genuinely technical, so rather than skim it, this is the full institutional digest: the genealogy of the idea, the model, how the hidden state is inferred, how the parameters are learned, how it is validated out-of-sample, and where it honestly breaks. The maths is kept readable.

Why one regime is not enough

Standard GARCH(1,1) models conditional variance as a function of the last shock and the last variance:

It captures two real stylised facts: volatility clusters (a big move tends to be followed by another), and it mean-reverts toward a long-run level, which requires the stationarity condition

The tell that something is wrong arrives in the parameters. Fit this single-regime model to EUR/USD over 2021–2025 and the shock-response coefficient comes out around α̂ ≈ 0.30, three to six times the 0.05–0.10 typical for major FX. That is not a feature, it is a symptom. Forced to describe several regimes with one set of parameters, the model becomes hyper-reactive, over-fitting every shock because it has no way to say "the rules just changed." A high estimated α is the model screaming that it has been handed a non-stationary sample and asked to pretend it is stationary.

A short genealogy of the idea

None of the building blocks are new; the contribution is how they are combined. The lineage is worth knowing because each step solved a specific failure of the last.

The paper's job is to take this mature toolkit and fix the one thing it still gets wrong for FX: it operates at a single timescale.

Letting the market switch regimes

Hamilton's idea is to let an unobserved state St follow a Markov chain and infer it from the data. Here the states are intuitive: Calm, Turbulent and Crisis. The dynamics live in a transition matrix:

Transition matrix P (rows = from, cols = to)0.940.050.010.100.850.050.060.200.74CalmTurbulentCrisisCalmTurbulentCrisis
Illustrative transition matrix: high diagonal (regimes are sticky), low off-diagonal (jumps are rare). Original TTerminal visualisation.

Each regime then runs its own AR(1)-GARCH process (the tractable Haas et al. 2004 parallel specification), with skewed Student-t shocks to capture the fat tails and the asymmetry that normal-distribution models miss:

The skewed Student-t matters more than it looks. Foreign-exchange returns are leptokurtic (more extreme moves than a normal allows) and asymmetric (down-moves and up-moves are not mirror images). A Gaussian emission would systematically under-price tail risk, exactly when it is most expensive to be wrong. Now each regime keeps its own volatility personality: Calm is quiet and mean-reverting, Crisis is explosive. The model no longer has to average them into one hyper-reactive blob.

CALMTURBULENTCRISISCALM EUR/USD realised volatility through three regimes (illustrative)
The same instrument moving through Calm, Turbulent and Crisis regimes. Each is a distinct data-generating process. Original TTerminal visualisation.

Inferring the hidden state: the Hamilton filter

The regime is never observed directly; it has to be inferred. The Hamilton filter does this recursively. At each step it combines the prior belief about the state with the likelihood of the new observation under each regime, then renormalises, and finally predicts the next step through the transition matrix:

Here the symbol for elementwise product weights each regime's prior probability by how well it explains the latest return, and the prediction step pushes that belief forward one period. The cost is modest, growing with the sample and the square of the number of states, which is why a parsimonious three-state model is preferred over a sprawling one.

Because the output is a probability vector rather than a hard label, you can measure how confident the read is. Shannon entropy quantifies that uncertainty:

Low entropy means the model is sure which regime it is in; high entropy means the states are blurred together. That single number turns out to be one of the most useful outputs of the whole machine, as we will see.

How the parameters are learned

The model is fit by penalised maximum likelihood: choose the parameters that make the observed returns most probable, with a penalty that discourages extreme values:

The penalty is not cosmetic. Regime models are notoriously prone to degenerate solutions, where one state collapses to fit a handful of outliers and stops being a real regime. Regularisation keeps the estimates honest, particularly on the smaller daily sample where over-parameterisation is a genuine risk. The estimation itself runs through compiled filter kernels for speed, because the filter is evaluated thousands of times during optimisation.

The new idea: regimes live on several timescales at once

Here is the contribution worth remembering. A central-bank shift is a macro regime change that unfolds over months. An institutional positioning cycle is a meso change over days. A liquidity-driven stress event is a micro change over hours. All three are present in one hourly EUR/USD series, yet a single transition matrix cannot serve them. It would have to encode, at the same time, a macro jump of roughly Pr[Calm→Crisis] ≈ 0.001 per day and an intraday flip of ≈ 0.08 per hour. Those are conflicting demands on one set of numbers, and a single-scale model resolves the conflict badly, smearing slow and fast dynamics together.

The framework instead fits three independent MS-GARCH models, one each at the 1D (macro), 4H (meso) and 1H (micro) scale, each optimised for the dynamics at its native frequency. Their outputs are fused into a joint state tensor as the outer product of the three regime-probability vectors:

That tensor has 3 × 3 × 3 = 27 cells, one for every combination of macro, meso and micro regime. It is the model's full description of "where are we" at any moment, across scales.

1D · Macropolicy cycles (months) 4H · Mesopositioning (days) 1H · Microliquidity stress (hours) 27-state tensor3 × 3 × 3 27 expertmodels (MoE)
Three native-scale models feed a 3×3×3 = 27-state tensor, which routes signals to a mixture of 27 specialist models. Original TTerminal visualisation.

Transitions are not constant either

Regimes do not switch on a fixed schedule; the probability of flipping rises when stress rises. The model uses time-varying transition probabilities (the Filardo 1994 multinomial logit), driven by a composite stress index xt built from volatility z-scores, spread proxies and momentum:

The data is allowed to vote on whether this complexity earns its keep. At the fast scales it clearly does (the 4H and 1H models improve materially under time-varying transitions), while the slow daily model is better left static, because forcing time-variation on roughly 1,900 daily bars would be over-fitting. Letting the model choose static at one scale and dynamic at others, rather than imposing one answer everywhere, is the kind of restraint that separates a robust framework from a curve-fit.

From regimes to a forecast

The 27-state tensor does not just describe the world; it routes the decision. It acts as soft weights over a mixture of 27 specialist regression models (RidgeCV experts), one per regime combination. The prediction is a probability-weighted blend of the experts:

In plain terms, the expert trained for "macro-Calm, meso-Turbulent, micro-Crisis" gets the most say precisely when the market actually looks like that, and almost none when it does not. Mixture-of-experts beats a single global model here because the relationship between signals and returns is itself regime-dependent: what predicts in Crisis is not what predicts in Calm.

Then comes the discipline. The Shannon-entropy gate from earlier suppresses activity when the regime read is uncertain. When the model cannot tell which regime it is in, it stands aside rather than guess. That single rule is what separates a research toy from a usable risk tool.

Proving the regimes are real

A regime model is easy to fool yourself with: any flexible model can carve history into "states" that mean nothing out-of-sample. The validation here is the part that earns trust. Everything is measured walk-forward: train on a rolling window of the past, test on the next unseen quarter, then roll forward, across 16 quarters from 2021 to 2025. No look-ahead, no in-sample flattery.

Rolling walk-forward analysis (16 quarters)traintesttraintesttraintesttraintesttraintest 20162025 train on the past, test on the next unseen quarter, then roll forward
Walk-forward analysis: train on the past, test on the next unseen quarter, then roll forward. No look-ahead, no in-sample flattery. Original TTerminal visualisation.

On that out-of-sample data, the evidence holds up:

DM +4.70
Diebold–Mariano: beats GARCH(1,1) on volatility forecasting (p≈1.3e-6)
3 regimes
statistically distinct (KS test), Calm < Turbulent < Crisis held out-of-sample
IC 0.537
volatility information coefficient, up from 0.526 for GARCH
+0.025
directional information coefficient (small, positive, significant)

The Diebold–Mariano test asks a precise question, did model A's forecast errors beat model B's by more than chance:

A statistic of +4.70 with a vanishingly small p-value says the regime model's volatility forecasts are genuinely better than plain GARCH, not luckier. The Kolmogorov–Smirnov tests confirm the three regimes are statistically distinct distributions rather than arbitrary slices, and the volatility ordering Calm < Turbulent < Crisis survives out-of-sample, which is the property you actually want. The information coefficient measures how well the forecast tracks realised magnitude:

It improves only modestly, from 0.526 to 0.537, and the directional edge is a small +0.025. That modesty is the point, not a weakness.

Where it breaks: the honest limits

The paper is refreshingly upfront about what this is not, and a serious read has to be too.

Known limitations

  • It is a risk tool, not an alpha engine. The directional information coefficient is small. The value is in knowing the regime, not in calling the next candle.
  • Batch estimation, not real-time learning. Parameters are fixed within each quarter; the model adapts at the roll, not tick by tick.
  • Univariate and single-pair. It reads EUR/USD in isolation. Cross-asset contagion and the dollar's broader behaviour are outside the frame.
  • The Markov assumption. A first-order chain has no memory of how long it has been in a state, so it cannot directly model duration dependence (regimes that get more or less fragile the longer they last).
  • Independent regime variances. The tractable Haas specification does not let a regime inherit volatility from the previous state, a deliberate trade for computability.

None of these sink the framework. They define its remit. Used as a regime-aware risk layer rather than a prediction oracle, the limitations are acceptable; used as a standalone money machine, they would be fatal. Naming them is what makes the rest credible.

The edge is rarely in predicting the next tick. It is in knowing which game you are playing right now, and admitting when you cannot tell.

Why it matters on our side of the screen

This is the same philosophy that runs underneath the terminal. Markets are not one regime, so a single model, a single set of parameters or a single timeframe is structurally misspecified. Regime-aware, multi-scale thinking, with an explicit "I do not know" state, is how you turn a forecast into a risk decision: it tells you when to size up, when to hedge, where to set stops, and when to do nothing at all. The maths here is a clean, well-validated, honestly-bounded expression of exactly that, and it is worth the read in full.

Based on "Multi-Scale Markov-Switching GARCH: Volatility Regime Detection in EUR/USD" by Jayesh Chaudhary (arXiv:2606.06190, 2026). Equations shown are standard econometric formulations; diagrams are original TTerminal visualisations of the concepts, not reproductions of the paper. This is editorial analysis, not investment advice.

Regimes, in real time.

Volatility regimes, the risk map and the ML models run inside the terminal, live across forex, indices, commodities and crypto.

Start 7-day free trial
← Back to all postsLog in ↗