Learn › Technical analysis

ADX and DMI Explained: Measure Trend Strength and Pick the Right Tool

Wilder's ADX, +DI and −DI formula step by step with a worked example, how to read 20 and 25, DI crossovers, and using ADX to choose trend tools or range tools.

Intermediate 9 min read 16 October 2026

What you will learn
  • ADX measures how strong a trend is, not whether it is up or down. Direction comes from +DI versus −DI, or from price
  • ADX below about 20 usually means a range, above about 25 usually a trend. These numbers are conventions, not rules
  • ADX lags a lot. It tends to confirm a trend after price has already moved, and stays high after price has stopped
  • Use ADX to choose your tool. Trending market, use MAs or breakouts. Ranging market, use oscillators

ADX (Average Directional Index) answers one question: how strongly is price trending right now? It doesn’t say up or down, and it doesn’t predict whether the move will continue. What it does help with is the question you should answer before choosing a tool: is the market trending, or swinging inside a range? The tools that work in those two conditions are almost opposites.

ADX comes with two more lines

ADX was created by J. Welles Wilder, the same person behind RSI and ATR. The full indicator is called DMI (Directional Movement Index) and has three lines.

LineWhat it showsRange
+DIUpward pressure: how far new highs extend above old highs, relative to bar size0–100
−DIDownward pressure: how far new lows extend below old lows, relative to bar size0–100
ADXThe gap between those two lines, smoothed: trend strength0–100

The default is 14 bars in both MT5 and TradingView, the value Wilder used.

The formula, step by step, in plain words

Step 1: measure each bar’s movement by comparing it with the previous bar.

  • Up move = today’s High − yesterday’s High
  • Down move = yesterday’s Low − today’s Low
  • If the up move is larger than the down move and above 0 → +DM = up move, −DM = 0
  • If the down move is larger than the up move and above 0 → −DM = down move, +DM = 0
  • Otherwise (an inside bar, for example) both are 0

So each bar counts on one side only, the side that extends further, even when a bar pokes out both above and below (an outside bar).

Counted as +DMCounted as −DM YesterdayToday Higher high wins+DM = the part above YesterdayToday Lower low wins−DM = the part below YesterdayToday Inside bar+DM and −DM are 0
Diagram, not real prices. The left bar is yesterday, the right bar is today, and the dashed lines are yesterday's High and Low. Each bar counts on one side only, the side that extends further.

Step 2: find the TR (True Range), the largest of three values: High − Low, |High − yesterday’s Close| and |Low − yesterday’s Close|. It is the same value used in ATR. It acts as the divisor, so wide-swinging and quiet markets can be compared.

Step 3: smooth Wilder’s way. The first value is the sum of the first 14 bars. After that, each new bar uses

New value = old value − old value ÷ 14 + this bar’s value

In other words, drop one fourteenth of the old and add the new. Do this separately for TR, +DM and −DM. (Some platforms store an average instead of a sum, but the DI in the next step comes out the same because it is a ratio.) This is the same smoothing as the SMMA (or RMA) in the moving averages article, the slowest of the MA family.

Step 4: the DI lines

  • +DI = 100 × (smoothed +DM) ÷ (smoothed TR)
  • −DI = 100 × (smoothed −DM) ÷ (smoothed TR)

Step 5: DX and ADX

  • DX = 100 × |+DI − −DI| ÷ (+DI + −DI)
  • First ADX = the average of the first 14 DX values. After that, new ADX = (old ADX × 13 + today’s DX) ÷ 14

DX shows how far apart the two sides are. If upward and downward pressure are about equal, DX is near 0. If one side dominates, DX is high. ADX is DX smoothed once more. Because of this double smoothing, ADX needs at least 28 bars of data before its first value, and it lags a lot.

Worked example for one bar

Settings of 14 bars. Yesterday: High 105.0, Low 101.0, Close 104.0. Today: High 107.0, Low 103.5, Close 106.5. The smoothed values up to yesterday are TR 42.0, +DM 14.0, −DM 10.0 and ADX 20.0.

