How Adx Trend Is Calculated

Learn how ADX and ADX-trend values are computed from price data.

Direct answer

“ADX Trend” is not a single fixed brand formula; most people mean the Average Directional Index (ADX) and its construction from directional movement (DI) components. In its common form, the calculation starts from price changes, derives directional movement values (+DM and −DM), normalizes them with true range (TR), smooths the results, and then converts the smoothed directional indicators into the ADX value (trend strength).

Mechanism and definition (the calculation building blocks)

Below is a standard, self-contained ADX-style workflow. The goal is to compute a trend-strength number from OHLC price data. The computation requires a time series of prices (at minimum: High and Low; Close is used to compute changes and TR variants).

1) Inputs and notation

Assume you have bars/candles indexed by time t with at least:

  • High[t]
  • Low[t]
  • Close[t]

Pick a lookback length n (often called the “period”). This choice affects smoothing strength and sensitivity.

2) Directional movement: +DM and −DM

For each step t (starting after you have the previous bar t−1), compute the directional movement from changes in highs and lows:

  • UpMove = High[t] − High[t−1]
  • DownMove = Low[t−1] − Low[t]

A common rule set assigns:

  • +DM = UpMove if UpMove > DownMove and UpMove > 0, otherwise 0
  • −DM = DownMove if DownMove > UpMove and DownMove > 0, otherwise 0

Interpretation: only the dominant direction “wins” for that bar, and negative movement in that direction is discarded.

3) True range: TR

True range measures how much price moved, accounting for gaps between closes. A common definition is:

  • TR = max( High[t] − Low[t], abs(High[t] − Close[t−1]), abs(Low[t] − Close[t−1]) )

Interpretation: TR is the normalization denominator for directional movement.

4) Smooth the components

Directional movement and TR are typically smoothed over n bars before turning them into ratios. One widely used approach is Wilder-style smoothing, defined recursively as:

  • SmoothedX[t] = SmoothedX[t−1] − (SmoothedX[t−1] / n) + X[t]

Where X[t] is one of +DM[t], −DM[t], or TR[t], depending on which series you are smoothing.

Material detail: you must define the initial SmoothedX value for the first calculation window (often the sum over the first n observations, depending on the platform’s exact implementation).

5) Convert to directional indicators (+DI and −DI)

After smoothing, compute:

  • +DI[t] = 100 × (Smoothed(+DM)[t] / Smoothed(TR)[t])
  • −DI[t] = 100 × (Smoothed(−DM)[t] / Smoothed(TR)[t])

Directional indicators translate movement into a comparable, normalized “directional strength”.

6) Create DX and then ADX

Compute the directional index (DX):

  • DX[t] = 100 × abs(+DI[t] − −DI[t]) / (+DI[t] + −DI[t])

Then compute ADX using another smoothing step over n bars:

  • ADX[t] = smoothed average of DX over the chosen period n

In many implementations, the initial ADX is an average of the first available DX values, followed by Wilder-style smoothing or an equivalent smoothing method.

Summary of what “ADX Trend” is measuring

The resulting ADX number is intended to represent “trend strength” rather than direction. The directional indicators (+DI and −DI) are separate and indicate direction; ADX summarizes how strong the directional dominance is.

Evidence or example (a checkable mini-workflow)

Because calculations depend on exact rules and initial conditions, it helps to verify the method with a small, consistent dataset.

Assumptions for this example (so you can replicate it):

  • Use standard +DM/−DM rules described above.
  • Use the standard TR definition using High, Low, and Close[t−1].
  • Use period n = 14.
  • Use Wilder-style smoothing.

A practical way to verify independently:

  1. Create a spreadsheet with columns for UpMove, DownMove, +DM, −DM, TR.
  2. For the first smoothing window, compute initial Smoothed(+DM), Smoothed(−DM), and Smoothed(TR) as defined by your chosen method (commonly the sum of the first n values).
  3. Apply Wilder smoothing forward one bar at a time.
  4. Compute +DI and −DI from smoothed values.
  5. Compute DX from the difference and sum of +DI and −DI.
  6. Smooth DX to get ADX.

If your spreadsheet outputs match a tool’s ADX line (within rounding differences), you can be confident you are using the same underlying rules and initialization.

Optional cross-check: inspect whether +DM and −DM behave sensibly on bars where highs rise while lows fall (or vice versa). If one side dominates consistently, the directional indicators should reflect that.

Limitations, risks, and failure modes

1) Implementation differences

ADX-like indicators can differ due to:

  • How initial smoothed values are seeded.
  • The exact definition of TR (some platforms handle gaps or data peculiarities slightly differently).
  • Whether smoothing is Wilder-style or uses another averaging method.
  • Whether a platform labels a variant as “ADX Trend”.

Even small differences can cause noticeable divergence.

2) Sensitivity to the period n

A longer n typically smooths more strongly, producing slower-moving ADX. A shorter n can react quickly to short-term volatility, potentially creating unstable readings. This is not a “better” or “worse” issue; it changes what the number represents.

3) Division-by-zero or near-zero denominators

DX uses (+DI + −DI) in the denominator. If both directional indicators are near zero (for example, in very flat or low-volatility data), DX can be unstable or undefined depending on how the software handles zeros. Proper handling requires explicit rules.

4) Data quality and missing bars

If OHLC data has missing intervals, stale values, or inconsistent candle construction, +DM, −DM, and TR can be computed from incorrect adjacency assumptions (t−1 relationships). That can produce misleading ADX values.

5) Market behavior is not constant

Even with correct math, the statistical meaning of ADX depends on regime. Historical calculations do not guarantee future similarity; ADX is a transformation of observed price movement, not a certainty about what comes next.

Verification or next question

To independently verify any “ADX Trend” calculation you see:

  1. Confirm which exact ADX variant is used (period n, smoothing method, TR definition, initial seeding).
  2. Recompute at least a few points from raw OHLC data.
  3. Check whether intermediate series (+DM, −DM, TR, smoothed values, +DI/−DI) match your tool’s outputs.

If you want, tell me which platform or formula convention you’re using (for example, the exact period and whether smoothing is Wilder-style). Then the calculation steps above can be mapped precisely to that convention without assuming anything about current data or provider behavior.

Trading foreign exchange and CFDs involves substantial risk. Information on FoxiForex is educational and is not personal financial advice. Sponsored placements are labelled clearly.