ADX measures how strong the prevailing trend is, regardless of direction. It comes paired with two directional indicators (DI+ and DI-) that tell you which side is winning. Together they decide both "is there a trend?" and "which way?"
Formula
ADX is built from smoothed directional movement. Full derivation is Wilder's original 1978 description; intuitively:
+DM = max(0, high[t] - high[t-1]) (when up move > down move)
-DM = max(0, low[t-1] - low[t]) (when down move > up move)
+DI = 100 * EMA(+DM, period) / ATR(period)
-DI = 100 * EMA(-DM, period) / ATR(period)
DX = 100 * |+DI - -DI| / (+DI + -DI)
ADX = EMA(DX, period)Params
period- smoothing window. Default 14.
Output
Three columns:
{name}- ADX itself (trend strength){name}_plus- DI+ (bull directional component){name}_minus- DI- (bear directional component)
Common thresholds
| ADX value | Meaning |
|---|---|
| < 20 | No trend (range / chop) |
| 20-25 | Emerging trend |
| > 25 | Established trend |
| > 40 | Very strong trend |
Usage
- Regime filter: only trade trend-following setups when
adx > 25; only trade mean-reversion whenadx < 20. - Direction: bull when
adx_plus > adx_minus, bear otherwise. - Trend onset: ADX crossing 20 from below often marks the start of a directional move.
Pitfalls
- ADX lags. By the time it confirms a trend, you've often missed the first leg.
- ADX doesn't tell you which way. Without DI+ / DI- comparison, a high ADX value is direction-agnostic.