StepCalculationResult
Up move107.0 − 105.02.0
Down move101.0 − 103.5−2.5 → not counted
+DM / −DMUp move is larger and positive+DM 2.0, −DM 0
TRLargest of 3.5, 3.0, 0.53.5
Smoothed TR42.0 − 42.0 ÷ 14 + 3.5 = 42.0 − 3.0 + 3.542.5
Smoothed +DM14.0 − 1.0 + 2.015.0
Smoothed −DM10.0 − 0.714 + 09.286
+DI100 × 15.0 ÷ 42.535.29
−DI100 × 9.286 ÷ 42.521.85
DX100 × (35.29 − 21.85) ÷ (35.29 + 21.85) = 100 × 13.44 ÷ 57.14≈ 23.5
ADX(20.0 × 13 + 23.5) ÷ 1420.25

A strong up bar gives today a DX of about 23.5, yet ADX only moves from 20.0 to 20.25, because the new bar carries just 1/14 of the weight. That is why ADX is slow. It takes many bars in a row in the same direction before ADX rises clearly.

ADX measures strength, not direction

DX uses the absolute value of the difference. A strong downtrend, with −DI far above +DI, pushes ADX up just as much as a strong uptrend. An ADX of 40 doesn’t mean the market is good or that you should buy. It only says price is moving clearly in one direction. For the direction, check whether +DI or −DI is on top, or look at price itself.

The numbers traders use to read ADX

ADXCommon reading
Below about 20Weak trend, or a ranging market
About 20–25Grey zone: changing condition or not yet clear
Above about 25Trending
Above about 40Very strong trend, often after price has already travelled far

These numbers are conventions passed between traders, not values proven accurate in every market. Each pair and each timeframe has its own normal ADX level. Before using them, scroll back through the chart of the market you actually trade and see where ADX tends to sit in stretches that clearly look like a range.

The slope of ADX matters more than the number

  • ADX rising: one side is taking more control, the trend is strengthening
  • ADX falling: the gap between the two sides is narrowing. The trend is weakening or price is pausing. It doesn’t mean a reversal. ADX falling from 50 to 40 is still a strong trend, just less strong than before
  • ADX low and flat: neither side is winning
Range Uptrend Pause ADX crosses 25 at bar 62 ADX (trend strength) +DI (upward) −DI (downward) 25 20 0 110 100 Bars 1 to 120
An illustrative 120-bar series made up for this article, not a real market. +DI, −DI and 14-bar ADX are calculated from this series with Wilder's formula. The yellow area is the range, where ADX stays below 20 throughout. The blue area is where price pauses, yet ADX stays above 25 for more than 20 bars.

This chart shows ADX’s biggest weakness: lag. In this example series the trend starts at bar 51, but ADX only crosses 25 at bar 62, 11 bars later. At the end, price stops rising from bar 91, yet ADX keeps climbing to a peak of about 63 at bar 96 and stays above 25 until bar 117. If you wait for ADX to confirm, you enter late. If you use a high ADX as your reason to keep holding, you keep holding while price has already stalled.

DI crossovers need a filter

A common signal is +DI crossing above −DI, read as buyers starting to win, and the reverse for a downtrend. The problem is that in a range the two lines tangle and cross back and forth. In the chart above, the first 50 bars of range contain 4 crossovers. The first three were not followed by a trend. The fourth happened to line up with the start of the trend, but at the time there was no way to know which one was real. The pause at the end adds another 4 crossovers.

More sensible ways to use them:

  1. Only act on DI crossovers when ADX is above your chosen level, or rising
  2. Use DI to confirm direction, not as an entry. For example, only follow an uptrend while +DI is above −DI
  3. Place your Stop loss on price structure rather than waiting for the lines to cross back. By the time they do, price has usually moved a long way

Using ADX to choose your tool

