⚠ MVP PreviewReport a Bug

Signals

ADX — Average Directional Index

Measure whether the market is trending strongly or merely drifting.

What it is

ADX measures trend strength without caring whether the move is bullish or bearish. Rising values suggest a stronger directional regime; falling values suggest chop or consolidation.

When to use it

  • Filtering breakout systems so they only fire in strong-trend conditions.
  • Separating trend-following setups from mean-reversion environments.
  • Confirming whether a recent price expansion has real directional conviction.

The maths

+DI = EMA(N) of max(high - prev_high, 0) / ATR(N), -DI is symmetric for lows, DX = |+DI - -DI| / (+DI + -DI), ADX = EMA(N) of DX The range is 0 to 100.

What it tells you

ADX above 25 indicates a strong trend regardless of direction, while ADX below 20 suggests a sideways market where momentum strategies often struggle. +DI > -DI confirms an uptrend, and the reverse confirms a downtrend.

REST example

python
import os
import requests

response = requests.get(
  'https://api.financedata.com/v1/signals/ADX/SPY',
  params={'start_date': '2025-01-01', 'end_date': '2025-04-30', 'period': 14},
  headers={'X-API-Key': os.environ['FDA_KEY']},
  timeout=30,
)
response.raise_for_status()
print(response.json())

MCP example

Tool call body

{
"name": "run_signals",
"arguments": {
  "symbols": ["SPY"],
  "signal_names": ["ADX"],
  "start_date": "2025-01-01",
  "end_date": "2025-04-30",
  "signal_parameters": {
    "ADX": { "period": 14 }
  }
}
}

ADX is a good MCP batch companion for moving averages or breakouts because it tells the agent whether a directional setup has enough strength behind it.

Agent prompt that triggers it

Run ADX on SPY and tell me whether the market is trending strongly enough to justify trend-following entries.