Skip to content

ADX/DMI

Indicators

  • Price
  • High
  • Low
ADX/DMI

DI 14 · ADX 14

  • ADX
  • +DI
  • −DI
This is how the node looks on the board: inputs on the left, outputs on the right.

Measures how strong a trend is. Measures on a scale from 0 to 100 how strongly the price moves in one direction, up or down. Below 20 it tends to move sideways, above 25 a trend counts as strong. You also get +DI and −DI: when +DI is above −DI, buyers push harder, otherwise sellers. Example: “ADX 14 above 25” together with “+DI 14 above −DI 14” reports a strong uptrend. For alerts that should only count in a trend, such as a breakout, “ADX above 20” is a good filter.

BTC/USDT price and ADX/DMI 14The ADX rises above 25 when the price moves strongly in one direction; +DI and −DI show which one.Price BTC/USDT84,00085,00086,00087,000ADX/DMI 1425Oct 2Oct 3Oct 4Oct 5Oct 6
  • ADX 14
  • +DI 14
  • −DI 14
  • above 25: strong trend
  • ADX above 25 and +DI above −DI
Top: the price; bottom: ADX, +DI and −DI of the same 1-hour candles. Above 25 (shaded) a trend counts as strong. At the dots “ADX above 25 and +DI above −DI” becomes true: the price is rising strongly.

The settings appear on the right under “Properties” once you click the node on the board. Below each field you find the same explanation as here.

Default: 14 · from 1 to 200, whole number

How many candles +DI and −DI measure the moves up and down over. 14 is the usual value.

Default: 14 · from 1 to 100, whole number

How many candles the ADX is smoothed over. 14 is usual. Fewer candles react faster to a new trend but swing more.

A strong uptrend: ADX above 25 and at the same time +DI above −DI.

Example chain: Candle, ADX/DMI, Compare, Compare A/B, AND, TelegramConnections: Candle → ADX/DMI, Candle → ADX/DMI, Candle → ADX/DMI, ADX/DMI → Compare, ADX/DMI → Compare A/B, ADX/DMI → Compare A/B, Compare → AND, Compare A/B → AND, AND → Telegram.CandleBTC/USDT · 1hADX/DMIDI 14 · ADX 14CompareADX 14 above 25Compare A/B+DI 14 above −DI 14ANDall inputs trueTelegramlinked chat · at most every4 h

How to connect the nodes:

  1. Candle (Price) → ADX/DMI (Price)
  2. Candle (High) → ADX/DMI (High)
  3. Candle (Low) → ADX/DMI (Low)
  4. ADX/DMI (ADX) → Compare (Value)
  5. ADX/DMI (+DI) → Compare A/B (A)
  6. ADX/DMI (−DI) → Compare A/B (B)
  7. Compare (true/false) → AND (Signal 1)
  8. Compare A/B (true/false) → AND (Signal 2)
  9. AND (all true) → Telegram (Trigger)

On the board it reads: DI 14 · ADX 14

Chain as JSON

To try it, copy it and paste it in the editor under “Import”. Importing creates a new chain.

adx.json
{
"name": "Example: ADX/DMI",
"version": 1,
"nodes": [
{ "id": "c1", "type": "core.candle", "position": { "x": 40, "y": 40 }, "settings": { "pair": "BTC/USDT", "timeframe": "1h" } },
{ "id": "d1", "type": "core.adx", "position": { "x": 260, "y": 40 }, "settings": {} },
{ "id": "k1", "type": "core.compare", "position": { "x": 480, "y": 40 }, "settings": { "operator": "above", "value": 25 } },
{ "id": "k2", "type": "core.compare-ab", "position": { "x": 480, "y": 170 }, "settings": { "operator": "above" } },
{ "id": "a1", "type": "core.and", "position": { "x": 700, "y": 40 }, "settings": {} },
{ "id": "t1", "type": "core.telegram", "position": { "x": 920, "y": 40 }, "settings": {} }
],
"edges": [
{ "from": "c1.close", "to": "d1.close" },
{ "from": "c1.high", "to": "d1.high" },
{ "from": "c1.low", "to": "d1.low" },
{ "from": "d1.adx", "to": "k1.in" },
{ "from": "d1.plus", "to": "k2.a" },
{ "from": "d1.minus", "to": "k2.b" },
{ "from": "k1.out", "to": "a1.in0" },
{ "from": "k2.out", "to": "a1.in1" },
{ "from": "a1.out", "to": "t1.in" }
]
}

Only matching types connect: number series to number series (round pin), signal to signal (square), message to message (diamond).

Direction Pin Type Note
Input Price Number series required
Input High Number series required
Input Low Number series required
Output ADX Number series –
Output +DI Number series –
Output −DI Number series –
  • In messages the values are called “ADX 14”, “+DI 14”, “−DI 14”.
  • Warm-up with the default settings: 281 candles (this many extra candles are loaded by the replay before the value is reliable).
  • Search also finds it under: trend strength, adx, dmi, directional movement, sideways, di.

Directional movement from the changes in high and low, +DI and −DI as its RMA divided by the RMA of the true range times 100, ADX as the RMA of the gap between both DI divided by their sum, times 100; the same formula as ta.dmi in TradingView.

  • Type in the chain: core.adx · Version 1.0.0 · Category key ind
  • Settings in the chain: length (DI candles), smoothing (ADX smoothing)
  • Pins in the chain: Input close, high, low · Output adx, plus, minus
  • Reference tests in the manifest: 1 (with fixed price data: 500 candles of 1h)
  • How a node is built

Version 2026.10.21.23 · Changelog