The most practical use of ADX is telling you which tool to pick, not giving you the entry itself.

ADX conditionMarket is probablyTools that fit
Low and flatRangingOscillators such as RSI, Stochastic, Bollinger Bands: buy near the bottom of the range, sell near the top
Rising through about 20–25Starting to trendDonchian breakout, moving averages, Ichimoku
High and still risingStrong trendStay with the trend, enter on pullbacks, don’t fade it with oscillators
High and turning downTrend slowingBe careful opening new breakouts, manage open trades by your rules

The reason: an oscillator like RSI works well when price swings back and forth, but in a strong trend RSI can sit in the Overbought zone for a long time, and anyone selling on RSI gets dragged along by the trend. MA crossovers and breakouts work well in trends but fail again and again in ranges. Keeping both groups in mind and choosing by ADX helps you avoid using a tool in the wrong conditions. For choosing indicators that don’t duplicate each other, read Combining indicators without redundancy.

ADX doesn’t tell you to buy or sell. It tells you which kind of tool fits right now, and because it lags, it always tells you later than the market actually changed.

When ADX misleads

  • During a change of condition ADX can’t keep up. A range that just broke still shows a low ADX for several bars, and a trend that just ended still shows a high one
  • A single news bar A very long bar pushes DI up at once, and ADX follows, even if price goes straight back into the range
  • A wide, fast-swinging range If price runs from the bottom to the top of the range over several bars in a row, ADX can rise even though the bigger picture is still a range
  • Different timeframes ADX on the daily chart can say trend while the 15-minute chart says range. Read it on the timeframe you actually trade

ADX helps you read market conditions more systematically, but it doesn’t know in advance when the market will change. More on this in When the market changes character and Ride the trend or fade it.

Pairing it with risk management

ADX doesn’t tell you how far to place your Stop loss or how big to trade. A high ADX doesn’t mean lower risk. In strong trends, bars often get longer, so a Stop loss set on price structure ends up further away, and you need a smaller position to lose the same amount per trade.

  • Measure your Stop loss distance from price structure, or from ATR, which uses the same TR as ADX
  • Size the position from that distance, as in Position size from Stop loss distance and the calculator at the end of this article
  • Keep the amount risked per trade fixed, for example with the 1% rule. Don’t trade bigger because ADX is high

Common mistakes

  • Reading a high ADX as a buy signal. ADX is high in downtrends too. Check direction with DI or price
  • Reading a falling ADX as a reversal signal. A falling ADX means the trend is weakening. Price may just pause and then continue
  • Trading every DI crossover. In a range the lines cross back and forth and you pay the spread for nothing
  • Treating 20 or 25 as fixed rules. They are conventions. Check the normal level for the market you trade
  • Forgetting that ADX lags. Waiting for ADX to confirm means entering after price has moved. Accept that before you use it
  • Tuning the 14 to fit past charts. Settings that look good in hindsight often fail going forward. Every indicator describes price that has already happened. None of them can predict the future
Try it with your own numbers

Frequently asked questions

Does a high ADX mean I should buy?

No. A high ADX means price is moving strongly in one direction, and a strong downtrend raises ADX just as much. Check the direction with +DI and −DI or with price structure. ADX also doesn't tell you how much further a trend will go.

Why don't ADX values in MT5 and TradingView match?

MT5 has two versions, Average Directional Movement Index and Average Directional Movement Index Wilder. The one that uses Wilder's formula, as in this article, is the one with Wilder in its name. The other averages differently, so its values differ. TradingView's DMI uses Wilder-style averaging. How much history is loaded also shifts the values slightly.

Should I change ADX from 14 to something else?

14 is what Wilder used and what most traders watch. A smaller number reacts faster but swings more and gives more false readings. A larger number is smoother but slower. If you change it, retest the whole system, and don't tune it to fit past charts.

This is general education, not investment advice. Trading is risky and you may lose all of your capital.

Tools Chat on LINE