Introduction
The Average Directional Movement Index (ADX) is a technical analysis tool that quantifies trend strength without indicating direction. Derived from the Directional Movement Indicator (DMI), it helps traders differentiate between trending and ranging markets, informing strategic decisions.
History and Origin
Developed by J. Welles Wilder Jr. in 1978, the ADX debuted in his book New Concepts in Technical Trading Systems. Wilder’s engineering background influenced its objective, math-driven approach to trend analysis.
ADX Indicator Formula
1. Calculate True Range (TR)
TR = max(High – Low, |High – Close_prev|, |Low – Close_prev|) 2. Directional Movement (±DM)
- +DM: Current High − Previous High (if > Previous Low − Current Low)
- −DM: Previous Low − Current Low (if > Current High − Previous High)
3. Smoothed Averages (Wilder’s Method)
Smoothed Value = [Previous Smoothed × (N−1) + Current Value] / N Applied to TR, +DM, and −DM over 14 periods (default).
4. Directional Indicators (±DI)
±DI = (Smoothed ±DM / ATR) × 100 5. Directional Movement Index (DX)
DX = (|+DI − −DI| / (+DI + −DI)) × 100 6. ADX Calculation
ADX = Smoothed average of DX over N periods ADX vs. ADXATR
| Metric | Purpose | Calculation |
|----------------|--------------------------|-------------------------|
| ADX | Trend strength | Smoothed DX |
| ADXATR | Volatility (≡ ATR) | Smoothed TR |
Trading Strategies
- Breakout Confirmation: ADX > 25 signals strong trend entry.
- Trend Exhaustion: ADX > 45 + downturn suggests exit.
- DMI Crossover: ADX crossing ±DI confirms trend direction.
- Range-Bound: Low ADX (<20) favors mean-reversion strategies.
Pros:
- Agnostic to trend direction.
- Effective noise filter.
- Works across stocks, forex, commodities.
Cons:
- Lagging indicator.
- Requires complementary tools for direction.
Python Implementation
import pandas as pd
import yfinance as yf
def wilder_smoothing(series, window=14):
smoothed = series.ewm(alpha=1/window, adjust=False).mean()
return smoothed
def calculate_adx(data, window=14):
# Calculate TR, ±DM, ±DI, DX, ADX
... # Refer to full code in original article Output:
Day Trading Adjustments
- Shorter windows (e.g., 7-period) for responsiveness.
Combine with:
- Stochastic RSI (5-period) for overbought/oversold signals.
- EMA (9-period) for trend direction.
FAQs
Q1. What does ADX > 25 mean?
Strong trend—ideal for trend-following strategies.
Q2. Can ADX predict reversals?
No. Use with oscillators like RSI for reversal clues.
Q3. Best ADX setting for scalping?
Try 5–7 periods + 5-minute charts.
Key Takeaways
- ADX measures trend strength, not direction.
- Wilder’s smoothing reduces noise.
- Pair with ±DI or MACD for directional bias.
- Adapt parameters (e.g., 7-period) for day trading.
👉 Master ADX strategies with this advanced guide
Further Reading:
- Wilder’s New Concepts... (1978)
- Murphy’s Technical Analysis... (1999)