volatility
Volatility Measurement
Beginner
ATR

Average True Range

Measures market volatility as the average of true ranges, used for position sizing, stop placement, and volatility filtering.

Overview

Average True Range (ATR) was developed by J. Welles Wilder Jr. in 1978. It measures how much an asset moves on average, accounting for gaps between sessions. The "True Range" expands the concept of daily range to include any gap from the prior close. ATR is not a directional indicator — it only measures how volatile the market is. It is one of the most practically useful indicators for risk management.

How it looks on a chart

Illustration only — synthetic data generated for visual reference.

Beginner

ATR tells you how much an asset typically moves in a day. If a stock has an ATR of $2.50, it moves about $2.50 from high to low on an average day. This is incredibly useful for placing stop-losses: instead of using an arbitrary stop of $1, you can place your stop at 1.5× or 2× ATR below your entry — a level that accounts for the asset's normal daily swings. A rising ATR means volatility is increasing — the market is becoming more active. A falling ATR means volatility is declining — the market is quieting down. Breakouts from very low ATR periods (volatility squeezes) often lead to powerful directional moves. ATR also helps with position sizing. To risk $500 on a trade, with an ATR of $2.50 and a stop at 2× ATR ($5), you would buy 100 shares ($500 / $5). This ensures you risk the same dollar amount regardless of which stock you trade, keeping your overall portfolio risk consistent.

Intermediate

True Range is defined as the maximum of: (High − Low), |High − Prior Close|, |Low − Prior Close|. The third components capture gaps — if a stock opens significantly higher or lower, that gap is part of the range. ATR is the Wilder-smoothed average of True Range: ATR(t) = (ATR(t-1) × (n-1) + TR(t)) / n, initialized with a simple average of the first n True Ranges. The most common period is 14, giving approximately a 2-week average of daily ranges. Shorter periods (7, 10) react faster to volatility changes. For position sizing in systematic strategies, a 20 or 22-day ATR is often preferred as it matches a trading month. Volatility-adjusted position sizing using ATR (risk per share = ATR × multiplier) is used by many professional systematic traders, including trend-following CTAs. By normalizing position size to ATR, each position contributes roughly equal volatility to the portfolio, preventing any single asset from dominating risk.

Advanced

ATR is a robust, non-parametric measure of volatility because it does not assume any distributional form. Compared to realized volatility (calculated from log returns), ATR is more intuitive and less sensitive to intraday data gaps in daily bar data. However, ATR tends to be a smoother estimator and reacts more slowly to sudden volatility spikes. The Garman-Klass and Yang-Zhang volatility estimators use OHLC data like ATR but produce statistically more efficient estimates of daily volatility. Yang-Zhang is particularly useful because it accounts for both overnight gaps and intraday price movements separately, yielding up to 7× more efficiency than close-to-close volatility estimators. In regime detection, normalized ATR (current ATR / long-term average ATR) is a powerful feature. Systematic strategies consistently show that entry signals have higher accuracy when current ATR is close to its historical average (40th–60th percentile) versus very high or very low. High-ATR environments introduce more noise; very low-ATR environments may signal pre-breakout compression.

Formula

True Range = max(High − Low, |High − Prev Close|, |Low − Prev Close|)
ATR(t) = (ATR(t−1) × (n−1) + TR(t)) / n
  1. 1.For each bar, calculate three values: High−Low, |High−Prev Close|, |Low−Prev Close|.
  2. 2.True Range = the maximum of the three values.
  3. 3.Initialize ATR as the simple average of the first n True Ranges.
  4. 4.Apply Wilder's smoothing: ATR(t) = (ATR(t−1) × (n−1) + TR(t)) / n.
  5. 5.Use ATR for stop placement (e.g., entry − 2 × ATR), position sizing, or volatility filtering.

Parameters

ParameterDefaultRangeDescription
Period14250Smoothing period for averaging true ranges.
Multiplier20.55ATR multiple used for stop-loss distance calculation.

Trading signals

neutral: ATR rising sharply

Volatility increasing — widen stops, reduce position size, expect larger moves.

neutral: ATR at multi-month low (volatility compression)

Volatility squeeze — potential for impending large breakout move.

bullish: Breakout from consolidation with rising ATR

Volume and range expanding on upside — breakout has conviction.

bearish: Rally with falling ATR

Advance losing energy — diminishing range may signal move is exhausting.

Limitations

  • Non-directional — ATR only measures magnitude of moves, not direction.
  • Based on Wilder's smoothing which reacts slowly to sudden volatility spikes.
  • Single large gap or spike can distort ATR for many periods afterward.
  • Does not distinguish between gap volatility and intraday range volatility.
How Gilito AI uses ATR

ATR is a core building block across Gilito's entire strategy library — it is used for volatility-normalized position sizing in every strategy type, for dynamic stop-loss placement (1×, 1.5×, 2×, 3× ATR), and as a volatility regime filter that scales strategy exposure based on current-to-historical ATR ratios. All 2M+ daily strategy tests incorporate ATR-based risk management.

Related indicators