Half-Life of Mean Reversion

Cointegration says a spread reverts. The half-life says how fast, in trading days: the time it takes for half of a deviation from the long-run relationship to be given back. It is the number that converts a statistical finding into a holding period.

Why Speed Is the Missing Half of the Story

A cointegration test is a yes-or-no verdict. Two pairs can both pass it decisively while behaving nothing alike: one closes its gaps within a fortnight, the other takes eight months. The p-values can be identical. Every practical decision that follows, capital commitment, rebalance frequency, whether the relationship is tradeable at all after costs, depends on the speed rather than the verdict.

The half-life is also a sanity check on the test itself. A half-life close to or longer than the estimation window is a warning that the reversion was fitted rather than observed: the sample never actually contained a full round trip. A half-life of a few days on daily data is the opposite warning, usually microstructure noise or stale prices rather than an economic linkage.

Mathematical Formulation

The Ornstein-Uhlenbeck process

The continuous-time model of a mean-reverting series is the Ornstein-Uhlenbeck process (1930):

The drift term pulls back toward its long-run mean at a rate proportional to how far away it currently is, with the speed of reversion and the noise that keeps knocking it away. In expectation, a deviation decays exponentially: .

Estimating it on discrete data

Sampled daily, the process becomes an AR(1). FolioLab regresses the change in the spread on its own lagged level, with no intercept:

Omitting the intercept is deliberate rather than an oversight. The spread being tested is the residual of the cointegrating regression, which is mean-zero by construction, so a fitted constant would only absorb noise. The coefficient is the discrete analogue of : strictly negative for a reverting series, and the same coefficient the Dickey-Fuller test examines.

From coefficient to half-life

Writing the regression in levels gives , so a deviation decays by a factor of each day and by over days. Setting and solving:

This is the exact discrete-time half-life. Much of the literature quotes the continuous-time approximation instead, which comes from for small . The two agree closely for slow reversion and diverge as reversion gets fast: at they differ by about one percent, at by roughly forty. FolioLab reports the exact form.

The unit is whatever the data's sampling frequency is, so on daily price series a half-life of 21 means 21 trading days, about a calendar month.

What FolioLab Computes

The half-life is estimated only for pairs that tested as cointegrated at the 5% level, on the residual spread from the winning regression direction, and appears beside the hedge ratio in the cointegration table. It is not computed for pairs that failed the test, because the decay rate of a non-reverting series is not a meaningful quantity.

Three guards decide whether a number is reported at all. The spread must carry at least 20 observations, and at least 10 must survive the lag-and-difference alignment. The estimated must be strictly negative, since a non-negative coefficient means the series is diverging rather than reverting. And must be strictly positive, which rules out the overshooting regime where the spread flips sign each period and a half-life has no sensible interpretation.

When any guard fails, the field is simply absent. There is no fallback value and no imputed number: an unreported half-life means the estimate could not be made, which is different from an estimate of infinity.

How To Read It

Half-lifeReadingCaveat
Under 5 daysVery fastSuspect microstructure: bid-ask bounce, stale quotes, or non-synchronous closes rather than an economic relationship.
5 to 60 daysThe useful rangeLong enough to survive costs, short enough that a 1-year window contains several full reversion cycles.
60 to 120 daysSlowReal but capital-intensive to exploit, and estimated from few independent cycles inside the window.
Over 120 daysBarely distinguishable from a unit rootApproaching the window length. Treat the cointegration verdict itself as fragile here.

Compare the half-life to the estimation window before anything else. A 1-year window is 252 trading days, so a half-life of 30 gives roughly eight reversion cycles to learn from, while a half-life of 200 gives barely one. The second number is an extrapolation dressed as a measurement.

Limitations

  • It assumes one constant speed. Real spreads revert quickly in calm markets and slowly, or not at all, under stress. A single averages over both regimes.
  • Downward-biased in small samples. The OLS estimate of an autoregressive coefficient is biased toward zero, which biases the estimated half-life short. Fast-looking reversion on a short window deserves scepticism.
  • Estimated on a fitted spread. The hedge ratio that defines the spread came from the same window, so the half-life inherits its estimation error on top of its own.
  • No confidence interval is reported. The point estimate can move substantially with the window, and the results page does not currently quantify that sensitivity.
  • Reversion is not a trading edge. Half-life describes historical spread dynamics on frozen inputs. It is not a forecast, and it says nothing about whether the relationship survives transaction costs or the next structural change.

References

  1. Uhlenbeck, G. E., & Ornstein, L. S. (1930). "On the Theory of the Brownian Motion." Physical Review, 36(5), 823-841. doi:10.1103/PhysRev.36.823.
  2. Lo, A. W., & MacKinlay, A. C. (1988). "Stock Market Prices Do Not Follow Random Walks: Evidence from a Simple Specification Test." The Review of Financial Studies, 1(1), 41-66. doi:10.1093/rfs/1.1.41.
  3. Engle, R. F., & Granger, C. W. J. (1987). "Co-integration and Error Correction: Representation, Estimation, and Testing." Econometrica, 55(2), 251-276. doi:10.2307/1913236.

Not investment advice. Past performance is not indicative of future results.