Direct answer
ATR (Average True Range) is a volatility indicator used in forex to estimate how much price typically moves over a chosen number of periods. It works by first computing a “true range” for each period, then smoothing those true-range values into an average. The resulting ATR value is a scale of recent movement magnitude, not a forecast and not a standalone trade trigger.
Mechanism and definition
To understand how ATR works, start with its inputs and sequence.
1) Define the per-period “true range”
For each period t, ATR begins with the true range (TR), which takes the largest of three absolute distance calculations:
- Range within the period: ( |High_t - Low_t| )
- Gap from previous close to current high: ( |High_t - Close_{t-1}| )
- Gap from previous close to current low: ( |Low_t - Close_{t-1}| )
Intuition: TR measures the most significant price movement implied by either the current period’s own trading range or a move relative to the prior close.
2) Turn TR into ATR with smoothing over a period length
ATR then averages TR over a specified lookback length N (for example, 14 periods are commonly used as a starting point in general discussions). Different platforms may implement smoothing slightly differently, but the conceptual goal is the same: produce an averaged measure of recent true range.
In one widely described form, the ATR for the next step is updated by combining the prior ATR with the latest TR, which helps reduce abrupt jumps that would occur if you used a simple average of raw TR values.
3) Output: a volatility scale, not a direction
ATR outputs a single number per point in time (per symbol and timeframe). That number represents a magnitude of typical movement based on recent price behavior. It does not encode whether price is likely to rise or fall.
Inputs, outputs, and a simple worked example
Inputs you need
- OHLC prices for each period: High, Low, and Close.
- The previous period’s close to compute the two cross-period distances.
- A lookback length N that controls how “quickly” ATR responds.
Output you get
- ATR value that changes over time with volatility.
Example sequence (assumptions explicit)
Assume you are using 1-period candles (timeframe defined by your chart), and you compute true range at period t using the three distances above.
Let:
- (High_t = 1.1050)
- (Low_t = 1.1000)
- (Close_{t-1} = 1.1020)
Compute:
- ( |High_t - Low_t| = |1.1050 - 1.1000| = 0.0050 )
- ( |High_t - Close_{t-1}| = |1.1050 - 1.1020| = 0.0030 )
- ( |Low_t - Close_{t-1}| = |1.1000 - 1.1020| = 0.0020 )
Then:
- TR_t is the maximum of {0.0050, 0.0030, 0.0020} → (TR_t = 0.0050).
After repeating this for the previous N periods, ATR is formed by averaging or smoothing those TR values into a single ATR estimate.
How to interpret that output in forex terms
If your ATR reading is higher than it was earlier, it suggests that recent candles contained larger true-range moves. If ATR is lower, it suggests smaller typical movement. This is a description of magnitude, not an implied future direction.
Limitations and risks (what can go wrong)
1) ATR is sensitive to the timeframe and period length
ATR changes when you change the candle timeframe (e.g., minutes vs. hours) and when you change N. A faster setting may respond quickly to volatility shifts; a slower setting may lag. Either way, the indicator is measuring volatility for the chosen settings.
2) ATR is not a price direction or entry signal
Because ATR only estimates movement magnitude, it cannot, by itself, answer “will price go up or down?” Treating it as a standalone trade trigger can lead to confusing results.
3) Volatility regimes can change
Markets often alternate between higher-volatility and lower-volatility periods. ATR reflects recent history more than older history, so sudden regime shifts can make ATR appear “wrong” compared with what you expected.
4) Costs and execution can dominate outcomes
Even if ATR describes movement size well, actual trading outcomes depend on execution quality, transaction costs, and spreads. These factors can be significant relative to the movement scale you think ATR is capturing.
Verification and next question
You can independently verify the core mechanics in two ways:
- Compute TR manually from OHLC values (High, Low, and previous close) and confirm that TR uses the maximum of the three distances.
- Compare ATR values across platforms using the same symbol, timeframe, and period length; differences may arise from how smoothing is implemented.
If you want a next step, the most useful question is: How should ATR be interpreted on your chosen timeframe, given your period length and the way your platform smooths TR into ATR?