Grok Crypto Quant API
Pay-per-call crypto backtests, signals, token risk checks and universes (x402, USDC on Base).
Sollte ich dies verwenden
Qualität und Sicherheit
Befunde (2)
- LOWin health
- LOWin get_schema
Basierend auf einer automatisierten Analyse der Tool-Definitionen und der Einhaltung des Protokolls.
Kontextkosten
Dies ist die ungefähre Anzahl der Tokens, die jedes Mal verbraucht werden, wenn die Tools des Servers in den Kontext eines Modells geladen werden. Höhere Werte verringern die Aufmerksamkeit, die für andere Aufgaben verfügbar ist.
Installieren
Installation mit einem Klick
Fügen Sie dies Ihrer Datei `claude_desktop_config.json` hinzu:
{
"mcpServers": {
"crypto-quant": {
"url": "https://grok-backtest-api.fly.dev/mcp"
}
}
}Remote-Endpunkte
https://grok-backtest-api.fly.dev/mcpstreamable-httpWas es kann
Tool-Inventar
Tools (13)
🟢backtest(strategy, universe, start, end, initial_capital, ...)
Backtest crypto strategies on 399 Coinbase coins without survivorship bias. DIY backtests usually use today's coin list, so dead coins vanish and returns are overstated; this rebuilds the universe from each past day's top coins. Breakout, momentum, dip-buy or MA-trend rules on daily data with fees, slippage, H1/H2 split and a luck flag. No data fetching or backtest code on your side. Price: $0.05 USDC per call (x402, Base mainnet). Free pre-check: validate_backtest. Free sample: backtest_sample.
Eingabe-Schema
{
"type": "object",
"properties": {
"strategy": {
"discriminator": {
"mapping": {
"breakout": "#/$defs/Breakout",
"dip": "#/$defs/Dip",
"ma_trend": "#/$defs/MATrend",
"momentum": "#/$defs/Momentum"
},
"propertyName": "type"
},
"oneOf": [
{
"$ref": "#/$defs/Breakout"
},
{
"$ref": "#/$defs/Momentum"
},
{
"$ref": "#/$defs/Dip"
},
{
"$ref": "#/$defs/MATrend"
}
],
"title": "Strategy"
},
"universe": {
"anyOf": [
{
"$ref": "#/$defs/Universe"
},
{
"type": "null"
}
],
"default": null
},
"start": {
"anyOf": [
{
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "YYYY-MM-DD",
"title": "Start"
},
"end": {
"anyOf": [
{
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "YYYY-MM-DD",
"title": "End"
},
"initial_capital": {
"default": 150,
"description": "Starting capital in USD",
"exclusiveMinimum": 0,
"maximum": 1000000000,
"title": "Initial Capital",
"type": "number"
},
"fee": {
"default": 0.009,
"description": "Fee per side (0.009 = 0.9%)",
"maximum": 0.05,
"minimum": 0,
"title": "Fee",
"type": "number"
},
"slippage": {
"default": 0.002,
"description": "Slippage per side",
"maximum": 0.05,
"minimum": 0,
"title": "Slippage",
"type": "number"
},
"include_trades": {
"default": true,
"title": "Include Trades",
"type": "boolean"
}
},
"required": [
"strategy"
],
"$defs": {
"Breakout": {
"additionalProperties": false,
"properties": {
"type": {
"const": "breakout",
"title": "Type",
"type": "string"
},
"params": {
"$ref": "#/$defs/BreakoutParams",
"default": {
"lookback": 20,
"atr_mult": 2,
"risk_per_trade": 0.05,
"max_position_pct": 0.5,
"max_positions": 3,
"gate": "btc_ma50",
"min_stop_pct": 0.06,
"max_stop_pct": 0.4
}
}
},
"required": [
"type"
],
"title": "Breakout",
"type": "object"
},
"BreakoutParams": {
"additionalProperties": false,
"properties": {
"lookback": {
"default": 20,
"description": "Buy when close > highest high of prior N days",
"maximum": 60,
"minimum": 5,
"title": "Lookback",
"type": "integer"
},
"atr_mult": {
"default": 2,
"description": "Trailing stop = highest close - k*ATR14",
"maximum": 6,
"minimum": 0.5,
"title": "Atr Mult",
"type": "number"
},
"risk_per_trade": {
"default": 0.05,
"description": "Fraction of equity risked to the initial stop",
"exclusiveMinimum": 0,
"maximum": 0.25,
"title": "Risk Per Trade",
"type": "number"
},
"max_position_pct": {
"default": 0.5,
"exclusiveMinimum": 0,
"maximum": 1,
"title": "Max Position Pct",
"type": "number"
},
"max_positions": {
"default": 3,
"maximum": 10,
"minimum": 1,
"title": "Max Positions",
"type": "integer"
},
"gate": {
"default": "btc_ma50",
"description": "Only open trades when BTC > 50-day SMA (btc_ma50) or >=50% of universe above 20d SMA (breadth50)",
"enum": [
"none",
"btc_ma50",
"breadth50"
],
"title": "Gate",
"type": "string"
},
"min_stop_pct": {
"default": 0.06,
"exclusiveMinimum": 0,
"maximum": 0.5,
"title": "Min Stop Pct",
"type": "number"
},
"max_stop_pct": {
"default": 0.4,
"exclusiveMinimum": 0,
"maximum": 0.9,
"title": "Max Stop Pct",
"type": "number"
}
},
"title": "BreakoutParams",
"type": "object"
},
"Dip": {
"additionalProperties": false,
"properties": {
"type": {
"const": "dip",
"title": "Type",
"type": "string"
},
"params": {
"$ref": "#/$defs/DipParams",
"default": {
"drop_pct": 0.15,
"days": 1,
"trend_filter": "ma50",
"max_hold_days": 5,
"hard_stop_pct": 0.15,
"max_positions": 3
}
}
},
"required": [
"type"
],
"title": "Dip",
"type": "object"
},
"DipParams": {
"additionalProperties": false,
"properties": {
"drop_pct": {
"default": 0.15,
"description": "Buy after a fall of at least this fraction over `days`",
"exclusiveMaximum": 0.9,
"exclusiveMinimum": 0.01,
"title": "Drop Pct",
"type": "number"
},
"days": {
"default": 1,
"maximum": 10,
"minimum": 1,
"title": "Days",
"type": "integer"
},
"trend_filter": {
"default": "ma50",
"enum": [
"ma50",
"none"
],
"title": "Trend Filter",
"type": "string"
},
"max_hold_days": {
"default": 5,
"maximum": 60,
"minimum": 1,
"title": "Max Hold Days",
"type": "integer"
},
"hard_stop_pct": {
"default": 0.15,
"exclusiveMaximum": 0.9,
"exclusiveMinimum": 0.01,
"title": "Hard Stop Pct",
"type": "number"
},
"max_positions": {
"default": 3,
"maximum": 10,
"minimum": 1,
"title": "Max Positions",
"type": "integer"
}
},
"title": "DipParams",
"type": "object"
},
"MATrend": {
"additionalProperties": false,
"properties": {
"type": {
"const": "ma_trend",
"title": "Type",
"type": "string"
},
"params": {
"$ref": "#/$defs/MATrendParams",
"default": {
"coins": [
"ETH-USD"
],
"ma_days": 50
}
}
},
"required": [
"type"
],
"title": "MATrend",
"type": "object"
},
"MATrendParams": {
"additionalProperties": false,
"properties": {
"coins": {
"default": [
"ETH-USD"
],
"description": "Coinbase product ids, e.g. ETH-USD",
"items": {
"type": "string"
},
"maxItems": 10,
"minItems": 1,
"title": "Coins",
"type": "array"
},
"ma_days": {
"default": 50,
"maximum": 60,
"minimum": 5,
"title": "Ma Days",
"type": "integer"
}
},
"title": "MATrendParams",
"type": "object"
},
"Momentum": {
"additionalProperties": false,
"properties": {
"type": {
"const": "momentum",
"title": "Type",
"type": "string"
},
"params": {
"$ref": "#/$defs/MomentumParams",
"default": {
"lookback": 14,
"top_n": 2,
"rebalance_days": 7,
"gate": "btc_ma50",
"trail_pct": null
}
}
},
"required": [
"type"
],
"title": "Momentum",
"type": "object"
},
"MomentumParams": {
"additionalProperties": false,
"properties": {
"lookback": {
"default": 14,
"description": "Rank by N-day return",
"maximum": 60,
"minimum": 3,
"title": "Lookback",
"type": "integer"
},
"top_n": {
"default": 2,
"maximum": 10,
"minimum": 1,
"title": "Top N",
"type": "integer"
},
"rebalance_days": {
"default": 7,
"maximum": 30,
"minimum": 1,
"title": "Rebalance Days",
"type": "integer"
},
"gate": {
"default": "btc_ma50",
"enum": [
"none",
"btc_ma50",
"breadth50"
],
"title": "Gate",
"type": "string"
},
"trail_pct": {
"anyOf": [
{
"exclusiveMaximum": 0.9,
"exclusiveMinimum": 0,
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Optional % trailing stop from highest close",
"title": "Trail Pct"
}
},
"title": "MomentumParams",
"type": "object"
},
"Universe": {
"additionalProperties": false,
"properties": {
"mode": {
"default": "point_in_time",
"description": "point_in_time = top-N by trailing 20d $ volume AS OF each day (no survivorship bias); current_top = top-N as of the end date (biased, for comparison); fixed = your coin list",
"enum": [
"point_in_time",
"current_top",
"fixed"
],
"title": "Mode",
"type": "string"
},
"top_n": {
"default": 30,
"maximum": 200,
"minimum": 5,
"title": "Top N",
"type": "integer"
},
"min_age_days": {
"default": 35,
"description": "Days a coin must have traded before it is eligible",
"maximum": 120,
"minimum": 0,
"title": "Min Age Days",
"type": "integer"
},
"min_avg_dollar_volume": {
"default": 1000000,
"description": "Min 20-day avg Coinbase $ volume",
"minimum": 0,
"title": "Min Avg Dollar Volume",
"type": "number"
},
"coins": {
"anyOf": [
{
"items": {
"type": "string"
},
"maxItems": 200,
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"title": "Coins"
}
},
"title": "Universe",
"type": "object"
}
},
"title": "backtestArguments"
}🟢market_signals(top_n)
Daily crypto market regime in one call: BTC/ETH vs 20/50-day MAs, breadth of the point-in-time top-N (no survivorship bias), coins nearest a 20-day breakout, and the R1 breakout strategy's gate and entry signals. No candle fetching or indicator code. Completed UTC daily closes only. Price: $0.01 USDC per call (x402, Base mainnet). Free sample: signals_sample.
Eingabe-Schema
{
"type": "object",
"properties": {
"top_n": {
"default": 30,
"description": "Universe size for breadth / breakout scan",
"maximum": 200,
"minimum": 5,
"title": "Top N",
"type": "integer"
}
},
"title": "market_signalsArguments"
}🟢token_check(chain, address)
Token scam check in one call instead of wiring up five data sources: honeypot sell simulation, unverified code, mint/pause/blacklist powers, taxes, upgradeable proxy, age, liquidity, fake major-token (e.g. fake USDC) lookalikes and spam-airdrop patterns. Base, Ethereum or Solana. Never visits metadata URLs. Price: $0.02 USDC per call (x402, Base mainnet). Free pre-check: validate_token_check.
Eingabe-Schema
{
"type": "object",
"properties": {
"chain": {
"description": "base, ethereum or solana",
"enum": [
"base",
"ethereum",
"solana"
],
"title": "Chain",
"type": "string"
},
"address": {
"description": "Token contract / mint address",
"maxLength": 44,
"minLength": 32,
"title": "Address",
"type": "string"
}
},
"required": [
"chain",
"address"
],
"title": "token_checkArguments"
}🟢optimize_strategy(strategy, grid, universe, start, end, ...)
Find robust strategy params, not lucky ones: tests up to 50 combos on the same survivorship-bias-free backtester, ranks by worst-half (H1/H2) return with neighbourhood smoothing, flags overfitting, and recommends the most stable parameters rather than the best-fit ones. Price: $0.50 USDC per call (x402, Base mainnet). Free pre-check: validate_optimize.
Eingabe-Schema
{
"type": "object",
"properties": {
"strategy": {
"$ref": "#/$defs/OptimizeStrategy"
},
"grid": {
"additionalProperties": {
"items": {
"anyOf": [
{
"type": "integer"
},
{
"type": "number"
},
{
"type": "string"
},
{
"type": "null"
}
]
},
"type": "array"
},
"description": "param -> values to try; <= 50 combos total, <= 10 values per param",
"title": "Grid",
"type": "object"
},
"universe": {
"anyOf": [
{
"$ref": "#/$defs/Universe"
},
{
"type": "null"
}
],
"default": null
},
"start": {
"anyOf": [
{
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "YYYY-MM-DD",
"title": "Start"
},
"end": {
"anyOf": [
{
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "YYYY-MM-DD",
"title": "End"
},
"initial_capital": {
"default": 150,
"description": "Starting capital in USD",
"exclusiveMinimum": 0,
"maximum": 1000000000,
"title": "Initial Capital",
"type": "number"
},
"fee": {
"default": 0.009,
"description": "Fee per side (0.009 = 0.9%)",
"maximum": 0.05,
"minimum": 0,
"title": "Fee",
"type": "number"
},
"slippage": {
"default": 0.002,
"description": "Slippage per side",
"maximum": 0.05,
"minimum": 0,
"title": "Slippage",
"type": "number"
},
"rank_by": {
"default": "robust",
"enum": [
"robust",
"return"
],
"title": "Rank By",
"type": "string"
}
},
"required": [
"strategy",
"grid"
],
"$defs": {
"OptimizeStrategy": {
"additionalProperties": false,
"properties": {
"type": {
"enum": [
"breakout",
"momentum",
"dip",
"ma_trend"
],
"title": "Type",
"type": "string"
},
"params": {
"additionalProperties": true,
"default": {},
"description": "Fixed (non-grid) params; same fields as /backtest strategy params",
"title": "Params",
"type": "object"
}
},
"required": [
"type"
],
"title": "OptimizeStrategy",
"type": "object"
},
"Universe": {
"additionalProperties": false,
"properties": {
"mode": {
"default": "point_in_time",
"description": "point_in_time = top-N by trailing 20d $ volume AS OF each day (no survivorship bias); current_top = top-N as of the end date (biased, for comparison); fixed = your coin list",
"enum": [
"point_in_time",
"current_top",
"fixed"
],
"title": "Mode",
"type": "string"
},
"top_n": {
"default": 30,
"maximum": 200,
"minimum": 5,
"title": "Top N",
"type": "integer"
},
"min_age_days": {
"default": 35,
"description": "Days a coin must have traded before it is eligible",
"maximum": 120,
"minimum": 0,
"title": "Min Age Days",
"type": "integer"
},
"min_avg_dollar_volume": {
"default": 1000000,
"description": "Min 20-day avg Coinbase $ volume",
"minimum": 0,
"title": "Min Avg Dollar Volume",
"type": "number"
},
"coins": {
"anyOf": [
{
"items": {
"type": "string"
},
"maxItems": 200,
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"title": "Coins"
}
},
"title": "Universe",
"type": "object"
}
},
"title": "optimize_strategyArguments"
}🟢universe_snapshot(date, top_n, min_age_days, min_avg_dollar_volume)
Survivorship-free top-N coin list for any past date: Coinbase USD pairs ranked by trailing 20-day dollar volume using only data available that day. Fixes your own backtests: picking today's top coins hides the ones that died and overstates returns. Price: $0.05 USDC per call (x402, Base mainnet). Free pre-check: validate_universe.
Eingabe-Schema
{
"type": "object",
"properties": {
"date": {
"anyOf": [
{
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "YYYY-MM-DD",
"title": "Date"
},
"top_n": {
"default": 30,
"maximum": 200,
"minimum": 1,
"title": "Top N",
"type": "integer"
},
"min_age_days": {
"default": 35,
"maximum": 120,
"minimum": 0,
"title": "Min Age Days",
"type": "integer"
},
"min_avg_dollar_volume": {
"default": 1000000,
"minimum": 0,
"title": "Min Avg Dollar Volume",
"type": "number"
}
},
"title": "universe_snapshotArguments"
}🟢signals_sample
Free, one day delayed: yesterday's full /signals result (BTC/ETH trend, breadth, breakout watchlist, R1 gate) so you can judge quality before paying. Today's result: paid market_signals ($0.01). Limit 60/hour per client.
Eingabe-Schema
{
"type": "object",
"properties": {},
"title": "signals_sampleArguments"
}Ausgabe-Schema
{
"type": "object",
"additionalProperties": true,
"title": "signals_sampleDictOutput"
}🟢backtest_sample(strategy, days)
Free sample of the paid `backtest` tool on the same survivorship-bias-free engine: any strategy, point-in-time top-10 universe, window = last `days` (14..90) completed days, summary only. Full version: backtest ($0.05). Limit 30/hour per client.
Eingabe-Schema
{
"type": "object",
"properties": {
"strategy": {
"discriminator": {
"mapping": {
"breakout": "#/$defs/Breakout",
"dip": "#/$defs/Dip",
"ma_trend": "#/$defs/MATrend",
"momentum": "#/$defs/Momentum"
},
"propertyName": "type"
},
"oneOf": [
{
"$ref": "#/$defs/Breakout"
},
{
"$ref": "#/$defs/Momentum"
},
{
"$ref": "#/$defs/Dip"
},
{
"$ref": "#/$defs/MATrend"
}
],
"title": "Strategy"
},
"days": {
"default": 90,
"description": "Window length in days, ending on the last completed UTC day",
"maximum": 90,
"minimum": 14,
"title": "Days",
"type": "integer"
}
},
"required": [
"strategy"
],
"$defs": {
"Breakout": {
"additionalProperties": false,
"properties": {
"type": {
"const": "breakout",
"title": "Type",
"type": "string"
},
"params": {
"$ref": "#/$defs/BreakoutParams",
"default": {
"lookback": 20,
"atr_mult": 2,
"risk_per_trade": 0.05,
"max_position_pct": 0.5,
"max_positions": 3,
"gate": "btc_ma50",
"min_stop_pct": 0.06,
"max_stop_pct": 0.4
}
}
},
"required": [
"type"
],
"title": "Breakout",
"type": "object"
},
"BreakoutParams": {
"additionalProperties": false,
"properties": {
"lookback": {
"default": 20,
"description": "Buy when close > highest high of prior N days",
"maximum": 60,
"minimum": 5,
"title": "Lookback",
"type": "integer"
},
"atr_mult": {
"default": 2,
"description": "Trailing stop = highest close - k*ATR14",
"maximum": 6,
"minimum": 0.5,
"title": "Atr Mult",
"type": "number"
},
"risk_per_trade": {
"default": 0.05,
"description": "Fraction of equity risked to the initial stop",
"exclusiveMinimum": 0,
"maximum": 0.25,
"title": "Risk Per Trade",
"type": "number"
},
"max_position_pct": {
"default": 0.5,
"exclusiveMinimum": 0,
"maximum": 1,
"title": "Max Position Pct",
"type": "number"
},
"max_positions": {
"default": 3,
"maximum": 10,
"minimum": 1,
"title": "Max Positions",
"type": "integer"
},
"gate": {
"default": "btc_ma50",
"description": "Only open trades when BTC > 50-day SMA (btc_ma50) or >=50% of universe above 20d SMA (breadth50)",
"enum": [
"none",
"btc_ma50",
"breadth50"
],
"title": "Gate",
"type": "string"
},
"min_stop_pct": {
"default": 0.06,
"exclusiveMinimum": 0,
"maximum": 0.5,
"title": "Min Stop Pct",
"type": "number"
},
"max_stop_pct": {
"default": 0.4,
"exclusiveMinimum": 0,
"maximum": 0.9,
"title": "Max Stop Pct",
"type": "number"
}
},
"title": "BreakoutParams",
"type": "object"
},
"Dip": {
"additionalProperties": false,
"properties": {
"type": {
"const": "dip",
"title": "Type",
"type": "string"
},
"params": {
"$ref": "#/$defs/DipParams",
"default": {
"drop_pct": 0.15,
"days": 1,
"trend_filter": "ma50",
"max_hold_days": 5,
"hard_stop_pct": 0.15,
"max_positions": 3
}
}
},
"required": [
"type"
],
"title": "Dip",
"type": "object"
},
"DipParams": {
"additionalProperties": false,
"properties": {
"drop_pct": {
"default": 0.15,
"description": "Buy after a fall of at least this fraction over `days`",
"exclusiveMaximum": 0.9,
"exclusiveMinimum": 0.01,
"title": "Drop Pct",
"type": "number"
},
"days": {
"default": 1,
"maximum": 10,
"minimum": 1,
"title": "Days",
"type": "integer"
},
"trend_filter": {
"default": "ma50",
"enum": [
"ma50",
"none"
],
"title": "Trend Filter",
"type": "string"
},
"max_hold_days": {
"default": 5,
"maximum": 60,
"minimum": 1,
"title": "Max Hold Days",
"type": "integer"
},
"hard_stop_pct": {
"default": 0.15,
"exclusiveMaximum": 0.9,
"exclusiveMinimum": 0.01,
"title": "Hard Stop Pct",
"type": "number"
},
"max_positions": {
"default": 3,
"maximum": 10,
"minimum": 1,
"title": "Max Positions",
"type": "integer"
}
},
"title": "DipParams",
"type": "object"
},
"MATrend": {
"additionalProperties": false,
"properties": {
"type": {
"const": "ma_trend",
"title": "Type",
"type": "string"
},
"params": {
"$ref": "#/$defs/MATrendParams",
"default": {
"coins": [
"ETH-USD"
],
"ma_days": 50
}
}
},
"required": [
"type"
],
"title": "MATrend",
"type": "object"
},
"MATrendParams": {
"additionalProperties": false,
"properties": {
"coins": {
"default": [
"ETH-USD"
],
"description": "Coinbase product ids, e.g. ETH-USD",
"items": {
"type": "string"
},
"maxItems": 10,
"minItems": 1,
"title": "Coins",
"type": "array"
},
"ma_days": {
"default": 50,
"maximum": 60,
"minimum": 5,
"title": "Ma Days",
"type": "integer"
}
},
"title": "MATrendParams",
"type": "object"
},
"Momentum": {
"additionalProperties": false,
"properties": {
"type": {
"const": "momentum",
"title": "Type",
"type": "string"
},
"params": {
"$ref": "#/$defs/MomentumParams",
"default": {
"lookback": 14,
"top_n": 2,
"rebalance_days": 7,
"gate": "btc_ma50",
"trail_pct": null
}
}
},
"required": [
"type"
],
"title": "Momentum",
"type": "object"
},
"MomentumParams": {
"additionalProperties": false,
"properties": {
"lookback": {
"default": 14,
"description": "Rank by N-day return",
"maximum": 60,
"minimum": 3,
"title": "Lookback",
"type": "integer"
},
"top_n": {
"default": 2,
"maximum": 10,
"minimum": 1,
"title": "Top N",
"type": "integer"
},
"rebalance_days": {
"default": 7,
"maximum": 30,
"minimum": 1,
"title": "Rebalance Days",
"type": "integer"
},
"gate": {
"default": "btc_ma50",
"enum": [
"none",
"btc_ma50",
"breadth50"
],
"title": "Gate",
"type": "string"
},
"trail_pct": {
"anyOf": [
{
"exclusiveMaximum": 0.9,
"exclusiveMinimum": 0,
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Optional % trailing stop from highest close",
"title": "Trail Pct"
}
},
"title": "MomentumParams",
"type": "object"
}
},
"title": "backtest_sampleArguments"
}Ausgabe-Schema
{
"type": "object",
"additionalProperties": true,
"title": "backtest_sampleDictOutput"
}🟢health
Free: service status, prices, network and data range.
Eingabe-Schema
{
"type": "object",
"properties": {},
"title": "healthArguments"
}Ausgabe-Schema
{
"type": "object",
"additionalProperties": true,
"title": "healthDictOutput"
}🟢get_schema
Free: request schemas, examples, prices and limits for every paid tool/endpoint.
Eingabe-Schema
{
"type": "object",
"properties": {},
"title": "get_schemaArguments"
}Ausgabe-Schema
{
"type": "object",
"additionalProperties": true,
"title": "get_schemaDictOutput"
}🟢validate_backtest(strategy, universe, start, end, initial_capital, ...)
Free: check backtest arguments (same as the paid `backtest` tool) before paying.
Eingabe-Schema
{
"type": "object",
"properties": {
"strategy": {
"discriminator": {
"mapping": {
"breakout": "#/$defs/Breakout",
"dip": "#/$defs/Dip",
"ma_trend": "#/$defs/MATrend",
"momentum": "#/$defs/Momentum"
},
"propertyName": "type"
},
"oneOf": [
{
"$ref": "#/$defs/Breakout"
},
{
"$ref": "#/$defs/Momentum"
},
{
"$ref": "#/$defs/Dip"
},
{
"$ref": "#/$defs/MATrend"
}
],
"title": "Strategy"
},
"universe": {
"anyOf": [
{
"$ref": "#/$defs/Universe"
},
{
"type": "null"
}
],
"default": null
},
"start": {
"anyOf": [
{
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "YYYY-MM-DD",
"title": "Start"
},
"end": {
"anyOf": [
{
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "YYYY-MM-DD",
"title": "End"
},
"initial_capital": {
"default": 150,
"description": "Starting capital in USD",
"exclusiveMinimum": 0,
"maximum": 1000000000,
"title": "Initial Capital",
"type": "number"
},
"fee": {
"default": 0.009,
"description": "Fee per side (0.009 = 0.9%)",
"maximum": 0.05,
"minimum": 0,
"title": "Fee",
"type": "number"
},
"slippage": {
"default": 0.002,
"description": "Slippage per side",
"maximum": 0.05,
"minimum": 0,
"title": "Slippage",
"type": "number"
},
"include_trades": {
"default": true,
"title": "Include Trades",
"type": "boolean"
}
},
"required": [
"strategy"
],
"$defs": {
"Breakout": {
"additionalProperties": false,
"properties": {
"type": {
"const": "breakout",
"title": "Type",
"type": "string"
},
"params": {
"$ref": "#/$defs/BreakoutParams",
"default": {
"lookback": 20,
"atr_mult": 2,
"risk_per_trade": 0.05,
"max_position_pct": 0.5,
"max_positions": 3,
"gate": "btc_ma50",
"min_stop_pct": 0.06,
"max_stop_pct": 0.4
}
}
},
"required": [
"type"
],
"title": "Breakout",
"type": "object"
},
"BreakoutParams": {
"additionalProperties": false,
"properties": {
"lookback": {
"default": 20,
"description": "Buy when close > highest high of prior N days",
"maximum": 60,
"minimum": 5,
"title": "Lookback",
"type": "integer"
},
"atr_mult": {
"default": 2,
"description": "Trailing stop = highest close - k*ATR14",
"maximum": 6,
"minimum": 0.5,
"title": "Atr Mult",
"type": "number"
},
"risk_per_trade": {
"default": 0.05,
"description": "Fraction of equity risked to the initial stop",
"exclusiveMinimum": 0,
"maximum": 0.25,
"title": "Risk Per Trade",
"type": "number"
},
"max_position_pct": {
"default": 0.5,
"exclusiveMinimum": 0,
"maximum": 1,
"title": "Max Position Pct",
"type": "number"
},
"max_positions": {
"default": 3,
"maximum": 10,
"minimum": 1,
"title": "Max Positions",
"type": "integer"
},
"gate": {
"default": "btc_ma50",
"description": "Only open trades when BTC > 50-day SMA (btc_ma50) or >=50% of universe above 20d SMA (breadth50)",
"enum": [
"none",
"btc_ma50",
"breadth50"
],
"title": "Gate",
"type": "string"
},
"min_stop_pct": {
"default": 0.06,
"exclusiveMinimum": 0,
"maximum": 0.5,
"title": "Min Stop Pct",
"type": "number"
},
"max_stop_pct": {
"default": 0.4,
"exclusiveMinimum": 0,
"maximum": 0.9,
"title": "Max Stop Pct",
"type": "number"
}
},
"title": "BreakoutParams",
"type": "object"
},
"Dip": {
"additionalProperties": false,
"properties": {
"type": {
"const": "dip",
"title": "Type",
"type": "string"
},
"params": {
"$ref": "#/$defs/DipParams",
"default": {
"drop_pct": 0.15,
"days": 1,
"trend_filter": "ma50",
"max_hold_days": 5,
"hard_stop_pct": 0.15,
"max_positions": 3
}
}
},
"required": [
"type"
],
"title": "Dip",
"type": "object"
},
"DipParams": {
"additionalProperties": false,
"properties": {
"drop_pct": {
"default": 0.15,
"description": "Buy after a fall of at least this fraction over `days`",
"exclusiveMaximum": 0.9,
"exclusiveMinimum": 0.01,
"title": "Drop Pct",
"type": "number"
},
"days": {
"default": 1,
"maximum": 10,
"minimum": 1,
"title": "Days",
"type": "integer"
},
"trend_filter": {
"default": "ma50",
"enum": [
"ma50",
"none"
],
"title": "Trend Filter",
"type": "string"
},
"max_hold_days": {
"default": 5,
"maximum": 60,
"minimum": 1,
"title": "Max Hold Days",
"type": "integer"
},
"hard_stop_pct": {
"default": 0.15,
"exclusiveMaximum": 0.9,
"exclusiveMinimum": 0.01,
"title": "Hard Stop Pct",
"type": "number"
},
"max_positions": {
"default": 3,
"maximum": 10,
"minimum": 1,
"title": "Max Positions",
"type": "integer"
}
},
"title": "DipParams",
"type": "object"
},
"MATrend": {
"additionalProperties": false,
"properties": {
"type": {
"const": "ma_trend",
"title": "Type",
"type": "string"
},
"params": {
"$ref": "#/$defs/MATrendParams",
"default": {
"coins": [
"ETH-USD"
],
"ma_days": 50
}
}
},
"required": [
"type"
],
"title": "MATrend",
"type": "object"
},
"MATrendParams": {
"additionalProperties": false,
"properties": {
"coins": {
"default": [
"ETH-USD"
],
"description": "Coinbase product ids, e.g. ETH-USD",
"items": {
"type": "string"
},
"maxItems": 10,
"minItems": 1,
"title": "Coins",
"type": "array"
},
"ma_days": {
"default": 50,
"maximum": 60,
"minimum": 5,
"title": "Ma Days",
"type": "integer"
}
},
"title": "MATrendParams",
"type": "object"
},
"Momentum": {
"additionalProperties": false,
"properties": {
"type": {
"const": "momentum",
"title": "Type",
"type": "string"
},
"params": {
"$ref": "#/$defs/MomentumParams",
"default": {
"lookback": 14,
"top_n": 2,
"rebalance_days": 7,
"gate": "btc_ma50",
"trail_pct": null
}
}
},
"required": [
"type"
],
"title": "Momentum",
"type": "object"
},
"MomentumParams": {
"additionalProperties": false,
"properties": {
"lookback": {
"default": 14,
"description": "Rank by N-day return",
"maximum": 60,
"minimum": 3,
"title": "Lookback",
"type": "integer"
},
"top_n": {
"default": 2,
"maximum": 10,
"minimum": 1,
"title": "Top N",
"type": "integer"
},
"rebalance_days": {
"default": 7,
"maximum": 30,
"minimum": 1,
"title": "Rebalance Days",
"type": "integer"
},
"gate": {
"default": "btc_ma50",
"enum": [
"none",
"btc_ma50",
"breadth50"
],
"title": "Gate",
"type": "string"
},
"trail_pct": {
"anyOf": [
{
"exclusiveMaximum": 0.9,
"exclusiveMinimum": 0,
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Optional % trailing stop from highest close",
"title": "Trail Pct"
}
},
"title": "MomentumParams",
"type": "object"
},
"Universe": {
"additionalProperties": false,
"properties": {
"mode": {
"default": "point_in_time",
"description": "point_in_time = top-N by trailing 20d $ volume AS OF each day (no survivorship bias); current_top = top-N as of the end date (biased, for comparison); fixed = your coin list",
"enum": [
"point_in_time",
"current_top",
"fixed"
],
"title": "Mode",
"type": "string"
},
"top_n": {
"default": 30,
"maximum": 200,
"minimum": 5,
"title": "Top N",
"type": "integer"
},
"min_age_days": {
"default": 35,
"description": "Days a coin must have traded before it is eligible",
"maximum": 120,
"minimum": 0,
"title": "Min Age Days",
"type": "integer"
},
"min_avg_dollar_volume": {
"default": 1000000,
"description": "Min 20-day avg Coinbase $ volume",
"minimum": 0,
"title": "Min Avg Dollar Volume",
"type": "number"
},
"coins": {
"anyOf": [
{
"items": {
"type": "string"
},
"maxItems": 200,
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"title": "Coins"
}
},
"title": "Universe",
"type": "object"
}
},
"title": "validate_backtestArguments"
}Ausgabe-Schema
{
"type": "object",
"additionalProperties": true,
"title": "validate_backtestDictOutput"
}🟢validate_optimize(strategy, grid, universe, start, end, ...)
Free: check optimize_strategy arguments and count grid combos before paying.
Eingabe-Schema
{
"type": "object",
"properties": {
"strategy": {
"$ref": "#/$defs/OptimizeStrategy"
},
"grid": {
"additionalProperties": {
"items": {
"anyOf": [
{
"type": "integer"
},
{
"type": "number"
},
{
"type": "string"
},
{
"type": "null"
}
]
},
"type": "array"
},
"description": "param -> values to try",
"title": "Grid",
"type": "object"
},
"universe": {
"anyOf": [
{
"$ref": "#/$defs/Universe"
},
{
"type": "null"
}
],
"default": null
},
"start": {
"anyOf": [
{
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "YYYY-MM-DD",
"title": "Start"
},
"end": {
"anyOf": [
{
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "YYYY-MM-DD",
"title": "End"
},
"initial_capital": {
"default": 150,
"description": "Starting capital in USD",
"exclusiveMinimum": 0,
"maximum": 1000000000,
"title": "Initial Capital",
"type": "number"
},
"fee": {
"default": 0.009,
"description": "Fee per side (0.009 = 0.9%)",
"maximum": 0.05,
"minimum": 0,
"title": "Fee",
"type": "number"
},
"slippage": {
"default": 0.002,
"description": "Slippage per side",
"maximum": 0.05,
"minimum": 0,
"title": "Slippage",
"type": "number"
},
"rank_by": {
"default": "robust",
"enum": [
"robust",
"return"
],
"title": "Rank By",
"type": "string"
}
},
"required": [
"strategy",
"grid"
],
"$defs": {
"OptimizeStrategy": {
"additionalProperties": false,
"properties": {
"type": {
"enum": [
"breakout",
"momentum",
"dip",
"ma_trend"
],
"title": "Type",
"type": "string"
},
"params": {
"additionalProperties": true,
"default": {},
"description": "Fixed (non-grid) params; same fields as /backtest strategy params",
"title": "Params",
"type": "object"
}
},
"required": [
"type"
],
"title": "OptimizeStrategy",
"type": "object"
},
"Universe": {
"additionalProperties": false,
"properties": {
"mode": {
"default": "point_in_time",
"description": "point_in_time = top-N by trailing 20d $ volume AS OF each day (no survivorship bias); current_top = top-N as of the end date (biased, for comparison); fixed = your coin list",
"enum": [
"point_in_time",
"current_top",
"fixed"
],
"title": "Mode",
"type": "string"
},
"top_n": {
"default": 30,
"maximum": 200,
"minimum": 5,
"title": "Top N",
"type": "integer"
},
"min_age_days": {
"default": 35,
"description": "Days a coin must have traded before it is eligible",
"maximum": 120,
"minimum": 0,
"title": "Min Age Days",
"type": "integer"
},
"min_avg_dollar_volume": {
"default": 1000000,
"description": "Min 20-day avg Coinbase $ volume",
"minimum": 0,
"title": "Min Avg Dollar Volume",
"type": "number"
},
"coins": {
"anyOf": [
{
"items": {
"type": "string"
},
"maxItems": 200,
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"title": "Coins"
}
},
"title": "Universe",
"type": "object"
}
},
"title": "validate_optimizeArguments"
}Ausgabe-Schema
{
"type": "object",
"additionalProperties": true,
"title": "validate_optimizeDictOutput"
}🟢validate_token_check(chain, address)
Free: format-check a token_check request (no on-chain lookups).
Eingabe-Schema
{
"type": "object",
"properties": {
"chain": {
"enum": [
"base",
"ethereum",
"solana"
],
"title": "Chain",
"type": "string"
},
"address": {
"title": "Address",
"type": "string"
}
},
"required": [
"chain",
"address"
],
"title": "validate_token_checkArguments"
}Ausgabe-Schema
{
"type": "object",
"additionalProperties": true,
"title": "validate_token_checkDictOutput"
}🟢validate_universe(date, top_n, min_age_days, min_avg_dollar_volume)
Free: check universe_snapshot arguments (date in range, enough history) before paying.
Eingabe-Schema
{
"type": "object",
"properties": {
"date": {
"anyOf": [
{
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "YYYY-MM-DD",
"title": "Date"
},
"top_n": {
"default": 30,
"maximum": 200,
"minimum": 1,
"title": "Top N",
"type": "integer"
},
"min_age_days": {
"default": 35,
"maximum": 120,
"minimum": 0,
"title": "Min Age Days",
"type": "integer"
},
"min_avg_dollar_volume": {
"default": 1000000,
"minimum": 0,
"title": "Min Avg Dollar Volume",
"type": "number"
}
},
"title": "validate_universeArguments"
}Ausgabe-Schema
{
"type": "object",
"additionalProperties": true,
"title": "validate_universeDictOutput"
}Community
Nachweis