Direct answer
ADX (Average Directional Index) is a technical indicator that aims to measure the strength of a trend, based on how directional price movement and overall price range behave over time. In forex, the steps usually follow a fixed sequence: calculate directional movement from highs and lows, compute true range, smooth both directional and range components, and then combine them into a single non-negative value. The result is an “intensity” measure of trend strength, not a direct prediction of future price direction.
Mechanism or definition
ADX is built from two related ideas:
-
Directional movement: how much the market moves upward vs. downward during a period. This is represented by +DM (upward movement) and -DM (downward movement).
-
True range: a volatility-aware measure of price range that captures gaps and large moves between periods. This is represented by TR.
A common interpretation model in many indicator formulas is:
- If upward movement dominates, +DM becomes larger relative to -DM.
- If downward movement dominates, -DM becomes larger relative to +DM.
- TR reflects how “wide” the price movement is overall, regardless of direction.
Inputs
To compute ADX you need OHLC price data (open, high, low, close) for the chosen timeframe. The indicator uses highs, lows, and the previous close to derive TR and directional movement.
Two practical choices affect the mechanics:
- Time period / lookback length (often denoted n), which controls the window used in the calculations and smoothing.
- Smoothing method used by the platform (the exact method can vary by implementation). Many platforms use a form of smoothing so the indicator reacts less erratically than raw directional movement.
Step-by-step sequence (typical)
Even though platforms may implement details slightly differently, the conceptual sequence is usually:
- Compute +DM and -DM for each period from the current and previous highs/lows.
- Compute TR for each period using the current high/low and previous close.
- Smooth +DM, -DM, and TR over the chosen length. Smoothing produces stable intermediate values.
- Convert smoothed DM into directional indicators: +DI and -DI, which scale directional movement by volatility (through TR).
- Compute the directional difference between +DI and -DI, and use it to form an intermediate “DX” value (often proportional to the absolute difference over the sum).
- Smooth DX to obtain ADX.
What ADX output means
The ADX output is a single series of values that aims to represent trend strength. The indicator is not inherently “bullish” or “bearish.” If you also observe +DI and -DI, you can separately infer which direction is dominating in that moment, but ADX alone focuses on strength rather than direction.
Evidence or example (with explicit assumptions)
Because implementation details can differ by platform, independent verification is best done by reproducing the calculation from the same OHLC series you use in your chart.
Example setup (assumptions)
Assume you have:
- A fixed timeframe (for example, 1-hour candles)
- A fixed period length n
- A platform that applies a specific smoothing method for its ADX
Using the same candle data, you can validate whether the platform’s ADX matches the typical formula sequence.
Verification workflow (conceptual)
- Extract OHLC for at least n + some extra periods to account for smoothing warm-up.
- Recalculate +DM and -DM from highs and lows.
- Recalculate TR using high/low and the previous close.
- Apply the same smoothing approach your platform uses (this is where many mismatches occur).
- Compute +DI and -DI, then DX, then smooth DX again to get ADX.
- Compare the resulting ADX series point-by-point to the chart’s ADX values.
If your computed ADX tracks the chart closely, you have evidence that:
- The input data alignment (time and candle boundaries) is correct.
- The smoothing/parameter settings match.
If it does not, the mismatch usually comes from different smoothing definitions, different treatment of edge cases (such as how DM is set when movements compete), or different parameter defaults.
Limitations and risks
ADX can be useful for describing trend strength in a historical sense, but it has material limitations.
-
Lag and smoothing effects Because ADX relies on smoothed components, it may react slowly when the market shifts regimes. A smoothing step reduces noise but also delays responsiveness.
-
Dependency on parameter choices Different lookback lengths and smoothing definitions change the indicator’s behavior. Two charts using different settings can produce meaningfully different ADX paths.
-
Sensitivity to volatility changes Since TR is used to scale directional movement, volatility spikes and sudden range expansions can affect ADX readings even when the “directional character” is not stable.
-
Data sampling and candle construction ADX depends on the chosen timeframe and the OHLC series construction. In forex, the “same” market event can appear different across timeframes, which can change +DM, -DM, and TR.
-
Not a standalone signal for outcomes ADX output is a measure of strength, not a guarantee of direction or future movement. Historical relationships between ADX levels and later price behavior do not ensure similar results in the future, especially when costs, execution, or regime characteristics differ.
One failure mode to watch
A common failure mode is assuming that a high or rising ADX automatically means a predictable outcome. In reality, ADX can rise due to stronger movement in either direction, and it can remain elevated during phases where other conditions (liquidity, spreads, sudden reversals) affect trading outcomes. ADX describes a property of price movement, not the external conditions that determine realized results.
Verification and next question
To independently verify how ADX works on your own forex chart:
- Confirm the parameter values (lookback length and smoothing method) used by your platform.
- Use the same timeframe and ensure your OHLC data aligns with the chart.
- Recompute ADX from the underlying highs/lows/closes (or compare against the platform’s documented formula if available).
If you want to go one step further, the next check is often: how your platform defines the directional movement components (+DM and -DM) and how it performs smoothing. Those implementation choices are frequent sources of differences when you try to reproduce ADX manually.
You can also review the interpretation approach for ADX values in your own context, while keeping in mind that ADX measures strength rather than direction.