ADX Trend Strength
Trade directional moves only when ADX says the trend is strong enough to matter.
Understand what this strategy is actually betting on before you touch the parameter panel.
Read the model brief like a skeptic
Strategy families & selection
Validation & skepticism
Pro Access
ADX Trend Strength is part of the expanded Pro strategy library. The guide stays public, but running it in backtest, compare, paper tracking, and source-code view is a Pro capability. Pro currently unlocks 8 additional pre-built strategies.
The Intuition
ADX was designed by J. Welles Wilder to answer a different question from most indicators: not "which way is price moving?" but "is the move strong enough to trust?" That distinction matters because many trend rules fail not on direction, but on entering when the market is still choppy.
This version combines ADX with directional movement. +DI above -DI says buyers currently dominate the directional range expansion. -DI above +DI says sellers dominate. ADX above a threshold says that dominance is no longer trivial noise. The strategy only takes exposure when both conditions line up.
The core assumption is that strong trends persist longer than weak ones. ADX is useful because it filters out many low-conviction crossover signals that appear inside sideways markets. In practice, traders often use the 20-25 region as the boundary between "possible drift" and "meaningful trend."
The main failure mode is late entry. ADX rises after the move has already started, so the filter improves signal quality by sacrificing reactivity. It also struggles in sudden reversals, where the market flips direction faster than the smoothed strength estimate can adjust.
The Math
Read this as a compact model summary: what the signal sees, what it ignores, and where fragility can creep in.
+DM(t) = max(High(t) - High(t-1), 0) if it dominates -DM
-DM(t) = max(Low(t-1) - Low(t), 0) if it dominates +DM
TR(t) = max(High-Low, |High-Prev_Close|, |Low-Prev_Close|)
+DI(t) = 100 × WilderMean(+DM, n) / WilderMean(TR, n)
-DI(t) = 100 × WilderMean(-DM, n) / WilderMean(TR, n)
DX(t) = 100 × |+DI(t) - -DI(t)| / (+DI(t) + -DI(t))
ADX(t) = WilderMean(DX, n)
Signal(t) = +1 if ADX(t) ≥ threshold AND +DI(t) > -DI(t)
= -1 if ADX(t) ≥ threshold AND -DI(t) > +DI(t)
= 0 otherwise
Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
| window | int | 14 | ADX lookback window |
| adx_threshold | float | 25.0 | Minimum ADX needed to activate a trend trade |
Source Code
Source access for this built-in strategy is included with Pro.
Further Reading
- Wilder, J.W. (1978). New Concepts in Technical Trading Systems. Trend Research.
- Kaufman, P. (2013). Trading Systems and Methods, 5th ed. Wiley.
- Pardo, R. (2008). The Evaluation and Optimization of Trading Strategies. Wiley.
Related Momentum Strategies
Use nearby strategies to compare the same market hypothesis under different signal constructions.