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
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.