Average Directional Index (ADX)
ADX measures the strength of a trend (not its direction). Values range from 0 to 100, with readings above 25 indicating a strong trend. It is derived from the directional movement indicators +DI and -DI.
Formula
DX = 100 × |DI_plus − DI_minus| / (DI_plus + DI_minus) First ADX = average of the first N DX values Next ADX = ((previous ADX × (N − 1)) + current DX) / N DI_plus (+DI) and DI_minus (−DI) use Wilder-smoothed directional movement and true range; N is usually 14.
Method: Fidelity: Directional Movement Index calculation
Common strategies
- Trend strength: ADX > 25 indicates a strong trend (use trend-following strategies); ADX < 20 suggests a ranging market (avoid trend strategies).
- DI crossover: +DI crossing above -DI is bullish; -DI crossing above +DI is bearish — confirmed by rising ADX.
- ADX rising: A rising ADX (regardless of value) signals strengthening trend momentum.
How CommonQuant uses it
CommonQuant pre-calculates ADX(14) along with +DI and -DI on all timeframes. DSL strategies can reference adx(), adx_plus_di(), and adx_minus_di() functions.
Frequently asked questions
Does ADX tell you trend direction?
No. ADX only measures trend strength. To determine direction, look at the +DI and -DI lines: +DI above -DI is bullish, -DI above +DI is bearish.
What is a good ADX threshold?
ADX > 25 is generally considered a strong trend. ADX < 20 indicates a weak or ranging market. Some traders use 20-25 as a transitional zone where trend is building.
How is ADX calculated from DX?
First average N DX readings. After that, smooth each new DX with Wilder’s formula: ((prior ADX × (N − 1)) + current DX) / N. In a two-period teaching example, DX readings of 100, 0, 50, and 75 produce ADX readings of 50, 50, and 62.5. A 14-period window is more typical.