TL;DR
- ADX measures how big, not which way. On SPY, days with ADX under 15 went on to touch +1% 78% of the time and -1% 70% of the time. In the 30-40 band, both were higher, at 89% and 76%. Two separate rates, both up: the range widens on both sides.
- The direction half is backwards on SPY and ES. A bearish DI reading was followed by a higher average 5-day return than a bullish one: 0.232% versus 0.174% on SPY, and 0.198% versus 0.134% on ES.
- The strongest region in the entire SPY grid was long inside a bearish DI reading at ADX of at least 40: 10 reliable variants, 100% of them profitable, median return-to-drawdown 0.22.
- The short side does not work in almost any ADX state. 20 of SPY's 24 short regions were weak, and 19 of ES's 21. Of the 20 SPY regions rated strong, 18 were long.
- As a filter, it lifts the median, modestly. Reliable every-bar long variants in the 25-30 band had a median return-to-drawdown of 0.05 on SPY and 0.02 on ES, against 0.01 on both under ADX 15. Both medians sit inside the matched random control's spread, so this is a lift over the calmest band, not separation from luck.
Everyone repeats the same three rules, and nobody publishes the numbers
You already know the rules. ADX above 25 means a strong trend worth following. ADX below 20 means a range, so stand aside or fade it. And when you need to know which way, look at whether +DI is above -DI.
Three rules, repeated in every tutorial and on every broker's education page. I have never once seen anybody publish the forward returns behind them.
So I measured them. Every bar in the history, labelled by its ADX state, with the outcome of the next 20 bars attached. Not a curated set of good-looking examples — the whole record, including the boring parts.
Think of ADX as a speedometer. It tells you how fast the market is travelling. It tells you nothing about which way the road turns, and the compass bolted to the side of it, the DI pair, turns out to be wired backwards.
How we tested
Two instruments, because one is never enough to trust a result. SPY daily bars from March 1993 to June 2026, which is 8,370 measured days. E-mini S&P 500 futures from February 2007 to July 2026, another 4,889 days.
ADX(14) throughout: Wilder's own default, and the definition MultiCharts and TradeStation ship. The indicator is his, published in New Concepts in Technical Trading Systems in 1978, and this study computes that original definition rather than a platform's variant of it. I did not sweep the indicator's length. The sweep went where the folklore actually makes its claims: the ADX level. Six buckets, at under 15, 15-20, 20-25, 25-30, 30-40 and 40-plus, so the two famous lines at 20 and 25 sit in the middle with brackets on either side.
Five families were tested. Every bar, which isolates the ADX level on its own. The two held DI states, bullish and bearish. And the two DI crossovers, which is Wilder's own entry signal. Both trade directions were swept separately across all of them, along with fixed holds of 0, 1, 2, 3, 5, 10 and 20 bars — 3,780 variants per instrument.
The signal is read at the prior bar's close and filled at the next open. That one-bar gap means every signal below uses only information available before the fill. Results are frictionless (no commission, no slippage), and cells with fewer than 50 trades are flagged rather than dropped. On SPY, 1,936 of the 3,780 variants clear that bar; on ES, 1,380.
If you have never had the indicator on a chart, here is what it looks like. Price on top, ADX and the DI pair underneath, with every stretch the indicator calls a downtrend shaded.
Finding 1: What does a high ADX actually predict?
It predicts a wider move. Both touch rates, measured separately, were higher in every band above 15 than in the calmest one.
For every event I recorded whether price later touched +1% and, separately, whether it touched -1%, within a 20-bar window. The down-touch column never drops back to the calmest band: in every band above 15 it sits at 73% to 76%, against 70% under 15.
| ADX bucket | SPY days | Touched +1% | Touched −1% |
|---|---|---|---|
| Under 15 | 1,427 | 78% | 70% |
| 15–20 | 2,109 | 81% | 74% |
| 20–25 | 1,933 | 85% | 73% |
| 25–30 | 1,387 | 86% | 73% |
| 30–40 | 1,203 | 89% | 76% |
| 40+ | 311 | 88% | 73% |
ES says the same thing, more sharply. Under an ADX of 15, the touch rates are 74% and 62%. At 40 and above they are 81% and 83% — and note that at the top of the range on futures, the downside touch rate overtakes the upside.
In these two samples, then, a high ADX band is a volatility forecast. Expect a bigger move. Which side to be on is a question the indicator never answers.
Finding 2: Does a higher ADX mean higher returns?
On average yes, and the effect is real on both instruments. But the largest averages sit in a band you will rarely see.
| ADX bucket | SPY days | Avg 1-day | Avg 5-day |
|---|---|---|---|
| Under 15 | 1,427 | 0.003% | 0.036% |
| 15–20 | 2,109 | 0.005% | 0.127% |
| 20–25 | 1,933 | 0.030% | 0.223% |
| 25–30 | 1,387 | 0.077% | 0.183% |
| 30–40 | 1,203 | 0.054% | 0.288% |
| 40+ | 311 | 0.445% | 1.048% |
ES ends higher too, though not in a straight line: 0.031% and 0.123% in the bottom bucket, 0.220% and 0.746% at 40-plus, with the 5-day average dipping to 0.097% at 15-20 and to 0.176% at 30-40.
Now the catch, and it belongs right next to the number rather than in a footnote. That 40-plus bucket is 311 days out of 8,370 on SPY, or 3.7% of the record. On ES it is 127 days out of 4,889, or 2.6%. It carries the largest returns in the study and the smallest sample in it. Build a plan around the top row of that table and you are building around 3.7% of the record.
Notice also where the biggest change sits: at 40, not at 20 or 25. SPY's average 5-day return goes from 0.288% in the 30-40 band to 1.048% at 40-plus, and the 1-day from 0.054% to 0.445%. The bands below 40 move too, 0.127% to 0.223% over 5 days across 20, and no breakpoint test was run at either famous line.
Finding 3: Does the +DI/−DI pair tell you which way?
No. In the forward returns, on both instruments, it points the wrong way.
This is the result I did not expect, and I checked it twice before believing it. The DI pair is the half of the system that exists purely to supply direction. Here is what follows each state.
| Instrument | DI state | Days | Avg 1-day | Avg 5-day |
|---|---|---|---|---|
| SPY | Bearish (−DI > +DI) | 3,799 | 0.050% | 0.232% |
| SPY | Bullish (+DI > −DI) | 4,571 | 0.042% | 0.174% |
| ES | Bearish (−DI > +DI) | 2,178 | 0.058% | 0.198% |
| ES | Bullish (+DI > −DI) | 2,711 | 0.034% | 0.134% |
Four comparisons, four times the bearish reading wins. When the indicator says downtrend, the index goes on to do better than when it says uptrend.
The single strongest region in the entire SPY sweep points the same way: long inside a bearish DI reading at ADX of at least 40, 10 reliable variants, 100% of them profitable, a median return-to-drawdown of 0.22. Buying while the indicator shouts downtrend was the best-scoring corner of 3,780 variants.
The rest of the grid does not all lean that way, and it belongs next to that result. Pooled across every band, filter and hold, long variants inside a held bullish reading were profitable 85% of the time with a median return-to-drawdown of 0.03 on SPY, against 66% and 0.01 inside a held bearish one. ES shows the same order, 81% and 0.01 against 67% and 0.00. The backwards reading lives in the forward-return averages and, on SPY, in the top band, not in every cell of the sweep.
This is not mystical, and it is consistent with mean reversion, though this study did not test that mechanism against alternatives. Across the 1993-2026 SPY sample taken as a whole, a bearish DI reading was followed by the better average return, 0.232% over 5 days against 0.174% after a bullish one. The label says downtrend, and on these two instruments the downtrend label came before the better return.
One boundary on this claim: it is an index result. I tested SPY and ES, both proxies for the same underlying market. Nothing here says the DI pair is backwards on crude oil, on the euro, or on a single stock, and I would not assume it without running them.
Finding 4: Does ADX work on the short side?
Almost never. This one is not close.
The grid splits into stable regions (combinations of family, direction and ADX band), each rated on what share of its reliable variants made money. SPY produced 48 such regions, evenly split between long and short.
| SPY | ES | |
|---|---|---|
| Stable regions | 48 | 42 |
| Short regions rated weak | 20 of 24 | 19 of 21 |
| Strong regions that are long | 18 of 20 | 13 of 15 |
The exceptions are worth naming, because hiding them would be the kind of tidy story this study exists to avoid. On SPY, four short regions escaped the weak rating. Shorting a bullish DI reading at ADX of at least 40 was strong, 12 variants and 100% profitable, and so was shorting a bearish reading in the 15-20 band, 53 variants at 68%. Shorting the upward DI crossover in the 15-20 band (27 variants, 63%) and the downward crossover with ADX under 15 (30 variants, 53%) rated moderate. On ES, two short regions survived, both with ADX under 15: the downward DI crossover, 13 variants at 92% profitable, and the bearish DI reading, 34 variants at 71%. None of those six regions had a median return-to-drawdown above 0.02.
Set against that, the cleanest illustration of the pattern: shorting a bearish DI reading at ADX 40 or above on SPY — the textbook "strong downtrend, go short" setup — was profitable in 0% of its variants.
Finding 5: So is ADX any good as a filter?
Yes. This is the part the conventional wisdom gets right, and it is worth being precise about how much.
Take every bar long, then split the trades by the ADX band the signal day sits in. Each row below is one band on its own, not a minimum. The best median return-to-drawdown sits in the top band on both instruments, and the 25-30 band beats the calmest one, but the bands do not climb in a straight line.
| ADX band | SPY variants | SPY % profitable | SPY median Ret/DD | ES variants | ES % profitable | ES median Ret/DD |
|---|---|---|---|---|---|---|
| Under 15 | 53 | 74% | 0.01 | 46 | 57% | 0.01 |
| 15-20 | 61 | 70% | 0.01 | 55 | 93% | 0.01 |
| 20-25 | 62 | 77% | 0.03 | 55 | 69% | 0.01 |
| 25-30 | 60 | 85% | 0.05 | 49 | 90% | 0.02 |
| 30-40 | 57 | 91% | 0.03 | 47 | 83% | 0.01 |
| 40+ | 23 | 70% | 0.18 | 6 | 100% | 0.05 |
Read that honestly. The rise is real and it appears on both instruments, but it is not a clean staircase. The median slips back in the 30-40 band on both, from 0.05 to 0.03 on SPY and from 0.02 to 0.01 on ES, and the 0.18 at the top rests on 23 variants, with the ES equivalent resting on 6. The profitable share is no steadier: on SPY it is 70% at 40 and above, below the 74% under ADX 15. And these are bands, not floors. A rule of ADX 25 or higher pools three of these rows into one backtest, and that pooled version was not run. Nor was ADX added to a setup you already trade: every row is every bar long, split by band, and both 25-30 medians sit inside the matched random control's spread. A better band, not a manufactured edge.
One more result belongs here, because it surprised me. The engine's own regime filters, a rising-volatility gate and a long-term trend gate, did not move the pooled median. Median return-to-drawdown with every filter off: 0.00 across 316 SPY variants. With any filter on: 0.00 across 1,620. A lift of +0.00 at the two decimals the grid stores, and the same on ES.
The verdict, and the honest limits
In these tests ADX did more as a band filter than as a signal. The 25-30 band's lift sits inside the random control's spread. The 40-and-above band clears it by a wide margin on SPY (0.18, 23 variants), and on ES by a margin the grid's two decimals cannot confirm (0.05 against 0.046, 6 variants). On the long side, Wilder's own entry, the upward DI crossover, trailed the held bullish state it comes from on both instruments, SPY since 1993 and ES since 2007.
What the data adds is sharper, and it is the part I would want a reader to leave with. ADX is not a weak direction indicator that needs help. In these samples it tracked size while wearing a direction indicator's clothing. Use it to answer "how wide are the next 20 bars likely to be" and it is genuinely informative. Use it to answer "which way" and you are reading a speedometer for navigation.
And the compass strapped to it is wired backwards in the forward returns on SPY and ES. Backwards, the same way, on both instruments and both horizons, though no significance test was run on the gaps.
The limits, stated plainly:
- Two instruments, one market. SPY and ES are both the S&P 500. Two agreeing datasets is better than one, but this is not evidence about crude, currencies, or single stocks.
- The biggest numbers rest on the thinnest samples. The 40-plus bucket is 3.7% of SPY days and 2.6% of ES days. The 0.18 result at ADX 40 and above is the median of a 23-variant region, not a single hand-picked cell, and its ES twin rests on just 6. Read it the way the literature on backtest overfitting says to: this study ran no search-adjusted test, so a 3,780-variant sweep can hand you a good-looking region whether or not the edge is real.
- Frictionless. No commission, no slippage. Treat every magnitude as relative, not as money you would have kept.
- This is an event study, not a system. Events overlap in the measurement file, and the grid is a flat-only measurement sweep. It measures what follows an ADX state. It is not a strategy you can switch on.
- ADX(14) only. Only ADX(14) was run. No other lookback was tested, so nothing here says whether the structure holds at another length.
What this means for you
- Stop using ADX to pick a side. It has no directional content. That is not a criticism of the indicator; it is the indicator's own design, and the tutorials are the ones misreading it.
- Start using it to set expectations about range. When ADX sits between 30 and 40, expect a wider range in both directions: 89% of those SPY days touched +1% and 76% touched -1% within 20 bars. No sizing rule and no stop rule were tested here, so treat it as an expectation about range, not as either.
- Do not treat the DI crossover as a better entry than the state it comes from. Buying the upward crossover made money in 63% of its reliable SPY long variants and 57% on ES, behind 85% and 81% for staying long through the held bullish reading, with a median return-to-drawdown of 0.01 against 0.03 on SPY and a tie at 0.01 on ES. That compares two long entries. It is not a direction call: the event averages on both instruments, and the top band on SPY, favour the bearish reading.
- If you filter on ADX, treat the band as a condition, not a trigger. The 25-30 band carried a better median long result than ADX under 15 on both instruments, 0.05 against 0.01 on SPY and 0.02 against 0.01 on ES, and both sit inside the random control's spread. This study measured every bar long by band, so adding ADX to your own setup, and an open-ended floor such as ADX 25 or higher, are both untested here.
- Do not take the textbook strong-downtrend short on SPY. That trade (bearish DI, ADX 40 and above) was profitable in 0% of its variants.
The $270,000 I lost in my early years went to reasoning exactly like the tutorials': an indicator that looked authoritative on a chart, adopted without ever checking what actually followed it. Checking is cheap now. The excuse for not checking is gone.
For a whole strategy rather than one indicator, AlgoChef is where that check happens: import the backtest, get the edge scored and stress-tested.






