Direct answer: what “average true range” means in forex
Average True Range (ATR) is a volatility measure based on the average of the True Range (TR) over a chosen number of periods. In forex, you calculate TR from the current period’s high and low and the previous period’s close, using the same definition used for other liquid markets.
To calculate ATR:
- compute TR for each period using the three-part rule below,
- average TR over a lookback window (often using a standard smoothing method).
Explanation: the mechanics and inputs
1) Define True Range (TR) for each period
For each period (for example, each candle on your selected timeframe), you use:
- High = highest price during the period
- Low = lowest price during the period
- Previous Close = closing price from the prior period
Compute TR as the maximum of:
- (High − Low)
- abs(High − Previous Close)
- abs(Low − Previous Close)
Why this matters: the three terms capture whether volatility comes from the current candle’s range or from gaps/jumps relative to the prior close. Even though forex is often traded continuously, the “previous close” reference still anchors the comparison.
2) Compute ATR from TR
There are two common ways to form ATR from TR over N periods:
- Simple moving average approach: ATR at time t is the arithmetic mean of the last N TR values.
- Wilder-style smoothing approach: ATR is computed recursively using a smoothing factor, using the prior ATR and the current TR. This produces a “smoothed” ATR series that reacts gradually.
The exact choice (simple average vs smoothing) changes the ATR values, so record which method you use when verifying results.
3) Choose timeframe and data consistency
ATR depends on the candle timeframe you use (e.g., 1-hour vs 4-hour). Also, ensure the OHLC inputs (high, low, close) are from the same feed and the same session/timezone rules across periods.
Example and checks you can do without guessing
Here is a concrete way to verify the calculation for a single period.
Assume for period t:
- High = 1.1050
- Low = 1.1010
- Previous Close = 1.1020
Step A: compute the three TR candidates:
- High − Low = 1.1050 − 1.1010 = 0.0040
- abs(High − Previous Close) = abs(1.1050 − 1.1020) = 0.0030
- abs(Low − Previous Close) = abs(1.1010 − 1.1020) = 0.0010
Step B: take the maximum:
- TR = max(0.0040, 0.0030, 0.0010) = 0.0040
Step C: compute ATR over N periods
- If using a simple average over N, average the last N TR values.
- If using smoothing, apply the chosen recursive rule using prior ATR and current TR.
Verification checks:
- TR should never be negative.
- ATR should reflect the average magnitude of TR; if TR spikes repeatedly, ATR should typically rise.
- Recompute TR for a few periods and confirm the tool/formula matches your manual math.
Limitations, uncertainties, and risks of misinterpretation
- Timeframe sensitivity: ATR changes with your chosen candle timeframe. The same currency pair can show different ATR levels on different time compressions.
- Method sensitivity: results depend on whether you use a simple average or a smoothing method, and on the lookback length N.
- Volatility, not direction: ATR measures volatility magnitude, not price direction. A rising ATR does not by itself indicate bullish or bearish movement.
- Data and “period boundaries”: different brokers or data vendors may define candles using different session boundaries and timezone handling. Small input differences can change TR and therefore ATR.
Because of these dependencies, treat ATR as a calculated indicator of realized movement size over a specified window—not as a guaranteed forward-looking outcome.