Pairs Trading & Statistical Arbitrage Lab

Model Marco Avellaneda and Jeong-Hyun Lee (2010) Ornstein-Uhlenbeck cointegration spread dynamics, dimensionless $s$-score trading policies, and market-neutral backtest returns.

PAIR REGIMES:
Reversion Half-Life (τ)
11.6 days
κ = 15.0 / yr (τ = 0.05 yrs)
Strategy Sharpe Ratio
2.14
Annualized Market-Neutral
Strategy Total Net Return
+18.4%
Benchmark 50/50: +8.2%
Max Drawdown
4.2%
12 trades | Win Rate: 83%
Pair & Spread Parameters
Asset 1 Initial Price ($S_1$) $100.00
Asset 2 Initial Price ($S_2$) $50.00
Cointegration Hedge Ratio ($\beta$) 1.20
Log-regression slope: $\ln(S_1) = \alpha + \beta \ln(S_2) + X_t$
Mean Reversion Speed ($\kappa$) 15.0 / yr
Speed of drift toward equilibrium: $dX_t = \kappa(\theta - X_t)dt + \sigma dW_t$
Spread Volatility ($\sigma$) 20%
Avellaneda-Lee Trading Rules
Entry Threshold ($s_{\text{open}}$) 1.25
Enter Long Spread when $s_t < -s_{\text{open}}$, Short when $s_t > +s_{\text{open}}$
Exit Threshold ($s_{\text{close}}$) 0.50
Close position when $|s_t| \le s_{\text{close}}$
Stop-Loss Limit ($s_{\text{stop}}$) 3.50
Emergency exit on structural breakdown: $|s_t| \ge s_{\text{stop}}$
Transaction Cost + Slippage 5.0 bps
Annual Short Borrow Fee 0.50%
252-day continuous Ornstein-Uhlenbeck cointegration backtest simulation.
Statistical Arbitrage Performance & Econometric Diagnostics
Econometric / Strategy Parameter Analytical Formulation Simulation Metric
Sensitivity: Reversion Speed $\kappa$ vs Spread Vol $\sigma$ on Sharpe Ratio
Sensitivity: Entry Threshold $s_{\text{open}}$ vs Transaction Fee on Return %

Institutional Foundations of Statistical Arbitrage

1. Engle-Granger Cointegration vs. Simple Correlation

A classic pitfall in algorithmic pairs trading is relying on Pearson return correlation. Two non-stationary asset price series can exhibit strong positive correlation over a sample period yet drift permanently apart, causing catastrophic losses in mean-reversion trading.

Under Robert Engle and Clive Granger's (1987) framework, two integrated $I(1)$ series are cointegrated if there exists a linear hedge ratio $\beta$ such that the residual spread:

$$X_t = \ln(S_{1,t}) - \beta \ln(S_{2,t}) - \alpha \sim I(0)$$

is strictly stationary. Stationary spreads possess a constant finite unconditional mean and variance, guaranteeing that large divergences will revert over time.

2. Continuous Ornstein-Uhlenbeck (OU) Spread Dynamics

In continuous time, the cointegration residual $X_t$ is modeled via the Ornstein-Uhlenbeck stochastic differential equation:

$$dX_t = \kappa(\theta - X_t) dt + \sigma dW_t$$

where $\kappa$ is the speed of mean reversion, $\theta$ is the equilibrium attractor, and $\sigma$ is diffusion volatility. The discrete-time AR(1) equivalent $X_{t+\Delta t} = a + b X_t + \epsilon_t$ maps directly:

$$\kappa = -\frac{\ln(b)}{\Delta t}, \quad \theta = \frac{a}{1 - b}, \quad \sigma_{\text{eq}} = \frac{\sigma}{\sqrt{2\kappa}}, \quad t_{1/2} = \frac{\ln(2)}{\kappa}$$
3. The Avellaneda-Lee Dimensionless s-Score

Marco Avellaneda and Jeong-Hyun Lee (2010) standardized pairs signals across multi-asset universes by dividing the residual spread by its theoretical equilibrium standard deviation $\sigma_{\text{eq}}$:

$$s_t = \frac{X_t - m_t}{\sigma_{\text{eq}}}$$

This yields a dimensionless z-score representing the standard deviations of mispricing. Positions are initiated when $|s_t| \ge 1.25$ and closed when $|s_t| \le 0.50$.

4. Cointegration Breakdown & Stop-Loss Rules

Economic relationships are not permanent. Mergers, technological obsolescence, accounting restatements, or regulatory changes can break cointegration, transforming a temporary mean-reverting spread into an unbounded non-stationary random walk.

A disciplined statistical arbitrage trading system enforces a strict stop-loss threshold: if $|s_t| \ge s_{\text{stop}} \approx 3.50$, the system liquidates immediately to prevent unbounded drawdown.

Statistical Arbitrage Mastery Self-Assessment
Related Quantitative Trading & Microstructure Simulators
Frequently Asked Questions: Statistical Arbitrage & Pairs Trading

Pairs trading is a market-neutral strategy that identifies two economically linked assets whose price spread diverges temporarily from historical equilibrium. While correlation measures contemporaneous co-movement of asset returns, it does not guarantee mean reversion—correlated assets can drift apart permanently. Cointegration (Engle & Granger 1987) establishes that a linear combination ln(S1) - beta * ln(S2) is I(0) stationary, ensuring that pricing divergences will mathematically revert to an equilibrium mean.

The residual spread X_t is modeled as a continuous mean-reverting stochastic process: dX_t = kappa * (theta - X_t) dt + sigma * dW_t, where kappa represents the speed of mean reversion, theta is the long-run equilibrium spread attractor, and sigma is spread volatility. The process exhibits an equilibrium standard deviation sigma_eq = sigma / sqrt(2 * kappa) and an analytical half-life of reversion t_1/2 = ln(2) / kappa.

Marco Avellaneda and Jeong-Hyun Lee (2010) introduced the dimensionless s-score s_t = (X_t - m) / sigma_eq to standardize the residual spread across diverse asset pairs. A standard policy enters a long spread position when s_t < -1.25, enters a short spread position when s_t > +1.25, unwinds the trade at s_close = +/- 0.50, and triggers an emergency stop-loss liquidation when |s_t| >= 3.50.

The half-life t_1/2 = ln(2) / kappa represents the expected calendar time required for an extreme divergence to halve. Faster mean reversion (higher kappa, shorter half-life) allows more frequent round-trip trades, compounding strategy capital rapidly and increasing the annualized Sharpe ratio, provided transaction fees and slippage do not erode gross alpha.

Cointegration breaks down when structural economic fundamentals shift—such as an unannounced merger/acquisition, regulatory sanctions, corporate debt distress, technological disruption, or accounting fraud in one company. If an asset pair enters non-stationary drift, the spread can widen indefinitely. A hard stop-loss threshold (|s_t| >= 3.50) liquidates the position to contain catastrophic drawdown.