Technicals
Multi-timeframe trend, RSI, MACD, ADX, ATR, volatility and structure, calculated from candles. Choose spot, perp or automatic routing, with source coverage and partial-candle handling disclosed.
What it does
Multi-timeframe technical-analysis snapshot for one coin, computed locally from real candles (not a vendor black box): per interval — last close, RSI(14), EMA20/50/200 + SMA200, MACD(12,26,9) with signal/histogram/cross freshness, ATR(14) with 2xATR stop suggestions (feed research_trade_plan), Bollinger(20,2) with %B and bandwidth, ADX(14) with +DI/-DI, volume vs 20-candle average, and a transparent trend rule (EMA alignment qualified by ADX). 'intervals' picks the timeframes (default 1h,4h,1d; max 4 of 1m|5m|15m|30m|1h|4h|12h|1d|1w); 'market' routes candles (spot|perp|auto, default auto: spot preferred; perp when spot fails or a recent spot listing has too little history for the indicators). Support/resistance comes from the same candles: daily swing highs/lows over the last year, clustered within half a daily ATR, nearest 3 on each side with distance, swing count and last touch, plus the year's range. For levels from executed perp flow (volume at price, liquidations, OI), use flow_levels.
Parameters
| Name | Type | Description |
|---|---|---|
symbolrequiredpath | string | Coin symbol, e.g. 'ETH' or 'BTC' |
intervalsquery | string[] | Candle intervals to analyze, e.g. ["4h","1d"]. Default ["1h","4h","1d"]; max 4 of 1m|5m|15m|30m|1h|4h|12h|1d|1w |
marketquery | string | Which candle series: 'spot', 'perp', or 'auto' (default: spot preferred; perp when spot fails or its history is too short) |
Call it
One API key works for MCP, REST and WebSocket; each call uses one unit. Agents without an account can pay per call with x402.
curl "https://mcp.f1ow.com/v1/technicals/ETH?intervals=4h,1d" \
-H "Authorization: Bearer $F1OW_API_KEY"{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "ta_technicals",
"arguments": {
"symbol": "ETH",
"intervals": [
"4h",
"1d"
]
}
}
}const res = await fetch("https://mcp.f1ow.com/v1/technicals/ETH?intervals=4h,1d", {
headers: { Authorization: `Bearer ${process.env.F1OW_API_KEY}` },
});
const data = await res.json(); // the tool's result as JSON, typed in the OpenAPI spec
console.log(data);import os, requests
res = requests.get(
"https://mcp.f1ow.com/v1/technicals/ETH?intervals=4h,1d",
headers={"Authorization": f"Bearer {os.environ['F1OW_API_KEY']}"},
)
data = res.json() # the tool's result as JSON, typed in the OpenAPI spec
print(data)// wss://mcp.f1ow.com/v1/ws — subprotocol "jsonrpc-2.0", Authorization: Bearer <key>
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "ta_technicals",
"arguments": {
"symbol": "ETH",
"intervals": [
"4h",
"1d"
]
}
}
}
// Or push a fresh result whenever it changes (minimum interval 15 s)
{
"jsonrpc": "2.0",
"id": 2,
"method": "subscriptions/subscribe",
"params": {
"name": "ta_technicals",
"arguments": {
"symbol": "ETH",
"intervals": [
"4h",
"1d"
]
},
"intervalSeconds": 60
}
}# No account: the first call answers 402 with a PAYMENT-REQUIRED challenge;
# an x402 client pays it in USDC on Base and retries.
curl "https://mcp.f1ow.com/x402/v1/technicals/ETH?intervals=4h,1d"Sample response
A real response captured 2026-11-13. Interactive is the tool's MCP App rendering it, as Claude, ChatGPT and other MCP Apps hosts show it; here it is read-only. JSON is what REST and WebSocket return, and the structuredContent of an MCP call (trimmed for length), with generatedAt for freshness. Text is the report an MCP client hands to a model.
=== ETH technicals — computed from candles across 2 timeframes ===
Last price $1934.52 (4h spot close, Binance)
--- 4h (spot, Binance, 399 closed candles) (partial newest candle dropped) ---
Close $1934.52 | trend: downtrend (close < EMA50 < EMA200), ADX 56.4 (trending)
RSI(14) 22.2 | ATR(14) $39.6594 (2.05% of price)
EMA20 $2045.05 | EMA50 $2127.47 | EMA200 $2302.01 | SMA200 $2324.16
MACD(12,26,9) -51.51 | signal -45.29 | histogram -6.219 (below signal, crossed 2 candles ago)
Bollinger(20,2) $1951.00 - $2138.19 | %B -0.09 | bandwidth 9.2%
ADX(14) 56.4 | +DI 6.4 | -DI 45.0
Volume (last closed) $187.25M vs 20-candle avg $90.44M (2.1x)
2xATR stops from close: long $1855.20 / short $2013.84 (feed research_trade_plan)
--- 1d (spot, Binance, 399 closed candles) (partial newest candle dropped) ---
Close $2019.74 | trend: mixed (close below EMA50, below EMA200), ADX 26.5 (trending)
RSI(14) 28.1 | ATR(14) $96.7327 (4.79% of price)
EMA20 $2226.95 | EMA50 $2334.23 | EMA200 $2323.10 | SMA200 $2150.65
MACD(12,26,9) -97.05 | signal -77.32 | histogram -19.73 (below signal, crossed 5 candles ago)
Bollinger(20,2) $2024.50 - $2456.95 | %B -0.01 | bandwidth 19.3%
ADX(14) 26.5 | +DI 12.2 | -DI 29.9
Volume (last closed) $479.88M vs 20-candle avg $512.97M (0.9x)
2xATR stops from close: long $1826.27 / short $2213.21 (feed research_trade_plan)
--- Support / resistance (1d swings, last 365 closed candles, clustered within $48.3663; distances from $1934.52) ---
Resistance: $1939.27 (+0.2%, 9 swings, last 2026-08-07) | $2016.17 (+4.2%, 2 swings, last 2026-05-23) | $2092.45 (+8.2%, 2 swings, last 2026-05-18)
Support: $1818.86 (-6.0%, 9 swings, last 2026-08-11) | $1692.62 (-12.5%, 2 swings, last 2026-07-08) | $1508.84 (-22.0%, 2 swings, last 2026-06-26)
Window range: low $1505.68 (2026-06-06) – high $3565.84 (2025-11-13){
"discardedIntervals": [],
"failedIntervals": [],
"lastPriceUsd": 1934.52,
"levels": {
"interval": "1d",
"measuredFromUsd": 1934.52,
"rangeHighAt": "2025-11-13T00:00:00.0000000+00:00",
"rangeHighUsd": 3565.84,
"rangeLowAt": "2026-06-06T00:00:00.0000000+00:00",
"rangeLowUsd": 1505.68,
"resistances": [
{
"distancePct": 0.245538945061307,
"lastTouchAt": "2026-08-07T00:00:00.0000000+00:00",
"priceUsd": 1939.27,
"swings": 9
},
{
"distancePct": 4.22068523458016,
"lastTouchAt": "2026-05-23T00:00:00.0000000+00:00",
"priceUsd": 2016.17,
"swings": 2
},
{
"distancePct": 8.16378223021731,
"lastTouchAt": "2026-05-18T00:00:00.0000000+00:00",
"priceUsd": 2092.45,
"swings": 2
}
],
"supports": [
{
"distancePct": -5.9785717731875,
"lastTouchAt": "2026-08-11T00:00:00.0000000+00:00",
"priceUsd": 1818.86333333333,
"swings": 9
},
{
"distancePct": -12.5046523168538,
"lastTouchAt": "2026-07-08T00:00:00.0000000+00:00",
"priceUsd": 1692.615,
"swings": 2
},
{
"distancePct": -22.004424870252,
"lastTouchAt": "2026-06-26T00:00:00.0000000+00:00",
"priceUsd": 1508.84,
"swings": 2
}
],
"toleranceUsd": 48.3663407077018,
"windowCandles": 365
},
"referencePriceUsd": 1933.15,
"symbol": "ETH",
"timeframes": [
{
"adx14": 56.4188597718765,
"asOfAt": "2026-11-13T04:00:00.0000000+00:00",
"asOfMs": 1794542400000,
"atr14Pct": 2.05008801613496,
"atr14Usd": 39.6593626897341,
"bollinger": {
"bandwidthPct": 9.15542956253747,
"lowerUsd": 1951.00165802505,
"middleUsd": 2044.5975,
"percentB": -0.0880469563458775,
"upperUsd": 2138.19334197495
},
"closedCandles": 399,
"droppedPartialCandle": true,
"ema200Usd": 2302.0072046583,
"ema20Usd": 2045.05493345723,
"ema50Usd": 2127.46528586039,
"interval": "4h",
"lastCloseUsd": 1934.52,
"macd": {
"aboveSignal": false,
"candlesSinceCross": 2,
"histogram": -6.21884173933634,
"macd": -51.5070671924973,
"signal": -45.2882254531609
},
"market": "spot",
"minusDi14": 45.0363412977679,
"plusDi14": 6.42689149995672,
"rsi14": 22.1937075251791,
"sma200Usd": 2324.15735,
"source": "Binance",
"trend": "downtrend (close < EMA50 < EMA200), ADX 56.4 (trending)",
"volumeAvg20Usd": 90439090.5660812,
"volumeLastClosedUsd": 187245235.721526
},
{
"adx14": 26.5033205700375,
"asOfAt": "2026-11-12T00:00:00.0000000+00:00",
"asOfMs": 1794441600000,
"atr14Pct": 4.78936305739767,
"atr14Usd": 96.7326814154838,
"bollinger": {
"bandwidthPct": 19.299763744674,
"lowerUsd": 2024.49858791726,
"middleUsd": 2240.726,
"percentB": -0.011003664779183,
"upperUsd": 2456.95341208274
},
"closedCandles": 399,
"droppedPartialCandle": true,
"ema200Usd": 2323.09777459267,
"ema20Usd": 2226.946599274,
"ema50Usd": 2334.23192033727,
"interval": "1d",
"lastCloseUsd": 2019.74,
"macd": {
"aboveSignal": false,
"candlesSinceCross": 5,
"histogram": -19.7315278665382,
"macd": -97.053708531485,
"signal": -77.3221806649468
},
"market": "spot",
"minusDi14": 29.8773199729975,
"plusDi14": 12.209942488498,
"rsi14": 28.1181392951025,
"sma200Usd": 2150.6548,
"source": "Binance",
"trend": "mixed (close below EMA50, below EMA200), ADX 26.5 (trending)",
"volumeAvg20Usd": 512966545.430985,
"volumeLastClosedUsd": 479884504.609204
}
],
"generatedAt": "2026-11-13T04:00:00.0000000+00:00"
}Related tools
research_regimeWhat kind of market you are trading in. Seven forces — trend, volatility, cycle, sentiment, leverage stress, ETF liquidity, rotation — each voting with its own reasoning and its own threshold for changing the call.
research_positioningWho is on the other side of your trade. Up to eight reads on one coin — who is crowded, who is fragile, who is trapped — plus the price levels the whole board is watching.
research_opportunitiesA liquidity-qualified major and mid-cap universe screened on crowding, stress, leverage, compression, trend, location and entry quality. Ranked candidates with disclosed setup rules and entry, stop and target geometry — not a forecast or a proven edge.
research_trade_planCheck your entry, stop and target against ATR, perp levels, liquidation distance, fees, slippage and funding. Add account size and risk for sizing, or a placement time to replay a trade from public candles. An interactive ticket in MCP Apps hosts; no orders placed or plans stored.
Call Technicals from your agent
Sign in, get an API key and make your first call in under a minute. No card required.
For agents: this page as Markdown · all docs