Markets: A Rigorous Course

4A.7 Volatility-scaled stops: ATR

Foundation about 10 min

Motivation

A ₹20 stop is tight for a ₹4,800 stock and wide for a ₹280 one. Scaling stops by each instrument's volatility makes the probabilities of Table 4A.1 the same across instruments, and makes position sizes risk-equivalent.

4A.7.1True range and ATR#

Definitiontrue range and ATR; Wilder 1978

The true range of day tt is

TRt=max⁡(Ht,Ct−1)−min⁡(Lt,Ct−1),(4A.11)\mathrm{TR}_t=\max(H_t,C_{t-1})-\min(L_t,C_{t-1}), \tag{4A.11}

the range of the day extended to include the previous close, so that a gap counts. The average true range with period nn (Wilder used 14) is Wilder's smoother of TR (M04 Definition 4.4): ATRn=1n∑t=1nTRt\mathrm{ATR}_n=\frac1n\sum_{t=1}^n\mathrm{TR}_t and then ATRt=((n−1)ATRt−1+TRt)/n\mathrm{ATR}_t=\big((n-1)\mathrm{ATR}_{t-1}+\mathrm{TR}_t\big)/n, an exponential average with α=1/n\alpha=1/n.

Relation to Parkinson's estimator Since TRt≥Ht−Lt\mathrm{TR}_t\ge H_t-L_t, E[TR]≥E[H−L]\mathbb E[\mathrm{TR}]\ge\mathbb E[H-L]. If the stock trades continuously with no overnight gap and log price is driftless Brownian with daily volatility σ\sigma, then ln⁡(H/L)\ln(H/L) has the law of σR\sigma R with RR the range of standard Brownian motion on [0,1][0,1], and M09 Proposition 9.1 gives ER=22/π=1.5958\mathbb E R=2\sqrt{2/\pi}=1.5958. Since H−L=S(eln⁡H/S−eln⁡L/S)≈Sln⁡(H/L)H-L=S(e^{\ln H/S}-e^{\ln L/S})\approx S\ln(H/L) for small ranges,

ATR≈1.596 σS,σ^ATR=ATR1.596 S.(4A.12)\mathrm{ATR}\approx1.596\,\sigma S,\qquad \hat\sigma_{\mathrm{ATR}}=\frac{\mathrm{ATR}}{1.596\,S}. \tag{4A.12}

ATR is a mean of ranges and Parkinson's estimator a mean of squared ranges; both measure the same σ\sigma, and both are biased downwards by discrete trading (the observed high is the highest trade, not the highest value of the latent price) and upwards by bid–ask bounce. With overnight gaps, TR includes part of the overnight move, so (4A.12) mixes overnight and intraday variance: for Nifty, where 36% of daily variance is overnight (4A.4), ATR is a better proxy for close-to-close volatility than H−LH-L alone. The code checks (4A.12) on simulated continuous paths: with 2,000 steps per day the estimate is within 2% of the true σ\sigma.

4A.7.2Stops in ATR units#

Volatility-scaled stops Put the stop at b=k⋅ATR≈1.596k σSb=k\cdot\mathrm{ATR}\approx1.596k\,\sigma S. Then by Table 4A.1 the driftless probability of being stopped within nn days is

2Φ ⁣(−1.596 kn),(4A.13)2\Phi\!\left(-\frac{1.596\,k}{\sqrt n}\right), \tag{4A.13}

which no longer depends on the stock. A 2-ATR stop has about a 31% chance of being hit within 10 days in every stock; a 1-ATR stop, 61%. And with the percent-risk sizing rule (M03 · 3.9), shares =(equity×f)/(k⋅ATR)=(\text{equity}\times f)/(k\cdot\mathrm{ATR}), every position risks the same fraction ff of equity at its stop and has the same probability of reaching it.

Worked example 4A.6

A ₹1,500 stock with 14-day ATR ₹36. By (4A.12), σ^=36/(1.596×1,500)=1.50%\hat\sigma=36/(1.596\times1{,}500)=1.50\% a day. A 2-ATR stop sits ₹72 below entry. With capital ₹20 lakh and 0.5% risk per trade (₹10,000), the position is 10,000/72=13810{,}000/72=138 shares (₹2.07 lakh notional). The probability of the stop being hit within 10 trading days on noise alone is 2Φ(−2×1.596/10)=0.3132\Phi(-2\times1.596/\sqrt{10})=0.313.

Chandelier and similar exits A chandelier exit trails a stop at the highest high since entry minus k⋅ATRk\cdot\mathrm{ATR}. It is a trailing stop (4A.8) with distance measured in volatility units.

Practitioner notes

  • ATR adapts slowly (α=1/14\alpha=1/14) and lags volatility spikes, exactly like the trailing realised volatility in M09 · 9.9. After a regime change, a stop set at 2 ATR from the old regime is too tight.
  • For event days (4A.11), ATR from ordinary days understates the move the market itself expects. Use the option-implied event move (M09A) to set the stop and size the position.
  • Re-anchor ATR stops to the price at entry, not to a moving ATR, or the stop distance changes with volatility while you are in the trade (that is a different, defensible rule, but decide it in advance).

Create a free account

Reading is open to everyone. An account keeps your progress, answers, notes and code drafts, and gives you the study plan, the journals and the simulator. Running code needs an account approved for it.