📘 True Range & Average True Range (ATR): Foundations of Volatility
Overview
The Average True Range (ATR) is one of the earliest and most enduring measures of market volatility. It was introduced by J. Welles Wilder Jr. in 1978 in his book “New Concepts in Technical Trading Systems”, alongside other classics like RSI and Parabolic SAR.
ATR was designed for commodity markets — which had fixed daily sessions and often saw large overnight gaps. These gaps made ordinary high-low ranges unreliable for measuring “how much price really moved.” Wilder’s fix was simple and brilliant: define True Range (TR) as the maximum of three possible price movements.
🧮 True Range Formula
For each bar ( t ):
| Term | Meaning | Captures |
|---|---|---|
| Intrabar range | Normal day-to-day volatility | |
| Gap up movement | Overnight or session gaps upward | |
| Gap down movement | Overnight or session gaps downward |
The “max of three” construction ensures that the True Range always reflects the full movement of price, including any gap between bars. If you only used , you’d completely miss the volatility caused by those gaps.
📈 Average True Range (ATR)
ATR is simply a smoothed average of True Range values, typically over 14 periods:
Wilder originally used a modified exponential smoothing method (similar to an EMA), but modern implementations often use either an EMA or SMA.
ATR is non-directional — it doesn’t care whether price moved up or down, only how far it traveled. That’s why it’s the backbone for:
- Position sizing and stop placement
- Volatility regime detection
- Risk-adjusted signal scaling
🧭 Why It Made Sense in 1978
When ATR was invented:
- Markets closed overnight.
- Gaps were frequent and meaningful.
- Volatility needed to account for both in-session movement and between-session jumps.
The “max of three” logic elegantly solved that. In today’s 24/7 markets like crypto or forex, where gaps are rare, the extra terms usually just match ( H_t - L_t ). But keeping the full formula is still good practice because:
- It gracefully handles data dropouts or exchange outages.
- It remains consistent across all asset classes.
- It detects micro-gaps from things like oracle or mark-price resets in perps.
⚡ Quick Example
| Candle | High | Low | Prev Close | TR = max( ) | Explanation |
|---|---|---|---|---|---|
| 1 | 102 | 99 | 100 | 3 | Normal in-bar move |
| 2 | 110 | 109 | 100 | 10 | Gap-up captured by |
| 3 | 108 | 95 | 109 | 14 | Gap-down captured by |
Then ATR(3) = mean(3, 10, 14) = 9.0
🧩 Interpreting ATR
| Context | Meaning |
|---|---|
| Rising ATR | Expanding volatility → large candles or erratic moves |
| Falling ATR | Contracting volatility → calm, compressed price action |
| High ATR vs history | “Stormy” regime; breakouts and reversals have more noise |
| Low ATR vs history | “Quiet” regime; coiled ranges, potential volatility expansion ahead |
ATR doesn’t predict direction — it describes environment.
🕓 Notes for Continuous Markets (Crypto, FX)
For 24/7 assets:
- The “gap” terms rarely dominate, but keeping them maintains robustness.
- TR degenerates to roughly ( H_t - L_t ) under normal continuous trading.
- You can safely interpret ATR as rolling candle amplitude.
Advanced volatility studies (which you’ll build later) use ATR as the base layer for:
- ATR rate-of-change (volatility momentum)
- ATR percentile vs hour-of-week (contextual volatility)
- ATR excursion time (duration of high-vol states)
🧠 Summary
| Concept | Definition | Purpose | ||||
|---|---|---|---|---|---|---|
| True Range (TR) | max( H−L, | H−C₋₁ | , | L−C₋₁ | ) | Capture total movement, including gaps |
| Average True Range (ATR) | Smoothed mean of TR | Measure volatility magnitude | ||||
| Why “True”? | Includes between-bar gaps | Reflects total risk exposure | ||||
| Inventor | J. Welles Wilder Jr., 1978 | For commodities’ session gaps | ||||
| Modern Relevance | Still best general-purpose volatility metric | Works across markets |
🧭 Next Steps: From Classic ATR to Modern Volatility Studies
This piece has covered the origin and mechanics of True Range and Average True Range — the foundation of nearly all volatility analysis. The next steps extend these concepts into the modern, continuous-market era, where volatility itself becomes an evolving state variable rather than a static measure.
1. ATR Dynamics
Explore how ATR changes through time, not just what its value is.
- ATR Rate of Change (ATR-ROC): measures volatility momentum — how quickly the market’s amplitude is expanding or contracting.
- ATR Acceleration: the second derivative, highlighting early signs of volatility explosions or cool-offs.
2. Contextual Baselines
Define what “normal volatility” really means.
- Historical Average Comparison: relate current ATR to a rolling or long-term mean.
- Seasonal Baselines: compare against the typical ATR for the same hour-of-day or day-of-week.
- Median + MAD Bands: create robust volatility zones that ignore outliers and better represent common market rhythm.
3. Volatility Regime Mapping
Build a volatility state machine that classifies each bar into regimes such as:
- Quiet (low and stable)
- Awakening (volatility increasing)
- Stormy (high and expanding)
- Cool-down (high but contracting)
These regimes can be studied for persistence — for instance, measuring how many bars it takes to revert from a high-volatility spike back to baseline.
4. Practical Applications
Turn the theory into actionable trading logic:
- Adaptive position sizing and stop placement.
- Signal filtering: only trigger entries when volatility context is favorable.
- Regime-aware risk budgeting and dynamic leverage control.
Next Article: ATR Rate of Change – Detecting Volatility Momentum This follow-up will formalize volatility acceleration, visualize ATR surges across multiple timeframes, and show how these patterns can pre-empt directional breakouts.
Would you like me to format this as a full markdown document (with front-matter metadata like title, sidebar_position, and tags) so it’s ready to commit to your QLIR docs repo?