ADX DI Crossover Tested: 1,618 Crosses, All 40 Classic Setups Lost, and ADX Was Falling at 90% of Them

Key takeaways
- I tested the +DI / -DI crossover from the ADX indicator on 16,926 EURUSD 5-minute bars: five DMI periods, eight ADX filters, two exits — 80 setups, every trade paying a 1-pip cost.
- The classic way to trade it — enter on the cross, reverse on the opposite cross — lost money in all 40 setups. The default period 14 lost 1.33 pips per trade over 1,617 trades, and it was already losing 0.33 pips before any cost.
- The lines crossed 1,618 times, about 27 times a day. 41.8% of crosses were undone within three bars.
- A correction. On September 2 I wrote that an ADX above 25 turned the DI cross from -0.69 into +0.15 pips a trade. The same test reproduces exactly — but with a 1-pip spread it is -0.85.
- “Wait for ADX to be above 25 and rising” almost never happens at a cross: 6 times in 1,618. At the moment the DI lines meet, ADX is falling 90% of the time.
The ADX indicator is three lines, and most people only look at one of them. The ADX line itself measures how strong a move is. The other two, +DI and -DI, measure which side is winning — and when they cross, that is the oldest signal in J. Welles Wilder’s system: +DI crossing above -DI is a buy, below is a sell.
Most strategy pages add one condition: only take the cross when ADX says there is a trend, usually above 25. I have written that myself. This test checks it properly, with the spread included and with the exit most traders actually use.
How was the DI crossover tested?

The data is 16,926 EURUSD 5-minute bars from June 3 to August 26, 2026 — the same bars as my ADX above 25 test and my MACD crossover test, so the results line up with those.
- Signal: +DI closes above -DI — buy; +DI closes below -DI — sell. Wilder’s formula, the same one MetaTrader uses for its built-in ADX.
- DMI periods: 7, 10, 14 (default), 21 and 28.
- ADX filters: none; ADX above 20, 25 or 30; ADX rising; ADX above 25 and rising; ADX above both DI lines; and the mirror, ADX below 20.
- Exit A — reverse: hold until the DI lines cross back the other way. This is how the system is usually traded.
- Exit B — two hours: close after 24 bars, whatever happened. This is the exit from my September 2 test.
- Cost: 1 pip per trade, the EURUSD cost from my spread and swap test. One position at a time.
Five periods times eight filters times two exits gives 80 setups. The data was also split at July 15 into two halves to see whether any winner held in both.
Does the DI crossover make money?

