Indicators

Average Directional Index (ADX)

0-100 measure of trend strength. The classic regime filter.

1 min readUpdated Jun 19, 2026

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 valueMeaning
< 20No trend (range / chop)
20-25Emerging trend
> 25Established trend
> 40Very strong trend

Usage

  • Regime filter: only trade trend-following setups when adx > 25; only trade mean-reversion when adx < 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.
Average Directional Index (ADX) | Help Center | LucraX · LucraX