Quant Memo
Advanced

Entry and Exit Bands for Spread Trades

The whole trading rule is three numbers — where you get in, where you get out, where you give up. Simulating a known mean-reverting spread shows the folklore entry at two standard deviations is far too wide, and explains why desks use it anyway.

Prerequisites: Ornstein-Uhlenbeck Mean Reversion, Transaction Costs

Once you have a spread and a hedge ratio, the strategy is three numbers: how far it has to stretch before you take the other side, how far back it has to come before you take the money, and how far wrong it has to go before you admit the relationship is broken. Everything else — the cointegration test, the Kalman filter, the eigenportfolios — is machinery for producing a z-score. The bands are what turn that z-score into P&L.

The rule and the tension

Normalise the spread to a z-score, zt=(stμ)/σeqz_t = (s_t - \mu)/\sigma_{\text{eq}}, then:

  • Enter when zta|z_t| \ge a, fading the move. At z=+az = +a you short the spread; at z=az = -a you buy it.
  • Exit when ztb|z_t| \le b, with bb usually 0 or a small positive number.
  • Stop at ztc|z_t| \ge c, or after a fixed number of days.

The tension is immediate. A wide entry band earns more per trade — you are fading a bigger dislocation — but you trade less often and your capital sits idle. A narrow band trades constantly, earns crumbs, and pays costs on every round trip. There is an optimum, and it is not where most people put it.

+3σ stop +2σ enter 0 exit −2σ enter −3σ stop short long
Filled circles are entries, hollow circles are exits. The spread crosses the upper band once and the lower band once in this stretch — two trades in roughly four months. Widen the bands and the circles disappear entirely.

Simulating the trade-off

Take a spread that genuinely follows the OU model: half-life 10 trading days, σeq=1.20\sigma_{\text{eq}} = 1.20 ($1.20), round-trip cost $0.12 (a tenth of a sigma). Simulate 4,000 years of it, exit every trade at z=0z = 0, no stop, and count what each entry band delivers.

Entry aaTrades/yrGross $/tradeAvg days held% of time in a tradeNet $/yrSharpe
0.513.61.111579%13.573.98
0.7510.21.401769%12.994.20
1.07.71.691959%12.024.16
1.54.12.282338%8.973.08
2.02.02.882621%5.501.82
2.50.83.47299%2.590.98

Three things fall out.

Every trade wins. In a pure OU world with no stop, the spread always comes back, so the hit rate is 100% and the only risk is how long you wait. That is the fantasy the model sells you, and it is why the Sharpes above are absurd. Read the ordering of the rows, not the levels.

The canonical z=2z=2 entry is badly suboptimal here. It earns $5.50 a year against $13.57 at z=0.5z = 0.5, and its Sharpe is less than half. If the model were true, you would trade a much tighter band.

Average entry is not the band. At a=2.0a = 2.0 the average trade opens at z=2.40z = 2.40, not 2.00 — you only observe the spread once a day, so you cross the band and overshoot. Wide bands are quietly wider than they look, which helps their per-trade number and hurts their trade count.

Widening the entry band raises profit per trade and lowers profit per year. The two move in opposite directions, so quoting either one alone tells you nothing. What matters is net dollars per unit of capital per unit of time.

Why desks still use two sigma

Three reasons, all of them about the model being wrong.

Costs push the optimum outward. Raise the round-trip cost from $0.12 to $0.60 — half a sigma, which is realistic for a small-cap pair — and the same simulation flips: a=0.5a = 0.5 now nets $7.02 a year and a=1.0a = 1.0 nets $8.34. The higher your costs, the wider you must wait, because you have to clear the toll on every crossing.

Capital, not calendar, is the binding constraint. Divide net P&L by the fraction of time you actually hold the position: $17.2 per unit of deployed capital at a=0.5a=0.5, but $26.5 at a=2.0a=2.0. Run one spread and the narrow band wins, because your capital is otherwise idle. Run three hundred spreads competing for the same book, and the wide band wins, because now every dollar has somewhere better to be. Almost every real stat-arb book is in the second regime.

The parameters are estimates. σeq\sigma_{\text{eq}} was fitted on history, and if the true dispersion is 30% wider than you measured, your "z=1z=1" is really z=0.77z = 0.77 and you are fading noise. Wide bands are insurance against the mean and the width both being wrong.

Exits and the stop-loss problem

Exiting at exactly z=0z = 0 is not obviously right either. In the same simulation, exiting at z=0.5z = 0.5 instead cuts the average holding period from 19 days to 10 at a=1.0a = 1.0, giving up 35% of the per-trade profit to free the capital nearly twice as fast. Some desks go further and hold through zero to the opposite band, which doubles the per-trade move but roughly halves the number of completed trades.

The stop is the genuinely uncomfortable part. On a mean-reverting spread, a stop-loss fires at z=3|z| = 3 — which is precisely the moment the model says expected return is highest. You are systematically selling at the best available price. A stop only makes sense as a statement about the model, not the trade: "at 3 sigma I no longer believe this spread reverts."

That is why the better constructions are not price stops at all:

  • Time stops. If the half-life is 10 days and you have held for 45, the spread is behaving as something other than what you fitted. Exit on that evidence.
  • Re-test the relationship. Re-run the unit-root test on the extended sample. A spread that has stopped rejecting is a spread you should not be holding.
  • Scale, do not stop. Add on the way out to a hard cap, then stop adding. This keeps the convexity of the model being right without the unbounded loss of it being wrong.

Backtests of band rules are the easiest place in finance to fool yourself, because the bands are computed from the full-sample mean and standard deviation of the spread. If μ\mu and σeq\sigma_{\text{eq}} are estimated using data from after the trade date, the z-score knows the future, and every strategy looks profitable. Compute the bands on a rolling trailing window only.

In interviews

State the three-parameter rule, then immediately name the tension: wide bands maximise dollars per trade, narrow bands maximise dollars per year. Say the optimum depends on costs and on whether capital or calendar time is your constraint — one spread favours narrow, a large book favours wide. Then raise the stop-loss paradox unprompted: a stop on a mean-reverting position sells at the point of maximum expected return, so it is a bet against your own model, and a time stop or a re-tested cointegration relationship is the more honest instrument.

Related concepts

Used in strategies

Practice in interviews

Further reading

  • Gatev, Goetzmann & Rouwenhorst (2006), Pairs Trading: Performance of a Relative-Value Arbitrage Rule
  • Bertram (2010), Analytic Solutions for Optimal Statistical Arbitrage Trading
  • Avellaneda & Lee (2010), Statistical Arbitrage in the U.S. Equities Market
ShareTwitterLinkedIn