1. Introduction

Statistical arbitrage is a class of trading strategies that exploit temporary deviations from equilibrium relationships between correlated assets. The simplest and most widely practiced variant operates on the spread — the price difference (or a linear combination) of two cointegrated instruments — and bets on its reversion to a historical mean.

This article examines a Bollinger Band–based mean reversion strategy applied to the spread. We develop the statistical foundations, formalize the trading logic, analyze parameter selection, and discuss the critical risk of non-reversion.

2. Statistical Foundations

2.1 Cointegration

Two price series PA(t)P_A(t) and PB(t)P_B(t), each individually non-stationary (integrated of order one, I(1)I(1)), are said to be cointegrated if there exists a coefficient β\beta such that the linear combination

S(t)=PA(t)βPB(t)S(t) = P_A(t) - \beta P_B(t)

is stationary, i.e., S(t)I(0)S(t) \sim I(0). The vector (1,β)T(1, -\beta)^T is called the cointegrating vector (Engle & Granger, 1987).

Stationarity of S(t)S(t) implies that it has constant mean μ\mu, finite variance, and tends to revert to μ\mu after deviations. This mean-reverting property is the engine of statistical arbitrage.

2.2 Stationarity Testing

Before constructing a spread-based strategy, one must verify that S(t)S(t) is indeed stationary. Two standard procedures are:

Augmented Dickey-Fuller (ADF) Test. The null hypothesis is that S(t)S(t) contains a unit root. Rejection (low pp-value) supports stationarity:

ΔS(t)=α+γS(t1)+i=1pδiΔS(ti)+εt\Delta S(t) = \alpha + \gamma S(t-1) + \sum_{i=1}^{p} \delta_i \Delta S(t-i) + \varepsilon_t

Under H0:γ=0H_0: \gamma = 0, the series has a unit root.

Johansen Test. When working with more than two assets, the Johansen procedure simultaneously estimates the cointegrating rank rr (number of independent cointegrating relationships) and the cointegrating vectors using a vector error correction model (VECM):

ΔP(t)=ΠP(t1)+i=1k1ΓiΔP(ti)+εt\Delta \mathbf{P}(t) = \Pi \mathbf{P}(t-1) + \sum_{i=1}^{k-1} \Gamma_i \Delta \mathbf{P}(t-i) + \varepsilon_t

where Π=αβT\Pi = \alpha \beta^T, and the rank of Π\Pi equals the cointegrating rank rr.

2.3 Spread Modeling

For a pair of cointegrated assets with estimated coefficient β^\hat{\beta}, the spread at time tt is:

S(t)=PA(t)β^PB(t)S(t) = P_A(t) - \hat{\beta} P_B(t)

Under the null of cointegration, S(t)S(t) can be modeled as an Ornstein-Uhlenbeck (OU) process:

dS(t)=κ(μS(t))dt+σdW(t)dS(t) = \kappa(\mu - S(t))\,dt + \sigma\,dW(t)

where κ>0\kappa > 0 is the speed of mean reversion, μ\mu is the long-run mean, σ\sigma is the volatility, and W(t)W(t) is a Wiener process. The half-life of reversion is:

τ1/2=ln2κ\tau_{1/2} = \frac{\ln 2}{\kappa}

A shorter half-life implies faster reversion and, ceteris paribus, more frequent trading opportunities.

3. Bollinger Band Construction

3.1 Definition

The Bollinger Band at time tt is defined by three lines computed over a rolling window of length NN:

  • Middle band: MA(t)=1Ni=0N1S(ti)\mathrm{MA}(t) = \frac{1}{N}\sum_{i=0}^{N-1} S(t-i)
  • Upper band: BU(t)=MA(t)+kσ^(t)\mathrm{BU}(t) = \mathrm{MA}(t) + k \cdot \hat{\sigma}(t)
  • Lower band: BL(t)=MA(t)kσ^(t)\mathrm{BL}(t) = \mathrm{MA}(t) - k \cdot \hat{\sigma}(t)

where the rolling standard deviation is:

σ^(t)=1N1i=0N1(S(ti)MA(t))2\hat{\sigma}(t) = \sqrt{\frac{1}{N-1}\sum_{i=0}^{N-1}(S(t-i) - \mathrm{MA}(t))^2}

and kk is the number of standard deviation multipliers (typically k=2k = 2).

3.2 Parameter Selection

Window length NN. The window should be chosen in relation to the half-life of the spread’s OU process. A common heuristic is N2τ1/2N \approx 2\tau_{1/2} to 5τ1/25\tau_{1/2}, so that the moving average captures the equilibrium level without excessive lag. Windows that are too short produce noisy bands; windows that are too long adapt too slowly to regime changes.

Multiplier kk. The choice of kk controls the trade-off between signal frequency and confidence:

kkProbability outside band (Gaussian)Interpretation
1.031.7%Frequent signals, many false positives
2.04.6%Balanced; standard choice
2.51.2%Rare signals, higher confidence

