ADX Explained — Measuring Trend Strength
ADX (Average Directional Index) measures how strong a trend is — not its direction. It runs 0–100. Below 20 = no trend, the market is chopping. 20–40 = trend is developing or in place. Above 40 = strong trend (rare, don't expect it often). ADX is best used as a regime filter to decide whether to run trend-following or mean-reversion strategies.
How ADX is built
ADX is part of Wilder's Directional Movement System, which also gives you two direction indicators:
- +DI (Plus Directional Indicator) — measures upward directional movement
- −DI (Minus Directional Indicator) — measures downward directional movement
- ADX — the smoothed absolute difference between +DI and −DI
When +DI > −DI, the trend is up. When −DI > +DI, it's down. ADX tells you how strong the dominant direction is.
Practical interpretation
| ADX reading | Interpretation |
|---|---|
| < 20 | No trend. Range-bound. Avoid trend strategies, favor mean reversion. |
| 20–25 | Trend is emerging. Use carefully. |
| 25–40 | Established trend. Favor trend strategies. |
| > 40 | Strong trend. Don't fade it. |
| > 50 | Extreme trend. Often late — momentum is exhausting. |
ADX is not bounded at 40 or 50, but in liquid futures you rarely see sustained readings above 50. When you do, it's usually newsflow.
The signals ADX gives you
1. Regime filter. Most powerful use. Only run your MA crossover strategy when ADX > 20. Only run your mean reversion setup when ADX < 20. One rule, massive impact on performance.
2. DI crossovers. +DI crossing above −DI = bullish momentum shift. Crossing below = bearish. Noisy on their own — pair with ADX > 20 as a confirmation filter.
3. ADX rising vs falling. A rising ADX = trend is strengthening. A falling ADX = trend is losing momentum, even if price is still moving. This divergence often precedes reversals.
ADX in Pine Script (v6)
//@version=6
indicator("ADX + DI Alerts", overlay=false)
length = input.int(14, "DI Length")
adxLen = input.int(14, "ADX Smoothing")
[diPlus, diMinus, adxVal] = ta.dmi(length, adxLen)
plot(adxVal, color=color.orange, title="ADX", linewidth=2)
plot(diPlus, color=color.green, title="+DI")
plot(diMinus, color=color.red, title="-DI")
hline(20, "Weak/Strong threshold", color=color.gray)
hline(40, "Strong trend", color=color.gray)
bullTrend = ta.crossover(diPlus, diMinus) and adxVal > 20
bearTrend = ta.crossunder(diPlus, diMinus) and adxVal > 20
if bullTrend
alert("ADX bullish trend signal on " + syminfo.ticker, alert.freq_once_per_bar_close)
if bearTrend
alert("ADX bearish trend signal on " + syminfo.ticker, alert.freq_once_per_bar_close)
Common mistakes
- Treating ADX as direction. It is not. ADX only measures strength. +DI vs. −DI gives direction.
- Setting the threshold too high. Waiting for ADX > 30 on intraday charts will filter out most valid trends. 20 is the common threshold — 25 if you want to be stricter.
- Using ADX alone for entries. It's a filter, not a signal. The entry should come from price action, crossovers, or breakouts — ADX just tells you whether the regime supports the trade.
How ADX changes other strategies
- Add ADX > 20 to any moving-average crossover strategy. Win rate typically jumps 5–10 percentage points because you skip the chop.
- Add ADX < 20 to any Bollinger Band reversion strategy. Same idea — don't fade when a trend is underway.
Frequently Asked Questions
What does a high ADX mean?
A strong trend — whether up or down. ADX only measures trend strength, not direction. To see direction, look at whether +DI is above or below −DI.
What's a good ADX setting?
The default 14-period ADX works on every timeframe. Tightening to 7 makes it faster and noisier; widening to 21 makes it slower. 14 is the standard.
Can ADX predict reversals?
Indirectly. A falling ADX while price is still trending often precedes a reversal — momentum is leaking before price confirms. But ADX alone doesn't call tops or bottoms; pair with divergence or structure signals.
ADX vs. moving average — which tells me more about trend?
Different tools. A moving average tells you trend direction at a glance. ADX tells you trend strength. Use both: MA for direction, ADX for whether the trend is strong enough to trade.