AI crypto signals, whale positions, 19 technical indicators, derivatives, screener and backtests
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
What happened AFTER a condition in the past, on one symbol and timeframe — "how did BTC do after RSI dropped below 30 on 4h", "is a golden cross on ETH daily actually bullish", "what usually follows a −5% day on SOL". Runs an event study over the whole stored tape (up to 1000 candles: ~41 days on 1h, ~166 days on 4h, ~3 years on 1d): occurrences, average / median forward return, win rate, average best and worst excursion per horizon, the unconditional baseline over the same tape and the EDGE the condition adds over it, the last five episodes, and whether the condition is active on the latest bar. Same condition vocabulary as screen_symbols. Quote the edge and the sample size together — a 3-sample stat is an anecdote.
Trading pair, e.g. BTCUSDT (a bare "BTC" is read as its USDT perpetual)
Up to 3 conditions, AND-ed. Examples: RSI oversold = {"metric":"rsi","op":"lt","value":30}; above the 200 EMA = {"metric":"priceVsEma","op":"gt","value":0,"period":200}; golden cross = {"metric":"emaSpread","op":"crossAbove","value":0,"period":50,"period2":200}; MACD bullish cross = {"metric":"macdHistogram","op":"crossAbove","value":0}; dumped 5% in a day = {"metric":"changePct","op":"lt","value":-5,"period":24}.
Bars ahead to measure returns over (≤ 4). Default per interval ≈ 4h / 1d / 3d: 1h → [4, 24, 72], 4h → [6, 18, 42], 1d → [1, 3, 7].
Candle timeframe
What happened AFTER a condition in the past, on one symbol and timeframe — "how did BTC do after RSI dropped below 30 on 4h", "is a golden cross on ETH daily actually bullish", "what usually follows a −5% day on SOL". Runs an event study over the whole stored tape (up to 1000 candles: ~41 days on 1h, ~166 days on 4h, ~3 years on 1d): occurrences, average / median forward return, win rate, average best and worst excursion per horizon, the unconditional baseline over the same tape and the EDGE the condition adds over it, the last five episodes, and whether the condition is active on the latest bar. Same condition vocabulary as screen_symbols. Quote the edge and the sample size together — a 3-sample stat is an anecdote.
| Argument | Type | Description |
|---|---|---|
| symbol* | string | Trading pair, e.g. BTCUSDT (a bare "BTC" is read as its USDT perpetual) |
| horizons | array | Bars ahead to measure returns over (≤ 4). Default per interval ≈ 4h / 1d / 3d: 1h → [4, 24, 72], 4h → [6, 18, 42], 1d → [1, 3, 7]. |
| interval | string | Candle timeframe |
| conditions* | array | Up to 3 conditions, AND-ed. Examples: RSI oversold = {"metric":"rsi","op":"lt","value":30}; above the 200 EMA = {"metric":"priceVsEma","op":"gt","value":0,"period":200}; golden cross = {"metric":"emaSpread","op":"crossAbove","value":0,"period":50,"period2":200}; MACD bullish cross = {"metric":"macdHistogram","op":"crossAbove","value":0}; dumped 5% in a day = {"metric":"changePct","op":"lt","value":-5,"period":24}. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"symbol",
"conditions"
],
"properties": {
"symbol": {
"type": "string",
"description": "Trading pair, e.g. BTCUSDT (a bare \"BTC\" is read as its USDT perpetual)"
},
"horizons": {
"type": "array",
"items": {
"type": "integer",
"maximum": 200,
"minimum": 1
},
"maxItems": 4,
"minItems": 1,
"description": "Bars ahead to measure returns over (≤ 4). Default per interval ≈ 4h / 1d / 3d: 1h → [4, 24, 72], 4h → [6, 18, 42], 1d → [1, 3, 7]."
},
"interval": {
"enum": [
"1m",
"5m",
"15m",
"1h",
"4h",
"1d"
],
"type": "string",
"default": "4h",
"description": "Candle timeframe"
},
"conditions": {
"type": "array",
"items": {
"type": "object",
"required": [
"metric",
"op",
"value"
],
"properties": {
"op": {
"enum": [
"lt",
"gt",
"crossAbove",
"crossBelow"
],
"type": "string",
"description": "lt / gt compare the latest value; crossAbove / crossBelow are one-bar events (previous bar on the other side)."
},
"value": {
"type": "number",
"description": "Threshold, in the metric's own unit (RSI 30, %B 0, spread 0, change −5 …)"
},
"metric": {
"enum": [
"rsi",
"stochastic",
"cci",
"mfi",
"williamsR",
"adx",
"roc",
"macdHistogram",
"atrPct",
"volumeRatio",
"bbPercentB",
"bbWidthPct",
"priceVsEma",
"emaSpread",
"supertrend",
"changePct",
"price"
],
"type": "string",
"description": "Metric. Defaults in brackets. rsi(14): RSI, 0–100; stochastic(14,3): Stochastic %K (period; raw %K, the line TradingView draws with 14,1,3), 0–100; cci(20): Commodity Channel Index; mfi(14): Money Flow Index, 0–100; williamsR(14): Williams %R, −100–0; adx(14): Average Directional Index; roc(12): Rate of change in %; macdHistogram(12,26): MACD histogram (fast, slow; signal 9); atrPct(14): ATR as % of price; volumeRatio(20): Bar volume ÷ average of the previous N bars; bbPercentB(20): Position inside Bollinger (20, 2): 0 = lower band, 1 = upper band; bbWidthPct(20): Bollinger band width as % of the middle band; priceVsEma(50): % distance of close from EMA(period); > 0 = above; emaSpread(50,200): % of EMA(period) over EMA(period2); crossAbove 0 = golden cross; supertrend(10): +1 in an up-trend, −1 in a down-trend (ATR period, multiplier 3); changePct(24): % change of close over the last N bars; price: Close price"
},
"period": {
"type": "integer",
"maximum": 200,
"minimum": 2,
"description": "Override the metric's primary period (RSI length, EMA period, bars for changePct)"
},
"period2": {
"type": "integer",
"maximum": 200,
"minimum": 2,
"description": "Second period where the metric has one: slow EMA for emaSpread, slow MACD, stochastic %D"
}
},
"additionalProperties": false
},
"maxItems": 3,
"description": "Up to 3 conditions, AND-ed. Examples: RSI oversold = {\"metric\":\"rsi\",\"op\":\"lt\",\"value\":30}; above the 200 EMA = {\"metric\":\"priceVsEma\",\"op\":\"gt\",\"value\":0,\"period\":200}; golden cross = {\"metric\":\"emaSpread\",\"op\":\"crossAbove\",\"value\":0,\"period\":50,\"period2\":200}; MACD bullish cross = {\"metric\":\"macdHistogram\",\"op\":\"crossAbove\",\"value\":0}; dumped 5% in a day = {\"metric\":\"changePct\",\"op\":\"lt\",\"value\":-5,\"period\":24}."
}
},
"additionalProperties": false
}Get OHLCV (Open, High, Low, Close, Volume) candle data for a crypto futures symbol. Useful for charting, price history, and technical analysis.
| Argument | Type | Description |
|---|---|---|
| limit | number | Number of candles to return |
| symbol* | string | Trading pair symbol, e.g. BTCUSDT |
| interval | string | Candle interval/timeframe |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"symbol"
],
"properties": {
"limit": {
"type": "number",
"default": 100,
"maximum": 500,
"minimum": 1,
"description": "Number of candles to return"
},
"symbol": {
"type": "string",
"description": "Trading pair symbol, e.g. BTCUSDT"
},
"interval": {
"enum": [
"1m",
"5m",
"15m",
"1h",
"4h",
"1d"
],
"type": "string",
"default": "1h",
"description": "Candle interval/timeframe"
}
},
"additionalProperties": false
}Funding rate, open interest and positioning for Binance USDⓈ-M perpetual futures — the derivatives questions candles cannot answer: is funding high (who is paying whom, annualized), is open interest building or unwinding (24h/4h change, and the OI×price regime: new longs, short covering, new shorts, long liquidation), and which way accounts lean (top-trader long/short by position, all-account ratio, taker buy/sell flow). Each symbol carries plain-language notes — quote those. Up to 5 symbols per call; data is 60s fresh.
| Argument | Type | Description |
|---|---|---|
| symbols* | array | Up to 5 Binance USDⓈ-M futures symbols, e.g. ["BTCUSDT", "ETHUSDT"]. A bare base asset ("BTC") is read as its USDT perpetual. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"symbols"
],
"properties": {
"symbols": {
"type": "array",
"items": {
"type": "string"
},
"maxItems": 5,
"minItems": 1,
"description": "Up to 5 Binance USDⓈ-M futures symbols, e.g. [\"BTCUSDT\", \"ETHUSDT\"]. A bare base asset (\"BTC\") is read as its USDT perpetual."
}
},
"additionalProperties": false
}Use this when the user specifically asks for the elite leaderboard by SmartScore across exchanges.
No arguments.
{
"type": "object",
"properties": {}
}Use this when the user asks which exchanges are currently available in TraderSpy smart-money tracking.
No arguments.
{
"type": "object",
"properties": {}
}Use this when the user asks for aggregate market stats (positions, PNL, win rate), optionally scoped by source and period.
| Argument | Type | Description |
|---|---|---|
| period | string | Time period for closed position stats |
| source | string | Exchange filter |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"period": {
"enum": [
"4h",
"8h",
"24h",
"7d"
],
"type": "string",
"description": "Time period for closed position stats"
},
"source": {
"enum": [
"all",
"binance",
"hyperliquid",
"bybit",
"okx"
],
"type": "string",
"default": "all",
"description": "Exchange filter"
}
},
"additionalProperties": false
}Use this when the user asks for current or historical smart-money positions, optionally filtered by status, source, or symbol.
| Argument | Type | Description |
|---|---|---|
| limit | number | Number of positions to return |
| offset | number | Offset for pagination |
| source | string | Exchange filter |
| status | string | Position status filter |
| symbol | string | Filter by trading pair, e.g. BTC, ETHUSDT |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"limit": {
"type": "number",
"default": 20,
"maximum": 50,
"minimum": 1,
"description": "Number of positions to return"
},
"offset": {
"type": "number",
"default": 0,
"minimum": 0,
"description": "Offset for pagination"
},
"source": {
"enum": [
"all",
"binance",
"hyperliquid",
"bybit",
"okx"
],
"type": "string",
"default": "all",
"description": "Exchange filter"
},
"status": {
"enum": [
"all",
"open",
"closed"
],
"type": "string",
"default": "all",
"description": "Position status filter"
},
"symbol": {
"type": "string",
"description": "Filter by trading pair, e.g. BTC, ETHUSDT"
}
},
"additionalProperties": false
}Get real-time price data for one or more crypto futures symbols. Returns current price, 24h high/low, volume, and 24h price change percentage.
| Argument | Type | Description |
|---|---|---|
| symbols* | array | List of symbols to get prices for, e.g. ["BTCUSDT", "ETHUSDT"] |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"symbols"
],
"properties": {
"symbols": {
"type": "array",
"items": {
"type": "string"
},
"maxItems": 20,
"minItems": 1,
"description": "List of symbols to get prices for, e.g. [\"BTCUSDT\", \"ETHUSDT\"]"
}
},
"additionalProperties": false
}Use this when the user needs full details for one AI signal by ID, including review and resolution data.
| Argument | Type | Description |
|---|---|---|
| signalId* | string | The ID of the signal to retrieve |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"signalId"
],
"properties": {
"signalId": {
"type": "string",
"description": "The ID of the signal to retrieve"
}
},
"additionalProperties": false
}Use this when the user asks for aggregate AI signal performance statistics over a specific period — overall, or for one strategy (preset) by name. The answer also breaks the period down per strategy (byStrategy), which is how to learn the strategy names for get_signals.
| Argument | Type | Description |
|---|---|---|
| period | string | Time period for statistics |
| strategy | string | Only the signals of one AI strategy (preset), matched by part of its name, case-insensitive. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"period": {
"enum": [
"4h",
"8h",
"24h",
"7d"
],
"type": "string",
"default": "24h",
"description": "Time period for statistics"
},
"strategy": {
"type": "string",
"description": "Only the signals of one AI strategy (preset), matched by part of its name, case-insensitive."
}
},
"additionalProperties": false
}Use this when the user asks for recent public AI crypto trading signals, optionally filtered by coin, importance, strategy (the preset that produced them, by name) or pagination. When the user names a count ("last 5 signals"), pass it as `limit` — the card view renders exactly what was fetched, so over-fetching shows more cards than the user asked for.
| Argument | Type | Description |
|---|---|---|
| coin | string | Filter by coin symbol, e.g. BTC, ETH |
| skip | number | Offset for pagination |
| limit | number | Number of signals to return |
| strategy | string | Filter by the AI strategy (preset) that produced the signal — part of its name, words in order, case-insensitive, e.g. "ATR Squeeze" or "Triple Oversold". get_signal_stats (period 7d) lists the strategies that fired recently with their names; a filter that matches nothing answers with the closest names. |
| importance | string | Filter by signal importance |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"coin": {
"type": "string",
"description": "Filter by coin symbol, e.g. BTC, ETH"
},
"skip": {
"type": "number",
"default": 0,
"minimum": 0,
"description": "Offset for pagination"
},
"limit": {
"type": "number",
"default": 20,
"maximum": 50,
"minimum": 1,
"description": "Number of signals to return"
},
"strategy": {
"type": "string",
"description": "Filter by the AI strategy (preset) that produced the signal — part of its name, words in order, case-insensitive, e.g. \"ATR Squeeze\" or \"Triple Oversold\". get_signal_stats (period 7d) lists the strategies that fired recently with their names; a filter that matches nothing answers with the closest names."
},
"importance": {
"enum": [
"high",
"medium",
"low",
"all"
],
"type": "string",
"default": "all",
"description": "Filter by signal importance"
}
},
"additionalProperties": false
}Technical analysis for a crypto futures symbol. 19 indicators: RSI, MACD, EMA, SMA, Bollinger Bands, ATR, ADX (+DI/−DI), Stochastic, OBV (with price divergence), VWAP, CCI, MFI, Williams %R, ROC, SuperTrend, Ichimoku, Keltner Channels, classic pivot points and swing support/resistance levels. Every indicator returns its current value, the previous bar, a rising/falling/flat direction, a short `series` history and — where it applies — zones and crossovers. EMA/SMA accept several periods at once (default 20/50/200); every period is overridable via `periods`. Pass `intervals` (up to 3) to get 1h/4h/1d in ONE call with a multi-timeframe `confluence` verdict. Each timeframe also carries a `summary` (bias, trend, momentum, volatility, volume, plain-language notes) computed from a fixed indicator set — quote its notes rather than the raw score. For several coins pass `symbols` (up to 3) instead of one call per coin: ONE call and one quota unit, one entry per symbol in `data`.
| Argument | Type | Description |
|---|---|---|
| symbol | string | Trading pair symbol, e.g. BTCUSDT. For several pairs pass `symbols` instead. |
| history | integer | Prior values returned per indicator as `series` (oldest → newest, length history + 1). 0 = latest only. |
| periods | object | Optional period overrides, e.g. {"ema":[9,21,55,200],"rsi":7} |
| symbols | array | Up to 3 trading pairs in ONE call (one quota unit), e.g. ["BTCUSDT","ETHUSDT","SOLUSDT"]. The response then carries one entry per symbol in `data`, each shaped like the single-symbol response. |
Use this when the user wants ranked smart-money traders across supported exchanges with sorting and filtering.
| Argument | Type | Description |
|---|---|---|
| limit | number | Number of traders to return |
| order | string | Sort direction |
| sortBy | string | Sort metric (defaults to ranking type) |
| source | string | Exchange to filter by |
| timeRange | string | Performance time range |
| rankingType | string | Ranking snapshot type |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"limit": {
"type": "number",
"default": 20,
"maximum": 200,
"minimum": 1,
"description": "Number of traders to return"
},
"order": {
"enum": [
"ASC",
"DESC"
],
"type": "string",
"default": "DESC",
"description": "Sort direction"
},
"sortBy": {
"enum": [
"ROI",
"PNL",
"SCORE"
],
"type": "string",
"description": "Sort metric (defaults to ranking type)"
},
"source": {
"enum": [
"all",
"binance",
"hyperliquid",
"bybit",
"okx"
],
"type": "string",
"default": "all",
"description": "Exchange to filter by"
},
"timeRange": {
"enum": [
"24h",
"3D",
"7D",
"30D"
],
"type": "string",
"default": "30D",
"description": "Performance time range"
},
"rankingType": {
"enum": [
"ROI",
"PNL"
],
"type": "string",
"default": "ROI",
"description": "Ranking snapshot type"
}
},
"additionalProperties": false
}List all crypto futures symbols currently tracked by TraderSpy with real-time candle data available.
No arguments.
{
"type": "object",
"properties": {}
}Use this when the user asks for closed trade history of a specific trader.
| Argument | Type | Description |
|---|---|---|
| page | number | Page number |
| limit | number | Results per page |
| source | string | Exchange |
| traderId* | string | The trader ID |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"traderId"
],
"properties": {
"page": {
"type": "number",
"default": 1,
"minimum": 1,
"description": "Page number"
},
"limit": {
"type": "number",
"default": 20,
"maximum": 50,
"minimum": 1,
"description": "Results per page"
},
"source": {
"enum": [
"binance",
"hyperliquid",
"bybit",
"okx"
],
"type": "string",
"default": "binance",
"description": "Exchange"
},
"traderId": {
"type": "string",
"description": "The trader ID"
}
},
"additionalProperties": false
}Use this when the user needs one trader profile, including metrics and latest positions.
| Argument | Type | Description |
|---|---|---|
| source | string | Exchange the trader is on |
| traderId* | string | The trader ID |
| timeRange | string | Performance time range |
| rankingType | string | Ranking snapshot type |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"traderId"
],
"properties": {
"source": {
"enum": [
"binance",
"hyperliquid",
"bybit",
"okx"
],
"type": "string",
"default": "binance",
"description": "Exchange the trader is on"
},
"traderId": {
"type": "string",
"description": "The trader ID"
},
"timeRange": {
"enum": [
"24h",
"3D",
"7D",
"30D"
],
"type": "string",
"default": "30D",
"description": "Performance time range"
},
"rankingType": {
"enum": [
"ROI",
"PNL"
],
"type": "string",
"default": "ROI",
"description": "Ranking snapshot type"
}
},
"additionalProperties": false
}Screen MANY crypto futures symbols at once on one timeframe — "which coins are oversold on 4h", "what is above its 200 EMA with rising volume", "show me squeezes". Give up to 3 AND-ed conditions from a fixed metric list (RSI, stochastic, CCI, MFI, Williams %R, ADX, ROC, MACD histogram, ATR%, volume ratio, Bollinger %B / width, price vs EMA, EMA spread, SuperTrend, change %, price) with lt / gt / crossAbove / crossBelow. Scans the most-traded symbols by 24h volume (default 50, max 100) or an explicit list; every row carries the metric values plus bias, trend, RSI, ADX, ATR% and 24h change. With NO conditions and explicit `symbols` it is a side-by-side comparison table ("compare BTC, ETH, SOL"). ONE quota unit however many symbols — always prefer this over calling get_technical_indicators in a loop.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Rows to return |
| sortBy | string | volume (24h quote volume), change24h, or metric (the first condition's metric). Default: metric when conditions are given, else volume. |
| symbols | array | Explicit symbols to scan (≤ 100, e.g. ["BTC","ETH","SOL"]). Omit to scan the most-traded symbols instead. With no `conditions`, every listed symbol is returned as a comparison table. |
| interval | string | Candle timeframe to evaluate on |
| universe | integer | How many of the most-traded symbols (by 24h volume) to scan when `symbols` is omitted (max 100) |
| interval |
| string |
| Candle timeframe. Ignored when `intervals` is given. |
| intervals | array | Up to 3 timeframes in ONE call (one quota unit), e.g. ["1h","4h","1d"]. The response then carries per-timeframe results plus a `confluence` verdict. |
| indicators | array | Indicators to compute. `levels` = swing support/resistance from price structure, `pivots` = classic floor pivots from the previous day. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"symbol": {
"type": "string",
"description": "Trading pair symbol, e.g. BTCUSDT. For several pairs pass `symbols` instead."
},
"history": {
"type": "integer",
"default": 5,
"maximum": 20,
"minimum": 0,
"description": "Prior values returned per indicator as `series` (oldest → newest, length history + 1). 0 = latest only."
},
"periods": {
"type": "object",
"properties": {
"adx": {
"type": "integer",
"maximum": 500,
"minimum": 2,
"description": "ADX period (default 14)"
},
"atr": {
"type": "integer",
"maximum": 500,
"minimum": 2,
"description": "ATR period (default 14)"
},
"cci": {
"type": "integer",
"maximum": 500,
"minimum": 2,
"description": "CCI period (default 20)"
},
"ema": {
"type": "array",
"items": {
"type": "integer",
"maximum": 500,
"minimum": 2
},
"maxItems": 4,
"minItems": 1,
"description": "EMA periods, up to 4 (default [20, 50, 200])"
},
"mfi": {
"type": "integer",
"maximum": 500,
"minimum": 2,
"description": "MFI period (default 14)"
},
"obv": {
"type": "integer",
"maximum": 500,
"minimum": 2,
"description": "OBV averaging window (default 20)"
},
"roc": {
"type": "integer",
"maximum": 500,
"minimum": 2,
"description": "Rate-of-change period (default 12)"
},
"rsi": {
"type": "integer",
"maximum": 500,
"minimum": 2,
"description": "RSI period (default 14)"
},
"sma": {
"type": "array",
"items": {
"type": "integer",
"maximum": 500,
"minimum": 2
},
"maxItems": 4,
"minItems": 1,
"description": "SMA periods, up to 4 (default [20, 50, 200])"
},
"vwap": {
"type": "integer",
"maximum": 500,
"minimum": 2,
"description": "Rolling VWAP window in bars (default 48)"
},
"keltner": {
"type": "integer",
"maximum": 500,
"minimum": 2,
"description": "Keltner EMA period (default 20)"
},
"macdFast": {
"type": "integer",
"maximum": 500,
"minimum": 2,
"description": "MACD fast EMA (default 12)"
},
"macdSlow": {
"type": "integer",
"maximum": 500,
"minimum": 2,
"description": "MACD slow EMA (default 26)"
},
"bollinger": {
"type": "integer",
"maximum": 500,
"minimum": 2,
"description": "Bollinger period (default 20)"
},
"williamsR": {
"type": "integer",
"maximum": 500,
"minimum": 2,
"description": "Williams %R period (default 14)"
},
"keltnerAtr": {
"type": "integer",
"maximum": 500,
"minimum": 2,
"description": "Keltner ATR period (default 10)"
},
"macdSignal": {
"type": "integer",
"maximum": 500,
"minimum": 2,
"description": "MACD signal EMA (default 9)"
},
"stochastic": {
"type": "integer",
"maximum": 500,
"minimum": 2,
"description": "Stochastic %K period (default 14)"
},
"supertrend": {
"type": "integer",
"maximum": 500,
"minimum": 2,
"description": "SuperTrend ATR period (default 10)"
},
"bollingerStdDev": {
"type": "number",
"maximum": 5,
"minimum": 0.5,
"description": "Bollinger std-dev multiplier (default 2)"
},
"stochasticSignal": {
"type": "integer",
"maximum": 500,
"minimum": 2,
"description": "Stochastic %D smoothing (default 3)"
},
"keltnerMultiplier": {
"type": "number",
"maximum": 10,
"minimum": 0.5,
"description": "Keltner ATR multiplier (default 2)"
},
"supertrendMultiplier": {
"type": "number",
"maximum": 10,
"minimum": 0.5,
"description": "SuperTrend ATR multiplier (default 3)"
}
},
"description": "Optional period overrides, e.g. {\"ema\":[9,21,55,200],\"rsi\":7}",
"additionalProperties": false
},
"symbols": {
"type": "array",
"items": {
"type": "string"
},
"maxItems": 3,
"minItems": 1,
"description": "Up to 3 trading pairs in ONE call (one quota unit), e.g. [\"BTCUSDT\",\"ETHUSDT\",\"SOLUSDT\"]. The response then carries one entry per symbol in `data`, each shaped like the single-symbol response."
},
"interval": {
"enum": [
"1m",
"5m",
"15m",
"1h",
"4h",
"1d"
],
"type": "string",
"default": "1h",
"description": "Candle timeframe. Ignored when `intervals` is given."
},
"intervals": {
"type": "array",
"items": {
"enum": [
"1m",
"5m",
"15m",
"1h",
"4h",
"1d"
],
"type": "string"
},
"maxItems": 3,
"minItems": 1,
"description": "Up to 3 timeframes in ONE call (one quota unit), e.g. [\"1h\",\"4h\",\"1d\"]. The response then carries per-timeframe results plus a `confluence` verdict."
},
"indicators": {
"type": "array",
"items": {
"enum": [
"rsi",
"macd",
"ema",
"sma",
"bollinger",
"atr",
"adx",
"stochastic",
"obv",
"vwap",
"cci",
"mfi",
"williamsR",
"roc",
"supertrend",
"ichimoku",
"keltner",
"pivots",
"levels"
],
"type": "string"
},
"default": [
"rsi",
"macd",
"ema",
"bollinger"
],
"maxItems": 19,
"minItems": 1,
"description": "Indicators to compute. `levels` = swing support/resistance from price structure, `pivots` = classic floor pivots from the previous day."
}
},
"additionalProperties": false
}| sortOrder |
| string |
| conditions | array | Up to 3 conditions, AND-ed. Examples: RSI oversold = {"metric":"rsi","op":"lt","value":30}; above the 200 EMA = {"metric":"priceVsEma","op":"gt","value":0,"period":200}; golden cross = {"metric":"emaSpread","op":"crossAbove","value":0,"period":50,"period2":200}; MACD bullish cross = {"metric":"macdHistogram","op":"crossAbove","value":0}; dumped 5% in a day = {"metric":"changePct","op":"lt","value":-5,"period":24}. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"limit": {
"type": "integer",
"default": 20,
"maximum": 50,
"minimum": 1,
"description": "Rows to return"
},
"sortBy": {
"enum": [
"volume",
"change24h",
"metric"
],
"type": "string",
"description": "volume (24h quote volume), change24h, or metric (the first condition's metric). Default: metric when conditions are given, else volume."
},
"symbols": {
"type": "array",
"items": {
"type": "string"
},
"maxItems": 100,
"minItems": 1,
"description": "Explicit symbols to scan (≤ 100, e.g. [\"BTC\",\"ETH\",\"SOL\"]). Omit to scan the most-traded symbols instead. With no `conditions`, every listed symbol is returned as a comparison table."
},
"interval": {
"enum": [
"1m",
"5m",
"15m",
"1h",
"4h",
"1d"
],
"type": "string",
"default": "4h",
"description": "Candle timeframe to evaluate on"
},
"universe": {
"type": "integer",
"default": 50,
"maximum": 100,
"minimum": 5,
"description": "How many of the most-traded symbols (by 24h volume) to scan when `symbols` is omitted (max 100)"
},
"sortOrder": {
"enum": [
"asc",
"desc"
],
"type": "string",
"default": "desc"
},
"conditions": {
"type": "array",
"items": {
"type": "object",
"required": [
"metric",
"op",
"value"
],
"properties": {
"op": {
"enum": [
"lt",
"gt",
"crossAbove",
"crossBelow"
],
"type": "string",
"description": "lt / gt compare the latest value; crossAbove / crossBelow are one-bar events (previous bar on the other side)."
},
"value": {
"type": "number",
"description": "Threshold, in the metric's own unit (RSI 30, %B 0, spread 0, change −5 …)"
},
"metric": {
"enum": [
"rsi",
"stochastic",
"cci",
"mfi",
"williamsR",
"adx",
"roc",
"macdHistogram",
"atrPct",
"volumeRatio",
"bbPercentB",
"bbWidthPct",
"priceVsEma",
"emaSpread",
"supertrend",
"changePct",
"price"
],
"type": "string",
"description": "Metric. Defaults in brackets. rsi(14): RSI, 0–100; stochastic(14,3): Stochastic %K (period; raw %K, the line TradingView draws with 14,1,3), 0–100; cci(20): Commodity Channel Index; mfi(14): Money Flow Index, 0–100; williamsR(14): Williams %R, −100–0; adx(14): Average Directional Index; roc(12): Rate of change in %; macdHistogram(12,26): MACD histogram (fast, slow; signal 9); atrPct(14): ATR as % of price; volumeRatio(20): Bar volume ÷ average of the previous N bars; bbPercentB(20): Position inside Bollinger (20, 2): 0 = lower band, 1 = upper band; bbWidthPct(20): Bollinger band width as % of the middle band; priceVsEma(50): % distance of close from EMA(period); > 0 = above; emaSpread(50,200): % of EMA(period) over EMA(period2); crossAbove 0 = golden cross; supertrend(10): +1 in an up-trend, −1 in a down-trend (ATR period, multiplier 3); changePct(24): % change of close over the last N bars; price: Close price"
},
"period": {
"type": "integer",
"maximum": 200,
"minimum": 2,
"description": "Override the metric's primary period (RSI length, EMA period, bars for changePct)"
},
"period2": {
"type": "integer",
"maximum": 200,
"minimum": 2,
"description": "Second period where the metric has one: slow EMA for emaSpread, slow MACD, stochastic %D"
}
},
"additionalProperties": false
},
"maxItems": 3,
"description": "Up to 3 conditions, AND-ed. Examples: RSI oversold = {\"metric\":\"rsi\",\"op\":\"lt\",\"value\":30}; above the 200 EMA = {\"metric\":\"priceVsEma\",\"op\":\"gt\",\"value\":0,\"period\":200}; golden cross = {\"metric\":\"emaSpread\",\"op\":\"crossAbove\",\"value\":0,\"period\":50,\"period2\":200}; MACD bullish cross = {\"metric\":\"macdHistogram\",\"op\":\"crossAbove\",\"value\":0}; dumped 5% in a day = {\"metric\":\"changePct\",\"op\":\"lt\",\"value\":-5,\"period\":24}."
}
},
"additionalProperties": false
}