Not the way it is normally traded. Here is the default period 14 with the reverse exit:
| DMI 14, reverse on opposite cross | Trades | Win rate | Avg win | Avg loss | Gross per trade | Net per trade | Net pips |
|---|---|---|---|---|---|---|---|
| No filter | 1,617 | 21.8% | 6.73 | -3.57 | -0.33 | -1.33 | -2,149.6 |
| ADX above 20 | 506 | 21.9% | 8.64 | -4.04 | -0.26 | -1.26 | -635.8 |
| ADX above 25 | 199 | 22.1% | 7.60 | -4.58 | -0.89 | -1.89 | -375.4 |
| ADX above 30 | 81 | 30.9% | 10.22 | -5.19 | +0.56 | -0.44 | -35.3 |
| ADX rising | 157 | 26.1% | 7.36 | -4.84 | -0.66 | -1.66 | -259.9 |
| ADX above both DI lines | 63 | 20.6% | 9.24 | -4.04 | -0.30 | -1.30 | -82.1 |
| ADX below 20 | 1,111 | 21.7% | 5.86 | -3.36 | -0.36 | -1.36 | -1,513.8 |
Every row lost after the spread. Only one filter, ADX above 30, was positive before costs, and it produced 81 trades in almost three months — about one a day, and still negative in both halves (0.00 and -1.17).
Look at the win rate: about one trade in five. The DI system is a trend follower, so it is built to lose small and often and win big occasionally. The winners were indeed about twice the losers — 6.73 pips against 3.57 — but with only 21.8% winners that is not enough, even before the spread.
Across all five periods the picture was the same. None of the 40 setups with the reverse exit made money after costs. The best, period 14 with ADX above 30, lost 0.44 pips per trade.
Why does the DI crossover lose? Look at how often it fires
| DMI 14 crossovers, EURUSD M5 | Value |
|---|---|
| Crosses in the test | 1,618 |
| Crosses per trading day | 27.3 |
| Median time to the next cross | 5 bars (25 minutes) |
| Undone within 3 bars | 41.8% |
| Undone on the very next bar | 16.8% |
| Price move in the signal direction, 1 hour before the cross | +1.33 pips |
| Price move in the signal direction, 1 hour after the cross | -0.24 pips |
Two problems show up. The first is noise: on a 5-minute chart the DI lines sit close together most of the time, so they cross back and forth. Four crosses in ten were reversed within fifteen minutes, and each of those round trips paid the spread twice.
The second is lateness. In the hour before a cross, price had already moved 1.33 pips in the signal’s direction. In the hour after, it went 0.24 pips the other way. The cross confirms a move that has already happened. My RSI divergence test found the same pattern from the other side: 75% of the move was gone before the signal.
Does ADX above 25 fix the DI crossover?
This is the part I have to correct. On September 2, in the ADX above 25 test, I reported that DI crosses lost 0.69 pips a trade on their own and made +0.15 with an ADX above 25 filter. That test used the two-hour exit and no spread. Here it is again, rebuilt from scratch:
| DMI 14, exit after 2 hours | Trades | Win rate | No cost | With 1-pip cost |
|---|---|---|---|---|
| No filter | 419 | 43.9% | -0.95 | -1.95 |
| ADX above 25 | 130 | 43.1% | +0.15 | -0.85 |
The ADX above 25 row reproduces exactly: 130 trades, 43.1% winners, +0.15 pips. The filter did help — it cut the loss by more than half. But +0.15 pips is less than any real spread on EURUSD, so the honest line is: the ADX 25 filter makes the DI crossover lose less, not win.
The no-filter row came out at -0.95 here against -0.69 in the earlier version. The DI lines themselves are identical — all 1,618 crosses match. The difference is a one-bar rule for when the next trade may open: the earlier version allowed a new entry on the same bar the previous trade closed, this one waits one bar. With the filter on, that never came up, and the result is the same to the trade.
With the reverse exit the ADX 25 filter did not help at all: -1.89 pips against -1.33 unfiltered. That matches what I found in the ADX vs Supertrend filter test, where ADX above 25 doubled the loss of an EMA crossover.
When do ADX and the DI cross actually agree?
Many guides say to take the cross only when ADX is above 25 and rising. It sounds sensible. It almost never happens:
| At the bar of a DMI 14 cross | Crosses | Share |
|---|---|---|
| All crosses | 1,618 | 100% |
| ADX above 20 | 506 | 31.3% |
| ADX above 25 | 199 | 12.3% |
| ADX rising | 157 | 9.7% |
| ADX above 25 and rising | 6 | 0.4% |
This is not bad luck, it is the formula. ADX is a smoothed average of the gap between +DI and -DI. At the bar where the two lines cross, that gap is zero, so the value being added to the average is near zero, and ADX goes down. The ADX line was above 25 on 35.8% of all bars, but only on 12.3% of the bars where a cross happened.
So “above 25 and rising” at the cross is a condition that filters out 99.6% of signals. The six trades that passed lost 6.76 pips each with the reverse exit. If you want ADX to confirm a cross, you have to wait several bars after it for ADX to turn up — and by then, on this data, the move the cross was late for is later still.
Did any setup make money?
Four of the 80 made money after costs with at least 30 trades. All four used the two-hour exit, not the reverse, and all four had few trades:
| Setup (exit after 2 hours) | Trades | Win rate | Net per trade | First half | Second half |
|---|---|---|---|---|---|
| DMI 21, ADX above 25 | 51 | 51.0% | +1.54 | +2.24 | +0.45 |
| DMI 14, ADX above 30 | 59 | 44.1% | +1.16 | +1.18 | +1.12 |
| DMI 14, ADX above both DI lines | 46 | 47.8% | +0.75 | -0.32 | +2.42 |
| DMI 10, ADX below 20 | 288 | 51.7% | +0.31 | +1.95 | -1.21 |
Two held in both halves: DMI 14 with ADX above 30, and DMI 21 with ADX above 25. Both share one idea — take only the rare cross that happens while the market is already strongly trending, then give it a fixed two hours instead of waiting for the lines to cross back.
I would not trade them on this evidence. 51 and 59 trades is under one a day, and when I tried 80 setups, finding four that look good is roughly what chance produces. My optimization test shows how often a winner picked this way fails on new data: 519 pips in-sample became a loss out of sample. If you want to follow these two up, they are candidates for a forward test, not a system.
What should you do with the DI crossover?
- Do not trade the raw cross on a 5-minute chart. 27 signals a day, four in ten reversed within 15 minutes, and a loss in every setup with the usual exit.
- Treat ADX above 25 as damage control, not an edge. It cut the two-hour loss from -1.95 to -0.85 pips a trade. It did not make the system profitable.
- Do not wait for “ADX rising” at the cross. By construction it is almost never true on the same bar.
- If you use DMI at all, use the lines for direction and something else for timing. My stop-loss distance test and best hours test show where the cost of a 5-minute trade is decided.
Frequently asked questions
Does the ADX DI crossover strategy work?
Not on EURUSD 5-minute bars with a 1-pip cost. Entering on the cross and reversing on the opposite cross lost money in all 40 setups tested; the default period 14 lost 1.33 pips per trade over 1,617 trades.
What is the DI crossover?
It is the signal from the two direction lines of the ADX indicator: +DI crossing above -DI is a buy signal, +DI crossing below -DI is a sell signal. The ADX line itself only measures strength, not direction.
Should I only take DI crosses when ADX is above 25?
It helps with a fixed two-hour exit — the loss went from -1.95 to -0.85 pips a trade — but it does not make the cross profitable. With the reverse exit it made results worse, -1.89 against -1.33.
Why is ADX falling when the DI lines cross?
ADX averages the gap between +DI and -DI. When they cross, the gap is zero, so ADX drops. On 1,618 crosses, ADX was rising on only 9.7%, and above 25 and rising on 6.
How often do the DI lines cross on a 5-minute chart?
With the default period 14, 1,618 times in about 59 trading days on EURUSD, or 27 a day. The median gap between crosses was 25 minutes.
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.

