TraderSpy
AI crypto signals, whale positions, 19 technical indicators, derivatives, screener and backtests
我該用這個嗎
品質與安全性
根據工具定義與協定合規性的自動化分析。
上下文成本
這是每次將伺服器的工具載入模型上下文時所消耗的約略 token 數量。數量越高,可用於其他工作的注意力就越少。
安裝
一鍵安裝
將以下內容加入你的 `claude_desktop_config.json` 檔案:
{
"mcpServers": {
"traderspy": {
"url": "https://mcp.traderspy.app/mcp"
}
}
}遠端端點
https://mcp.traderspy.app/mcpstreamable-http它能做什麼
工具清單
工具(17)
🟢get_signals(limit, skip, importance, coin)
Use this when the user asks for recent public AI crypto trading signals, optionally filtered by coin, importance, 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.
輸入結構描述
{
"type": "object",
"properties": {
"limit": {
"type": "number",
"minimum": 1,
"maximum": 50,
"default": 20,
"description": "Number of signals to return"
},
"skip": {
"type": "number",
"minimum": 0,
"default": 0,
"description": "Offset for pagination"
},
"importance": {
"type": "string",
"enum": [
"high",
"medium",
"low",
"all"
],
"default": "all",
"description": "Filter by signal importance"
},
"coin": {
"type": "string",
"description": "Filter by coin symbol, e.g. BTC, ETH"
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}輸出結構描述
{
"type": "object",
"properties": {
"data": {
"anyOf": [
{
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": [
"string",
"null"
],
"description": "Signal id — pass to get_signal_details"
},
"strategyName": {
"type": [
"string",
"null"
],
"description": "Preset that produced the signal"
},
"importance": {
"type": [
"string",
"null"
],
"description": "high | medium | low"
},
"action": {
"type": [
"string",
"null"
],
"description": "buy or sell"
},
"signalStrength": {
"type": [
"string",
"null"
],
"description": "weak | moderate | strong | very_strong"
},
"coin": {
"type": [
"string",
"null"
]
},
"timeframe": {
"type": [
"string",
"null"
],
"description": "Chart timeframe the preset evaluated, e.g. 4h"
},
"price": {
"type": [
"number",
"null"
],
"description": "Price when the signal triggered"
},
"targets": {
"anyOf": [
{
"type": "array",
"items": {
"type": "object",
"properties": {},
"additionalProperties": true
}
},
{
"type": "null"
}
],
"description": "Take-profit and stop levels: { label, type, pct }"
},
"triggeredConditions": {
"anyOf": [
{
"type": "array",
"items": {}
},
{
"type": "null"
}
]
},
"resolutionStatus": {
"type": [
"string",
"null"
],
"description": "pending | stop | tp1_hit | tp2_hit | tp3_hit | profit_locked | expired"
},
"createdAt": {
"anyOf": [
{
"anyOf": [
{
"type": "string"
},
{
"type": "number"
},
{
"type": "string",
"format": "date-time"
}
]
},
{
"type": "null"
}
]
}
},
"additionalProperties": true
}
},
{
"type": "null"
}
],
"description": "Signals, newest first"
},
"pagination": {
"anyOf": [
{
"type": "object",
"properties": {
"limit": {
"type": [
"number",
"null"
]
},
"skip": {
"type": [
"number",
"null"
]
},
"total": {
"type": [
"number",
"null"
]
},
"hasMore": {
"type": [
"boolean",
"null"
]
}
},
"additionalProperties": true
},
{
"type": "null"
}
]
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_signal_details(signalId)
Use this when the user needs full details for one AI signal by ID, including review and resolution data.
輸入結構描述
{
"type": "object",
"properties": {
"signalId": {
"type": "string",
"description": "The ID of the signal to retrieve"
}
},
"required": [
"signalId"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}輸出結構描述
{
"type": "object",
"properties": {
"id": {
"type": [
"string",
"null"
],
"description": "Signal id — pass to get_signal_details"
},
"strategyName": {
"type": [
"string",
"null"
],
"description": "Preset that produced the signal"
},
"importance": {
"type": [
"string",
"null"
],
"description": "high | medium | low"
},
"action": {
"type": [
"string",
"null"
],
"description": "buy or sell"
},
"signalStrength": {
"type": [
"string",
"null"
],
"description": "weak | moderate | strong | very_strong"
},
"coin": {
"type": [
"string",
"null"
]
},
"timeframe": {
"type": [
"string",
"null"
],
"description": "Chart timeframe the preset evaluated, e.g. 4h"
},
"price": {
"type": [
"number",
"null"
],
"description": "Price when the signal triggered"
},
"targets": {
"anyOf": [
{
"type": "array",
"items": {
"type": "object",
"properties": {},
"additionalProperties": true
}
},
{
"type": "null"
}
],
"description": "Take-profit and stop levels: { label, type, pct }"
},
"triggeredConditions": {
"anyOf": [
{
"type": "array",
"items": {}
},
{
"type": "null"
}
]
},
"resolutionStatus": {
"type": [
"string",
"null"
],
"description": "pending | stop | tp1_hit | tp2_hit | tp3_hit | profit_locked | expired"
},
"createdAt": {
"anyOf": [
{
"anyOf": [
{
"type": "string"
},
{
"type": "number"
},
{
"type": "string",
"format": "date-time"
}
]
},
{
"type": "null"
}
]
},
"livePrice": {
"type": [
"number",
"null"
],
"description": "Current price, so the model can judge whether the signal still stands"
},
"indicatorValues": {
"anyOf": [
{
"type": "object",
"properties": {},
"additionalProperties": true
},
{
"type": "null"
}
],
"description": "Indicator readings at trigger time"
},
"aiReview": {
"anyOf": [
{
"type": "object",
"properties": {
"score": {
"type": [
"number",
"null"
]
},
"decision": {
"type": [
"string",
"null"
]
},
"analysis": {
"type": [
"string",
"null"
]
}
},
"additionalProperties": true
},
{
"type": "null"
}
]
},
"history": {
"anyOf": [
{
"type": "object",
"properties": {
"entryPrice": {
"type": [
"number",
"null"
]
},
"currentPrice": {
"type": [
"number",
"null"
]
},
"highestPrice": {
"type": [
"number",
"null"
]
},
"lowestPrice": {
"type": [
"number",
"null"
]
},
"resolution": {
"anyOf": [
{
"type": "object",
"properties": {},
"additionalProperties": true
},
{
"type": "null"
}
],
"description": "{ status, price, time } once resolved"
}
},
"additionalProperties": true
},
{
"type": "null"
}
]
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_signal_stats(period)
Use this when the user asks for aggregate AI signal performance statistics over a specific period.
輸入結構描述
{
"type": "object",
"properties": {
"period": {
"type": "string",
"enum": [
"4h",
"8h",
"24h",
"7d"
],
"default": "24h",
"description": "Time period for statistics"
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}輸出結構描述
{
"type": "object",
"properties": {
"total": {
"type": [
"number",
"null"
],
"description": "Signals published in the period"
},
"targetHits": {
"type": [
"number",
"null"
],
"description": "Signals that reached a take-profit or locked profit"
},
"stopped": {
"type": [
"number",
"null"
]
},
"pending": {
"type": [
"number",
"null"
],
"description": "Still open at the end of the period"
},
"highCount": {
"type": [
"number",
"null"
],
"description": "High-importance signals"
},
"winRate": {
"type": [
"number",
"null"
],
"description": "targetHits / resolved, as a percentage; null when nothing resolved"
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_top_traders(source, timeRange, rankingType, sortBy, order, ...)
Use this when the user wants ranked smart-money traders across supported exchanges with sorting and filtering.
輸入結構描述
{
"type": "object",
"properties": {
"source": {
"type": "string",
"enum": [
"all",
"binance",
"hyperliquid",
"bybit",
"okx"
],
"default": "all",
"description": "Exchange to filter by"
},
"timeRange": {
"type": "string",
"enum": [
"24h",
"3D",
"7D",
"30D"
],
"default": "30D",
"description": "Performance time range"
},
"rankingType": {
"type": "string",
"enum": [
"ROI",
"PNL"
],
"default": "ROI",
"description": "Ranking snapshot type"
},
"sortBy": {
"type": "string",
"enum": [
"ROI",
"PNL",
"SCORE"
],
"description": "Sort metric (defaults to ranking type)"
},
"order": {
"type": "string",
"enum": [
"ASC",
"DESC"
],
"default": "DESC",
"description": "Sort direction"
},
"limit": {
"type": "number",
"minimum": 1,
"maximum": 200,
"default": 20,
"description": "Number of traders to return"
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}輸出結構描述
{
"type": "object",
"properties": {
"data": {
"anyOf": [
{
"type": "array",
"items": {
"type": "object",
"properties": {},
"additionalProperties": true
}
},
{
"type": "null"
}
],
"description": "Ranked traders: source, topTraderId, traderName, roi, pnl, winRate, smartScore, rank, rankings[]"
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_elite_leaderboard
Use this when the user specifically asks for the elite leaderboard by SmartScore across exchanges.
輸入結構描述
{
"type": "object",
"properties": {}
}輸出結構描述
{
"type": "object",
"properties": {
"key": {
"type": [
"string",
"null"
]
},
"source": {
"type": [
"string",
"null"
]
},
"title": {
"type": [
"string",
"null"
]
},
"algorithmVersion": {
"type": [
"string",
"null"
]
},
"leaders": {
"anyOf": [
{
"type": "array",
"items": {
"type": "object",
"properties": {},
"additionalProperties": true
}
},
{
"type": "null"
}
],
"description": "Ranked traders with score, scoreBreakdown, metrics, rationale[] and tier"
},
"algorithmDetails": {
"anyOf": [
{
"type": "array",
"items": {
"type": "object",
"properties": {},
"additionalProperties": true
}
},
{
"type": "null"
}
],
"description": "How each scoring component is weighted"
},
"summary": {
"anyOf": [
{
"type": "object",
"properties": {},
"additionalProperties": true
},
{
"type": "null"
}
],
"description": "Coverage of the run: traders scored, trades counted"
},
"lastRunAt": {
"anyOf": [
{
"anyOf": [
{
"type": "string"
},
{
"type": "number"
},
{
"type": "string",
"format": "date-time"
}
]
},
{
"type": "null"
}
]
},
"updatedAt": {
"anyOf": [
{
"anyOf": [
{
"type": "string"
},
{
"type": "number"
},
{
"type": "string",
"format": "date-time"
}
]
},
{
"type": "null"
}
]
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_trader_profile(traderId, source, timeRange, rankingType)
Use this when the user needs one trader profile, including metrics and latest positions.
輸入結構描述
{
"type": "object",
"properties": {
"traderId": {
"type": "string",
"description": "The trader ID"
},
"source": {
"type": "string",
"enum": [
"binance",
"hyperliquid",
"bybit",
"okx"
],
"default": "binance",
"description": "Exchange the trader is on"
},
"timeRange": {
"type": "string",
"enum": [
"24h",
"3D",
"7D",
"30D"
],
"default": "30D",
"description": "Performance time range"
},
"rankingType": {
"type": "string",
"enum": [
"ROI",
"PNL"
],
"default": "ROI",
"description": "Ranking snapshot type"
}
},
"required": [
"traderId"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}輸出結構描述
{
"type": "object",
"properties": {
"source": {
"type": [
"string",
"null"
]
},
"topTraderId": {
"type": [
"string",
"null"
]
},
"traderName": {
"type": [
"string",
"null"
]
},
"avatarUrl": {
"type": [
"string",
"null"
]
},
"roi": {
"type": [
"number",
"null"
]
},
"pnl": {
"type": [
"number",
"null"
]
},
"mdd": {
"type": [
"number",
"null"
],
"description": "Maximum drawdown"
},
"winRate": {
"type": [
"number",
"null"
]
},
"aum": {
"type": [
"number",
"null"
]
},
"smartScore": {
"type": [
"number",
"null"
]
},
"timeRange": {
"type": [
"string",
"null"
]
},
"rankingType": {
"type": [
"string",
"null"
]
},
"rank": {
"type": [
"number",
"null"
]
},
"positions": {
"anyOf": [
{
"type": "array",
"items": {
"type": "object",
"properties": {
"symbol": {
"type": [
"string",
"null"
]
},
"side": {
"type": [
"string",
"null"
]
},
"size": {
"type": [
"number",
"null"
]
},
"entryPrice": {
"type": [
"number",
"null"
]
},
"markPrice": {
"type": [
"number",
"null"
]
},
"closePrice": {
"type": [
"number",
"null"
]
},
"leverage": {
"type": [
"number",
"null"
]
},
"unrealizedPnl": {
"type": [
"number",
"null"
]
},
"pnl": {
"type": [
"number",
"null"
]
},
"roi": {
"type": [
"number",
"null"
]
},
"openTime": {
"anyOf": [
{
"anyOf": [
{
"type": "string"
},
{
"type": "number"
},
{
"type": "string",
"format": "date-time"
}
]
},
{
"type": "null"
}
]
},
"closeTime": {
"anyOf": [
{
"anyOf": [
{
"type": "string"
},
{
"type": "number"
},
{
"type": "string",
"format": "date-time"
}
]
},
{
"type": "null"
}
]
},
"isOpen": {
"type": [
"boolean",
"null"
]
},
"lastEvent": {
"type": [
"string",
"null"
]
}
},
"additionalProperties": true
}
},
{
"type": "null"
}
],
"description": "Currently tracked positions"
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_trader_position_history(traderId, source, page, limit)
Use this when the user asks for closed trade history of a specific trader.
輸入結構描述
{
"type": "object",
"properties": {
"traderId": {
"type": "string",
"description": "The trader ID"
},
"source": {
"type": "string",
"enum": [
"binance",
"hyperliquid",
"bybit",
"okx"
],
"default": "binance",
"description": "Exchange"
},
"page": {
"type": "number",
"minimum": 1,
"default": 1,
"description": "Page number"
},
"limit": {
"type": "number",
"minimum": 1,
"maximum": 50,
"default": 20,
"description": "Results per page"
}
},
"required": [
"traderId"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}輸出結構描述
{
"type": "object",
"properties": {
"data": {
"anyOf": [
{
"type": "array",
"items": {
"type": "object",
"properties": {
"symbol": {
"type": [
"string",
"null"
]
},
"side": {
"type": [
"string",
"null"
]
},
"size": {
"type": [
"number",
"null"
]
},
"entryPrice": {
"type": [
"number",
"null"
]
},
"markPrice": {
"type": [
"number",
"null"
]
},
"closePrice": {
"type": [
"number",
"null"
]
},
"leverage": {
"type": [
"number",
"null"
]
},
"unrealizedPnl": {
"type": [
"number",
"null"
]
},
"pnl": {
"type": [
"number",
"null"
]
},
"roi": {
"type": [
"number",
"null"
]
},
"openTime": {
"anyOf": [
{
"anyOf": [
{
"type": "string"
},
{
"type": "number"
},
{
"type": "string",
"format": "date-time"
}
]
},
{
"type": "null"
}
]
},
"closeTime": {
"anyOf": [
{
"anyOf": [
{
"type": "string"
},
{
"type": "number"
},
{
"type": "string",
"format": "date-time"
}
]
},
{
"type": "null"
}
]
},
"isOpen": {
"type": [
"boolean",
"null"
]
},
"lastEvent": {
"type": [
"string",
"null"
]
}
},
"additionalProperties": true
}
},
{
"type": "null"
}
],
"description": "Closed positions, most recently closed first"
},
"pagination": {
"anyOf": [
{
"type": "object",
"properties": {
"page": {
"type": [
"number",
"null"
]
},
"limit": {
"type": [
"number",
"null"
]
},
"total": {
"type": [
"number",
"null"
]
},
"hasMore": {
"type": [
"boolean",
"null"
]
}
},
"additionalProperties": true
},
{
"type": "null"
}
]
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_positions(status, source, symbol, limit, offset)
Use this when the user asks for current or historical smart-money positions, optionally filtered by status, source, or symbol.
輸入結構描述
{
"type": "object",
"properties": {
"status": {
"type": "string",
"enum": [
"all",
"open",
"closed"
],
"default": "all",
"description": "Position status filter"
},
"source": {
"type": "string",
"enum": [
"all",
"binance",
"hyperliquid",
"bybit",
"okx"
],
"default": "all",
"description": "Exchange filter"
},
"symbol": {
"type": "string",
"description": "Filter by trading pair, e.g. BTC, ETHUSDT"
},
"limit": {
"type": "number",
"minimum": 1,
"maximum": 50,
"default": 20,
"description": "Number of positions to return"
},
"offset": {
"type": "number",
"minimum": 0,
"default": 0,
"description": "Offset for pagination"
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}輸出結構描述
{
"type": "object",
"properties": {
"data": {
"anyOf": [
{
"type": "array",
"items": {
"allOf": [
{
"type": "object",
"properties": {
"symbol": {
"type": [
"string",
"null"
]
},
"side": {
"type": [
"string",
"null"
]
},
"size": {
"type": [
"number",
"null"
]
},
"entryPrice": {
"type": [
"number",
"null"
]
},
"markPrice": {
"type": [
"number",
"null"
]
},
"closePrice": {
"type": [
"number",
"null"
]
},
"leverage": {
"type": [
"number",
"null"
]
},
"unrealizedPnl": {
"type": [
"number",
"null"
]
},
"pnl": {
"type": [
"number",
"null"
]
},
"roi": {
"type": [
"number",
"null"
]
},
"openTime": {
"anyOf": [
{
"anyOf": [
{
"type": "string"
},
{
"type": "number"
},
{
"type": "string",
"format": "date-time"
}
]
},
{
"type": "null"
}
]
},
"closeTime": {
"anyOf": [
{
"anyOf": [
{
"type": "string"
},
{
"type": "number"
},
{
"type": "string",
"format": "date-time"
}
]
},
{
"type": "null"
}
]
},
"isOpen": {
"type": [
"boolean",
"null"
]
},
"lastEvent": {
"type": [
"string",
"null"
]
}
},
"additionalProperties": true
},
{
"type": "object",
"properties": {
"sortDate": {
"anyOf": [
{
"anyOf": [
{
"type": "string"
},
{
"type": "number"
},
{
"type": "string",
"format": "date-time"
}
]
},
{
"type": "null"
}
]
}
},
"additionalProperties": true
}
]
}
},
{
"type": "null"
}
],
"description": "Smart money positions across the tracked exchanges"
},
"pagination": {
"anyOf": [
{
"type": "object",
"properties": {
"offset": {
"type": [
"number",
"null"
]
},
"limit": {
"type": [
"number",
"null"
]
},
"total": {
"type": [
"number",
"null"
]
},
"hasMore": {
"type": [
"boolean",
"null"
]
}
},
"additionalProperties": true
},
{
"type": "null"
}
]
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_market_stats(source, period)
Use this when the user asks for aggregate market stats (positions, PNL, win rate), optionally scoped by source and period.
輸入結構描述
{
"type": "object",
"properties": {
"source": {
"type": "string",
"enum": [
"all",
"binance",
"hyperliquid",
"bybit",
"okx"
],
"default": "all",
"description": "Exchange filter"
},
"period": {
"type": "string",
"enum": [
"4h",
"8h",
"24h",
"7d"
],
"description": "Time period for closed position stats"
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}輸出結構描述
{
"type": "object",
"properties": {
"totalPositions": {
"type": [
"number",
"null"
]
},
"openPositions": {
"type": [
"number",
"null"
]
},
"realizedPnl": {
"type": [
"number",
"null"
]
},
"avgRoi": {
"type": [
"number",
"null"
]
},
"winRate": {
"type": [
"number",
"null"
],
"description": "Percentage of closed positions in profit; null when none closed"
},
"closedInPeriod": {
"type": [
"number",
"null"
]
},
"period": {
"type": [
"string",
"null"
]
},
"byExchange": {
"anyOf": [
{
"type": "object",
"properties": {},
"additionalProperties": true
},
{
"type": "null"
}
],
"description": "Per-exchange { totalPositions, openPositions }, keyed by exchange"
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_exchanges
Use this when the user asks which exchanges are currently available in TraderSpy smart-money tracking.
輸入結構描述
{
"type": "object",
"properties": {}
}輸出結構描述
{
"type": "object",
"properties": {
"data": {
"anyOf": [
{
"type": "array",
"items": {
"type": "object",
"properties": {
"source": {
"type": [
"string",
"null"
]
},
"enabled": {
"type": [
"boolean",
"null"
]
}
},
"additionalProperties": true
}
},
{
"type": "null"
}
],
"description": "Tracked exchanges and whether each is currently enabled"
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_price(symbols)
Get real-time price data for one or more crypto futures symbols. Returns current price, 24h high/low, volume, and 24h price change percentage.
輸入結構描述
{
"type": "object",
"properties": {
"symbols": {
"type": "array",
"items": {
"type": "string"
},
"minItems": 1,
"maxItems": 20,
"description": "List of symbols to get prices for, e.g. [\"BTCUSDT\", \"ETHUSDT\"]"
}
},
"required": [
"symbols"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}輸出結構描述
{
"type": "object",
"properties": {
"data": {
"anyOf": [
{
"type": "array",
"items": {
"type": "object",
"properties": {
"symbol": {
"type": [
"string",
"null"
]
},
"price": {
"type": [
"number",
"null"
]
},
"high24h": {
"type": [
"number",
"null"
]
},
"low24h": {
"type": [
"number",
"null"
]
},
"volume24h": {
"type": [
"number",
"null"
]
},
"change24h": {
"type": [
"number",
"null"
],
"description": "24h change as a percentage"
},
"updatedAt": {
"anyOf": [
{
"anyOf": [
{
"type": "string"
},
{
"type": "number"
},
{
"type": "string",
"format": "date-time"
}
]
},
{
"type": "null"
}
]
}
},
"additionalProperties": true
}
},
{
"type": "null"
}
]
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_candles(symbol, interval, limit)
Get OHLCV (Open, High, Low, Close, Volume) candle data for a crypto futures symbol. Useful for charting, price history, and technical analysis.
輸入結構描述
{
"type": "object",
"properties": {
"symbol": {
"type": "string",
"description": "Trading pair symbol, e.g. BTCUSDT"
},
"interval": {
"type": "string",
"enum": [
"1m",
"5m",
"15m",
"1h",
"4h",
"1d"
],
"default": "1h",
"description": "Candle interval/timeframe"
},
"limit": {
"type": "number",
"minimum": 1,
"maximum": 500,
"default": 100,
"description": "Number of candles to return"
}
},
"required": [
"symbol"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}輸出結構描述
{
"type": "object",
"properties": {
"symbol": {
"type": [
"string",
"null"
]
},
"interval": {
"type": [
"string",
"null"
]
},
"candles": {
"anyOf": [
{
"type": "array",
"items": {
"type": "object",
"properties": {
"openTime": {
"type": [
"number",
"null"
]
},
"open": {
"type": [
"number",
"null"
]
},
"high": {
"type": [
"number",
"null"
]
},
"low": {
"type": [
"number",
"null"
]
},
"close": {
"type": [
"number",
"null"
]
},
"volume": {
"type": [
"number",
"null"
]
},
"closeTime": {
"type": [
"number",
"null"
]
},
"isFinal": {
"type": [
"boolean",
"null"
],
"description": "False for the candle still forming"
}
},
"additionalProperties": true
}
},
{
"type": "null"
}
],
"description": "Oldest first"
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_tracked_symbols
List all crypto futures symbols currently tracked by TraderSpy with real-time candle data available.
輸入結構描述
{
"type": "object",
"properties": {}
}輸出結構描述
{
"type": "object",
"properties": {
"symbols": {
"anyOf": [
{
"type": "array",
"items": {
"type": "string"
}
},
{
"type": "null"
}
]
},
"count": {
"type": [
"number",
"null"
]
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_technical_indicators(symbol, interval, intervals, indicators, periods, ...)
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.
輸入結構描述
{
"type": "object",
"properties": {
"symbol": {
"type": "string",
"description": "Trading pair symbol, e.g. BTCUSDT"
},
"interval": {
"type": "string",
"enum": [
"1m",
"5m",
"15m",
"1h",
"4h",
"1d"
],
"default": "1h",
"description": "Candle timeframe. Ignored when `intervals` is given."
},
"intervals": {
"type": "array",
"items": {
"type": "string",
"enum": [
"1m",
"5m",
"15m",
"1h",
"4h",
"1d"
]
},
"minItems": 1,
"maxItems": 3,
"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": {
"type": "string",
"enum": [
"rsi",
"macd",
"ema",
"sma",
"bollinger",
"atr",
"adx",
"stochastic",
"obv",
"vwap",
"cci",
"mfi",
"williamsR",
"roc",
"supertrend",
"ichimoku",
"keltner",
"pivots",
"levels"
]
},
"minItems": 1,
"maxItems": 19,
"default": [
"rsi",
"macd",
"ema",
"bollinger"
],
"description": "Indicators to compute. `levels` = swing support/resistance from price structure, `pivots` = classic floor pivots from the previous day."
},
"periods": {
"type": "object",
"properties": {
"rsi": {
"type": "integer",
"minimum": 2,
"maximum": 500,
"description": "RSI period (default 14)"
},
"ema": {
"type": "array",
"items": {
"type": "integer",
"minimum": 2,
"maximum": 500
},
"minItems": 1,
"maxItems": 4,
"description": "EMA periods, up to 4 (default [20, 50, 200])"
},
"sma": {
"type": "array",
"items": {
"type": "integer",
"minimum": 2,
"maximum": 500
},
"minItems": 1,
"maxItems": 4,
"description": "SMA periods, up to 4 (default [20, 50, 200])"
},
"macdFast": {
"type": "integer",
"minimum": 2,
"maximum": 500,
"description": "MACD fast EMA (default 12)"
},
"macdSlow": {
"type": "integer",
"minimum": 2,
"maximum": 500,
"description": "MACD slow EMA (default 26)"
},
"macdSignal": {
"type": "integer",
"minimum": 2,
"maximum": 500,
"description": "MACD signal EMA (default 9)"
},
"bollinger": {
"type": "integer",
"minimum": 2,
"maximum": 500,
"description": "Bollinger period (default 20)"
},
"bollingerStdDev": {
"type": "number",
"minimum": 0.5,
"maximum": 5,
"description": "Bollinger std-dev multiplier (default 2)"
},
"atr": {
"type": "integer",
"minimum": 2,
"maximum": 500,
"description": "ATR period (default 14)"
},
"adx": {
"type": "integer",
"minimum": 2,
"maximum": 500,
"description": "ADX period (default 14)"
},
"stochastic": {
"type": "integer",
"minimum": 2,
"maximum": 500,
"description": "Stochastic %K period (default 14)"
},
"stochasticSignal": {
"type": "integer",
"minimum": 2,
"maximum": 500,
"description": "Stochastic %D smoothing (default 3)"
},
"cci": {
"type": "integer",
"minimum": 2,
"maximum": 500,
"description": "CCI period (default 20)"
},
"mfi": {
"type": "integer",
"minimum": 2,
"maximum": 500,
"description": "MFI period (default 14)"
},
"williamsR": {
"type": "integer",
"minimum": 2,
"maximum": 500,
"description": "Williams %R period (default 14)"
},
"roc": {
"type": "integer",
"minimum": 2,
"maximum": 500,
"description": "Rate-of-change period (default 12)"
},
"vwap": {
"type": "integer",
"minimum": 2,
"maximum": 500,
"description": "Rolling VWAP window in bars (default 48)"
},
"obv": {
"type": "integer",
"minimum": 2,
"maximum": 500,
"description": "OBV averaging window (default 20)"
},
"supertrend": {
"type": "integer",
"minimum": 2,
"maximum": 500,
"description": "SuperTrend ATR period (default 10)"
},
"supertrendMultiplier": {
"type": "number",
"minimum": 0.5,
"maximum": 10,
"description": "SuperTrend ATR multiplier (default 3)"
},
"keltner": {
"type": "integer",
"minimum": 2,
"maximum": 500,
"description": "Keltner EMA period (default 20)"
},
"keltnerAtr": {
"type": "integer",
"minimum": 2,
"maximum": 500,
"description": "Keltner ATR period (default 10)"
},
"keltnerMultiplier": {
"type": "number",
"minimum": 0.5,
"maximum": 10,
"description": "Keltner ATR multiplier (default 2)"
}
},
"additionalProperties": false,
"description": "Optional period overrides, e.g. {\"ema\":[9,21,55,200],\"rsi\":7}"
},
"history": {
"type": "integer",
"minimum": 0,
"maximum": 20,
"default": 5,
"description": "Prior values returned per indicator as `series` (oldest → newest, length history + 1). 0 = latest only."
}
},
"required": [
"symbol"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}輸出結構描述
{
"type": "object",
"properties": {
"symbol": {
"type": [
"string",
"null"
]
},
"interval": {
"type": [
"string",
"null"
],
"description": "Primary timeframe (the first requested one)"
},
"price": {
"type": [
"number",
"null"
],
"description": "Latest close on the primary timeframe, or null when no candles are stored"
},
"candles": {
"type": [
"number",
"null"
],
"description": "Closed candles the primary timeframe was computed on"
},
"lastCandleOpenTime": {
"anyOf": [
{
"anyOf": [
{
"type": "string"
},
{
"type": "number"
},
{
"type": "string",
"format": "date-time"
}
]
},
{
"type": "null"
}
]
},
"indicators": {
"anyOf": [
{
"type": "object",
"properties": {},
"additionalProperties": true
},
{
"type": "null"
}
],
"description": "Single-timeframe call only: requested indicators keyed by name. Each carries value, previous, direction, series and indicator-specific fields (zone, crossover, stack, levels…); { value: null, reason: \"insufficient_data\" } when the tape is too short. Omitted when `timeframes` is present — read them there."
},
"summary": {
"anyOf": [
{
"type": "object",
"properties": {},
"additionalProperties": true
},
{
"type": "null"
}
],
"description": "Single-timeframe call only: bias, score, trend, momentum, volatility, volume, notes[]. Omitted when `timeframes` is present."
},
"timeframes": {
"anyOf": [
{
"type": "array",
"items": {
"type": "object",
"properties": {},
"additionalProperties": true
}
},
{
"type": "null"
}
],
"description": "Present when several intervals were requested: one { interval, price, candles, indicators, summary } per timeframe, in the requested order. The top-level indicators/summary are omitted in that case."
},
"confluence": {
"anyOf": [
{
"type": "object",
"properties": {},
"additionalProperties": true
},
{
"type": "null"
}
],
"description": "Multi-timeframe agreement: { aligned, bias, byInterval }"
},
"settings": {
"anyOf": [
{
"type": "object",
"properties": {},
"additionalProperties": true
},
{
"type": "null"
}
],
"description": "Echo of what was computed: indicators, history, resolved periods"
},
"warnings": {
"anyOf": [
{
"type": "array",
"items": {
"type": "string"
}
},
{
"type": "null"
}
]
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_derivatives(symbols)
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.
輸入結構描述
{
"type": "object",
"properties": {
"symbols": {
"type": "array",
"items": {
"type": "string"
},
"minItems": 1,
"maxItems": 5,
"description": "Up to 5 Binance USDⓈ-M futures symbols, e.g. [\"BTCUSDT\", \"ETHUSDT\"]. A bare base asset (\"BTC\") is read as its USDT perpetual."
}
},
"required": [
"symbols"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}輸出結構描述
{
"type": "object",
"properties": {
"data": {
"anyOf": [
{
"type": "array",
"items": {
"type": "object",
"properties": {},
"additionalProperties": true
}
},
{
"type": "null"
}
],
"description": "One entry per symbol: { symbol, markPrice, indexPrice, premiumPct, funding { rate, ratePct, annualizedPct, nextFundingTime, minutesToNextFunding, avg24hPct, avg3dPct, label }, openInterest { contracts, valueUsd, change4hPct, change24hPct, priceChange24hPct, regime }, positioning { globalLongShortRatio, globalLongPct, topTraderLongShortRatio, topTraderLongPct, takerBuySellRatio, label }, notes[] } — or { symbol, error, message } when the symbol is not a Binance USDⓈ-M futures pair"
},
"count": {
"type": [
"number",
"null"
]
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢screen_symbols(interval, conditions, symbols, universe, limit, ...)
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.
輸入結構描述
{
"type": "object",
"properties": {
"interval": {
"type": "string",
"enum": [
"1m",
"5m",
"15m",
"1h",
"4h",
"1d"
],
"default": "4h",
"description": "Candle timeframe to evaluate on"
},
"conditions": {
"type": "array",
"items": {
"type": "object",
"properties": {
"metric": {
"type": "string",
"enum": [
"rsi",
"stochastic",
"cci",
"mfi",
"williamsR",
"adx",
"roc",
"macdHistogram",
"atrPct",
"volumeRatio",
"bbPercentB",
"bbWidthPct",
"priceVsEma",
"emaSpread",
"supertrend",
"changePct",
"price"
],
"description": "Metric. Defaults in brackets. rsi(14): RSI, 0–100; stochastic(14,3): Slow stochastic %K (period, %D smoothing), 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"
},
"op": {
"type": "string",
"enum": [
"lt",
"gt",
"crossAbove",
"crossBelow"
],
"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 …)"
},
"period": {
"type": "integer",
"minimum": 2,
"maximum": 200,
"description": "Override the metric's primary period (RSI length, EMA period, bars for changePct)"
},
"period2": {
"type": "integer",
"minimum": 2,
"maximum": 200,
"description": "Second period where the metric has one: slow EMA for emaSpread, slow MACD, stochastic %D"
}
},
"required": [
"metric",
"op",
"value"
],
"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}."
},
"symbols": {
"type": "array",
"items": {
"type": "string"
},
"minItems": 1,
"maxItems": 100,
"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."
},
"universe": {
"type": "integer",
"minimum": 5,
"maximum": 100,
"default": 50,
"description": "How many of the most-traded symbols (by 24h volume) to scan when `symbols` is omitted (max 100)"
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 50,
"default": 20,
"description": "Rows to return"
},
"sortBy": {
"type": "string",
"enum": [
"volume",
"change24h",
"metric"
],
"description": "volume (24h quote volume), change24h, or metric (the first condition's metric). Default: metric when conditions are given, else volume."
},
"sortOrder": {
"type": "string",
"enum": [
"asc",
"desc"
],
"default": "desc"
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}輸出結構描述
{
"type": "object",
"properties": {
"interval": {
"type": [
"string",
"null"
]
},
"conditions": {
"anyOf": [
{
"type": "array",
"items": {
"type": "string"
}
},
{
"type": "null"
}
],
"description": "Human-readable conditions, e.g. \"RSI(14) < 30\""
},
"universe": {
"anyOf": [
{
"type": "object",
"properties": {},
"additionalProperties": true
},
{
"type": "null"
}
],
"description": "{ source: top_by_volume | explicit, requested, scanned, missing[] }"
},
"matched": {
"type": [
"number",
"null"
],
"description": "Symbols satisfying every condition (all scanned symbols when no conditions)"
},
"returned": {
"type": [
"number",
"null"
]
},
"sortBy": {
"type": [
"string",
"null"
]
},
"sortOrder": {
"type": [
"string",
"null"
]
},
"results": {
"anyOf": [
{
"type": "array",
"items": {
"type": "object",
"properties": {},
"additionalProperties": true
}
},
{
"type": "null"
}
],
"description": "One row per matching symbol: { symbol, price, change24hPct, volume24hUsd, values { \"<metric label>\": value }, bias, trend, rsi14, adx14, atrPct, volumeRatio, squeeze }"
},
"warnings": {
"anyOf": [
{
"type": "array",
"items": {
"type": "string"
}
},
{
"type": "null"
}
]
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢backtest_condition(symbol, interval, conditions, horizons)
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.
輸入結構描述
{
"type": "object",
"properties": {
"symbol": {
"type": "string",
"description": "Trading pair, e.g. BTCUSDT (a bare \"BTC\" is read as its USDT perpetual)"
},
"interval": {
"type": "string",
"enum": [
"1m",
"5m",
"15m",
"1h",
"4h",
"1d"
],
"default": "4h",
"description": "Candle timeframe"
},
"conditions": {
"type": "array",
"items": {
"type": "object",
"properties": {
"metric": {
"type": "string",
"enum": [
"rsi",
"stochastic",
"cci",
"mfi",
"williamsR",
"adx",
"roc",
"macdHistogram",
"atrPct",
"volumeRatio",
"bbPercentB",
"bbWidthPct",
"priceVsEma",
"emaSpread",
"supertrend",
"changePct",
"price"
],
"description": "Metric. Defaults in brackets. rsi(14): RSI, 0–100; stochastic(14,3): Slow stochastic %K (period, %D smoothing), 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"
},
"op": {
"type": "string",
"enum": [
"lt",
"gt",
"crossAbove",
"crossBelow"
],
"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 …)"
},
"period": {
"type": "integer",
"minimum": 2,
"maximum": 200,
"description": "Override the metric's primary period (RSI length, EMA period, bars for changePct)"
},
"period2": {
"type": "integer",
"minimum": 2,
"maximum": 200,
"description": "Second period where the metric has one: slow EMA for emaSpread, slow MACD, stochastic %D"
}
},
"required": [
"metric",
"op",
"value"
],
"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}."
},
"horizons": {
"type": "array",
"items": {
"type": "integer",
"minimum": 1,
"maximum": 200
},
"minItems": 1,
"maxItems": 4,
"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]."
}
},
"required": [
"symbol",
"conditions"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}輸出結構描述
{
"type": "object",
"properties": {
"symbol": {
"type": [
"string",
"null"
]
},
"interval": {
"type": [
"string",
"null"
]
},
"conditions": {
"anyOf": [
{
"type": "array",
"items": {
"type": "string"
}
},
{
"type": "null"
}
]
},
"bars": {
"type": [
"number",
"null"
],
"description": "Candles the study ran on (the whole stored tape)"
},
"coverageHours": {
"type": [
"number",
"null"
]
},
"from": {
"anyOf": [
{
"anyOf": [
{
"type": "string"
},
{
"type": "number"
},
{
"type": "string",
"format": "date-time"
}
]
},
{
"type": "null"
}
]
},
"to": {
"anyOf": [
{
"anyOf": [
{
"type": "string"
},
{
"type": "number"
},
{
"type": "string",
"format": "date-time"
}
]
},
{
"type": "null"
}
]
},
"evaluableBars": {
"type": [
"number",
"null"
]
},
"occurrences": {
"type": [
"number",
"null"
],
"description": "Episodes — the FIRST bar of each run where the conditions held"
},
"activeNow": {
"type": [
"boolean",
"null"
],
"description": "Conditions hold on the latest closed bar"
},
"currentValues": {
"anyOf": [
{
"type": "object",
"properties": {},
"additionalProperties": true
},
{
"type": "null"
}
],
"description": "Latest value of every metric involved"
},
"lastOccurrence": {
"anyOf": [
{
"type": "object",
"properties": {},
"additionalProperties": true
},
{
"type": "null"
}
],
"description": "{ openTime, barsAgo, price }"
},
"horizons": {
"anyOf": [
{
"type": "array",
"items": {
"type": "object",
"properties": {},
"additionalProperties": true
}
},
{
"type": "null"
}
],
"description": "Per look-ahead: { bars, samples, avgReturnPct, medianReturnPct, winRatePct, avgMaxUpPct, avgMaxDownPct, bestPct, worstPct, baselineAvgReturnPct, edgePct } — edge = avg − unconditional baseline"
},
"horizonHours": {
"anyOf": [
{
"type": "array",
"items": {
"type": "number"
}
},
{
"type": "null"
}
]
},
"recent": {
"anyOf": [
{
"type": "array",
"items": {
"type": "object",
"properties": {},
"additionalProperties": true
}
},
{
"type": "null"
}
],
"description": "Newest episodes first: { openTime, barsAgo, price, returnsPct { \"<bars>\": pct } }"
},
"warnings": {
"anyOf": [
{
"type": "array",
"items": {
"type": "string"
}
},
{
"type": "null"
}
]
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}建議的提示詞
get_signalsget_signals社群
證據