TickAtlas
volatility 10 min read Updated 2026-03-21

Average True Range (ATR)

ATR measures market volatility by calculating the average of the true range over a specified period. It does not indicate direction — only the degree of price movement.

TL;DR

  • ATR is a volatility indicator used in technical analysis
  • Higher ATR = more volatile market. Lower ATR = quieter market. Used primarily for stop-loss placement and position sizing.
  • Best timeframes: H1, H4, D1
  • Skip to API docs →

What is Average True Range?

ATR measures market volatility by calculating the average of the true range over a specified period. It does not indicate direction — only the degree of price movement.

How ATR is Calculated

formula
True Range = max(High-Low, |High-Close(prev)|, |Low-Close(prev)|)
ATR = SMA(True Range, n)

Available periods: 7, 14

How to Interpret ATR

Higher ATR = more volatile market. Lower ATR = quieter market. Used primarily for stop-loss placement and position sizing.

Trading Strategies Using ATR

Strategy 1: ATR-Based Stop Loss

Use ATR to set adaptive stop losses based on current volatility.

Entry Rules

Enter based on other signals. Set stop loss at 1.5× to 2× ATR from entry.

Exit Rules

Trail stop using 2× ATR. Adjust position size so risk = ATR × multiplier.

Combining ATR with Other Indicators

ATR works best when combined with complementary indicators:

  • ATR + Bollinger Bands: Combine for stronger confluence signals
  • ATR + Standard Deviation: Combine for stronger confluence signals
  • ATR + Parabolic SAR: Combine for stronger confluence signals

ATR Across Different Timeframes

ATR works across all 7 timeframes but performs best on H1, H4, D1 for most trading styles.

H1 H4 D1

Learn about all 7 timeframes →

Accessing ATR via TickAtlas API

GET https://tickatlas.com/v1/indicator

Python Example

python
import requests

url = "https://tickatlas.com/v1/indicator"
headers = {"X-API-Key": "YOUR_API_KEY"}
params = {
  "symbol": "EURUSD",
  "indicator": "ATR_14",
  "timeframe": "H1"
}

response = requests.get(url, headers=headers, params=params)
data = response.json()
print(data)

Sample Response

200 OK
{
  "symbol": "EURUSD",
  "indicator": "ATR_14",
  "timeframe": "H1",
  "timestamp": "2026-03-21T14:00:00Z",
  "value": 58.43,
  "signal": "neutral"
}

Common Mistakes to Avoid

  1. 1

    Using ATR to predict price direction — it only measures volatility magnitude

  2. 2

    Setting fixed stop losses instead of ATR-adjusted ones

  3. 3

    Not adjusting position size based on ATR

Frequently Asked Questions

How do I use ATR for position sizing?

Calculate risk per trade as ATR × multiplier (e.g., 2× ATR). Then: Position Size = (Account Risk $) / (ATR × multiplier). This ensures each trade risks the same dollar amount regardless of volatility.

Continue learning

Ready to use ATR data in your application?

Start your free trial and access real-time ATR data across 7 timeframes.