Wilder ADX & DMI Calculator
Calculate true range, competing directional movement, +DI, −DI, DX and arithmetic-seeded ADX from ordered high, low and close bars you enter. The page exposes each reportable value and its Wilder recurrence without fetching candles, grading trend strength, interpreting crosses or generating a directional trading signal.
Enter ordered high-low-close bars
Use one consistent symbol, timeframe and broker feed. At least twice the selected period is required.
One row per line: high, low, close, with an optional label first. Commas, semicolons or tabs are accepted.
Entered-series Wilder ADX and DMI
Entered Directional Indicators 1.0.0.
| Label | High | Low | Close | TR | +DM | −DM | +DI | −DI | ADX |
|---|
How the entered ADX and DMI are calculated
+DI or −DI = 100 × Smoothed directional movement ÷ Smoothed TR
DX = 100 × |+DI − −DI| ÷ (+DI + −DI)
Later ADX = [(Prior ADX × (N − 1)) + Current DX] ÷ N
Only the larger positive high-side or low-side movement is retained for each bar; equal moves become zero. TR, +DM and −DM start from arithmetic means of their first N observations.
The first ADX is the arithmetic mean of the first N reportable DX values. Later values use the disclosed Wilder smoothed-moving-average recurrence.
Worked example from the audited fixture
How to interpret the result
The example’s ADX and DI values describe only the entered bars and declared smoothing convention. The page does not label 71.9545 as strong, weak, bullish or bearish, and +DI above −DI is not a trade signal. Platform startup history and smoothing details can change early buffer values.
Assumptions and limits
- Every bar must satisfy high at least low and close inside the inclusive high-low range.
- All bars must use one symbol, timeframe and broker feed.
- At least 2N entered bars are required to report the first ADX.
- Available history and platform startup conventions can change early indicator-buffer values.
- ADX magnitude and +DI or −DI ordering are not classified as strength, direction, a crossover or a signal.
Frequently asked questions
- Enter at least twice the selected period of ordered high, low and close bars from one consistent symbol, timeframe and broker feed.
- Negative moves are zeroed; equal positive moves become zero, and otherwise only the larger positive high-side or low-side move remains.
- It is the maximum of absolute high minus low, high minus prior close, and low minus prior close.
- The first smoothed true range, positive movement and negative movement are arithmetic means of their first N raw observations.
- It is the arithmetic mean of the first N reportable DX values.
- The prior ADX times N minus one is added to current DX and divided by N.
- Not necessarily. Available history and platform startup conventions can change early buffer values.
- No. The page does not grade strength, choose direction, classify crosses or generate entries and exits.
Sources and methodology
- MetaQuotes Code Base — ADX Wilder — Published MetaQuotes source for competing movement, true range and DMI arithmetic.
- MQL5 Reference — iADXWilder — Official ADX, +DI and −DI buffer contract.
- MetaTrader 5 Help — Moving Average — Official Smoothed Moving Average seed and recurrence.
Continue entered-indicator analysis
Compare the chart feed and trading terms
Use one consistent broker feed for every entered observation and verify the symbol's price precision, spread and trading conditions before using any measurement in a plan.
Risk and affiliate disclosure: Leveraged forex and CFD trading can result in substantial losses. These are affiliate links, so ForexMT4Indicators.com may receive compensation if you register or trade through them, at no additional cost to you. Availability and terms vary by jurisdiction and broker entity.

