ADX Above 25: Does It Really Mean a Trend? 324 Signals Tested

Key takeaways
- The rule everybody teaches, only trade when ADX is above 25, made my test system worse, not better: win rate fell from 44.8% to 40.9% and the average trade went from -0.72 to -1.21 pips.
- The threshold that helped was 20, not 25. ADX above 20 was the only filter that turned the average trade positive at +0.11 pips across 150 signals.
- ADX above 25 happens only 35.8% of the time on EURUSD 5-minute bars. The filter throws away four signals out of five and the ones it keeps are not better.
- Where ADX did earn its place: filtering DI crossovers. Those went from -0.69 pips to +0.15 once ADX above 25 was required.
ADX above 25 does not mean a tradable trend on EURUSD 5-minute charts. I ran the exact rule across 16,926 real bars from June 3 to August 26, 2026, and the filter made an EMA 12/26 crossover system lose more per trade than no filter at all. The number 25 is a convention inherited from Welles Wilder’s daily charts in 1978, and on intraday forex data it lands in the wrong place.
How was the ADX filter tested?
Same dataset and same measurement rules as my moving average crossover test and my Stochastic overbought test, so all three are directly comparable.
- Base system: EMA 12/26 crossover. Fast closes above slow is a long, below is a short. No discretion.
- Filter: the signal is only taken if ADX(14) is above the threshold on that bar. Everything else is skipped.
- Measurement: the move in pips two hours after entry, in the signal direction. No stop, no target, so the number describes the signal itself.
- Overlap rule: after a signal the clock skips forward by the hold length, so a single move is never counted twice.
What happened at each ADX threshold?
| Filter | Signals | Win rate | Avg pips |
|---|---|---|---|
| No filter | 324 | 44.8% | -0.72 |
| ADX > 15 | 247 | 44.1% | -0.63 |
| ADX > 20 | 150 | 44.0% | +0.11 |
| ADX > 25 | 66 | 40.9% | -1.21 |
| ADX > 30 | 22 | 54.5% | +3.50 |
| ADX > 35 | 7 | 57.1% | -3.71 |
Read the signal column before the win rate column. Above 30 the sample collapses to 22 trades and above 35 to seven, which is storytelling, not evidence. The last two rows are noise wearing a good win rate. The only row with both a workable sample and a positive average is ADX above 20.
Why does the famous 25 line fail here?
Because ADX above 25 is not rare enough to be selective and not common enough to keep a sample. On this data ADX sat above 25 for 35.8% of all bars, above 30 for 21.9% and above 40 for just 7.0%. The median reading was 21.3 and the mean 23.5.
| ADX reading | Share of bars |
|---|---|
| Above 25 | 35.8% |
| Above 30 | 21.9% |
| Above 40 | 7.0% |
| Median reading | 21.3 |
| Highest reading in the window | 68.8 |
The deeper problem is timing. ADX is a smoothed average of a smoothed average, so it confirms a trend that has already been running. By the time the line crosses 25 on a 5-minute chart, a decent part of the move is behind you. That is the same lag trap I found when an EMA 200 filter made crossovers worse instead of better, described in the crossover test.
Where did ADX actually help?
On DI crossovers, which are part of the same indicator and are usually ignored in favour of the ADX line alone.
| DI crossover system | Signals | Win rate | Avg pips |
|---|---|---|---|
| +DI crosses -DI, no filter | 427 | 42.9% | -0.69 |
| Same, only when ADX > 25 | 130 | 43.1% | +0.15 |
That is the honest use of the indicator: ADX is a strength gauge for its own direction lines, not a universal permission slip for someone else’s system. The win rate barely moved, so the gain came from bigger winners, not from more of them.
Does the holding time change the answer?
Yes, and more than the threshold does. Holding the ADX above 25 signals for eight hours instead of two turned the same entries from losing to clearly profitable. Read the next table with the same suspicion I applied to the threshold table, though — the sample thins out as the hold lengthens.
| Hold time | Signals | Win rate | Avg pips |
|---|---|---|---|
| 30 minutes | 75 | 36.0% | -0.48 |
| 1 hour | 72 | 45.8% | +0.80 |
| 2 hours | 66 | 40.9% | -1.21 |
| 4 hours | 61 | 45.9% | -0.65 |
| 8 hours | 51 | 58.8% | +3.15 |
Now the honest caveat, and I would rather write it than have you find it. The eight hour row rests on 51 trades, and the column above it does not move smoothly: +0.80 at one hour, -1.21 at two, -0.65 at four, then +3.15 at eight. A sign that flips three times before landing on the best number is exactly the pattern I called noise a few sections ago when it appeared in the 22-trade row, and it would be dishonest to apply that standard to the threshold table and not to this one. Treat +3.15 as a direction worth testing on more data, not as a figure to size positions from.
What survives that caveat is the shape rather than the number. If ADX is telling you a trend is in force, cutting the trade at two hours contradicts the very thing you filtered for. The same asymmetry showed up in my Stochastic against RSI comparison, where short holds flattered the oscillator and long holds flattered the trend.
What I would actually do with this
- Drop 25 as a default. On 5-minute EURUSD, 20 was the useful line in this window and 25 was actively harmful.
- Match the hold to the claim. Filtering for trend and exiting in 30 minutes is self-contradictory. The eight-hour column is where the filter paid.
- Use ADX with DI, not instead of it. That combination was the only one where adding ADX improved a system rather than shrinking it.
- Check what a filter costs you. ADX above 25 removed 258 of 324 signals. A filter that expensive has to earn a lot, and this one earned nothing.
Frequently asked questions
Is ADX above 25 wrong on all timeframes?
I only measured EURUSD 5-minute bars over this window. Wilder designed the 25 line for daily charts, where a reading is built from 14 days rather than 70 minutes, so the threshold is likely closer to right there. The lesson that travels is to test the number on your own timeframe instead of inheriting it.
Does ADX tell me the direction of the trend?
No. ADX measures strength only and is always positive. Direction comes from the +DI and -DI lines, or from price against a moving average, covered in my moving average settings guide.
Why is the win rate below 50% everywhere?
Because I measure a fixed hold with no stop and no target, which is deliberately unflattering. It isolates the signal from money management. A system with a 44% win rate can still be profitable with the right payoff ratio, as the eight-hour row shows.
Should I combine ADX with another filter?
I tested that too. Stacking a Supertrend filter on top of ADX made the result worse again, and the full comparison is in my ADX against Supertrend article. Practical settings for MT5 without overtrading are in the ADX guide.
What data was this run on?
16,926 EURUSD 5-minute bars, June 3 to August 26, 2026, the same set behind my Bollinger squeeze test, my Fibonacci retracement test and my session hours study.
Want a clean indicator to install right now?
It is my own enhanced DeMARK Trend Line indicator for MetaTrader 4 and 5. Non repaint, clean, and free.