For spread processes with heavier tails than Gaussian (common in practice), k=2k = 2 may still produce more signals than the theoretical 4.6%. Robust estimation of σ^\hat{\sigma} (e.g., using median absolute deviation) can mitigate this.

3.3 Entry and Exit Logic

The trading rules are:

Entry.

  • If S(t)>BU(t)S(t) > \mathrm{BU}(t): short the spread (sell leg A, buy leg B). Expectation: S(t)S(t) will revert downward.
  • If S(t)<BL(t)S(t) < \mathrm{BL}(t): long the spread (buy leg A, sell leg B). Expectation: S(t)S(t) will revert upward.

Exit.

  • If holding a short spread and S(t)MA(t)S(t) \leq \mathrm{MA}(t): close position.
  • If holding a long spread and S(t)MA(t)S(t) \geq \mathrm{MA}(t): close position.

In pseudocode:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
function on_bar(spread_price, boll_mid, boll_up, boll_down, position):
    if position == 0:
        if spread_price >= boll_up:
            submit_order(SELL_SPREAD, price=spread_price - payup, volume=max_pos)
        elif spread_price <= boll_down:
            submit_order(BUY_SPREAD, price=spread_price + payup, volume=max_pos)
    elif position < 0:  # holding short spread
        if spread_price <= boll_mid:
            submit_order(BUY_SPREAD, price=spread_price + payup, volume=abs(position))
    elif position > 0:  # holding long spread
        if spread_price >= boll_mid:
            submit_order(SELL_SPREAD, price=spread_price - payup, volume=abs(position))

The payup parameter shifts the limit price in the favorable direction to accelerate execution. For statistical arbitrage, execution speed is critical: the edge decays as the spread reverts.

4. Risk of Non-Reversion

The central risk in spread mean reversion is cointegration breakdown: the equilibrium relationship itself changes, and the spread does not revert. This can occur due to:

  1. Structural breaks. Regulatory changes, commodity substitution, or supply-side shocks can permanently alter the relationship between two assets. For example, a change in refining margins can shift the crack spread between crude oil and gasoline to a new regime.

  2. Regime shifts in volatility. During market stress, correlations converge toward one, and the spread may widen explosively rather than revert. The OU model assumption of constant σ\sigma breaks down.

  3. Non-synchronous trading. If one leg is illiquid or has trading halts, the observed spread may deviate from the true economic spread, generating false signals.

4.1 Detecting Cointegration Breakdown

Practitioners monitor several indicators:

  • Rolling ADF statistic. Compute the ADF test on a rolling window. A rising pp-value signals weakening cointegration.
  • Spread z-score magnitude. If z=(S(t)μ)/σ>4|z| = |(S(t) - \mu)/\sigma| > 4, the deviation is extreme and may indicate a structural break rather than a temporary dislocation.
  • Hurst exponent. A Hurst exponent HH shifting from H<0.5H < 0.5 (mean-reverting) toward H0.5H \geq 0.5 (random walk or trending) signals loss of mean reversion.

4.2 Mitigation

Common defenses include:

  • Stop-loss. Close the spread position if the unrealized loss exceeds a threshold (e.g., 3σ3\sigma from entry).
  • Position sizing inversely proportional to spread volatility. Reduce exposure when σ^(t)\hat{\sigma}(t) expands.
  • Periodic re-estimation of β\beta. Recalibrate the cointegrating coefficient on a rolling basis rather than relying on a fixed β^\hat{\beta}.

5. Summary

Bollinger Band mean reversion on the spread is one of the simplest and most intuitive statistical arbitrage strategies. Its strength lies in the clear economic logic: cointegrated assets should revert to equilibrium, and the Bollinger Band provides a statistically principled way to identify dislocations.

However, the strategy’s viability rests entirely on the persistence of the cointegrating relationship. When the structural relationship breaks, the mean-reversion assumption fails catastrophically. Robust implementation therefore requires continuous monitoring of cointegration, strict risk controls, and the humility to recognize when the regime has changed.


References

  1. Engle, R. F., & Granger, C. W. J. (1987). Co-integration and error correction: Representation, estimation, and testing. Econometrica, 55(2), 251–276.

  2. Gatev, E., Goetzmann, W. N., & Rouwenhorst, K. G. (2006). Pairs trading: Performance of a relative-value arbitrage rule. The Review of Financial Studies, 19(3), 797–827.

  3. Johansen, S. (1991). Estimation and hypothesis testing of cointegration vectors in Gaussian vector autoregressive models. Econometrica, 59(6), 1551–1580.

  4. Avellaneda, M., & Lee, J.-H. (2010). Statistical arbitrage in the U.S. equities market. Quantitative Finance, 10(7), 761–782.

  5. Bollinger, J. (2001). Bollinger on Bollinger Bands. McGraw-Hill.

  6. Vidyamurthy, G. (2004). Pairs Trading: Quantitative Methods and Analysis. Wiley.