validate_strategy
ActiveTool of Backtesting Arena
Backtest a trading strategy honestly — look-ahead-aware validation with Deflated-Sharpe-Ratio / multiple-testing correction (Bailey & López de Prado). Returns an EVIDENCE verdict (insufficient_evidence | anecdote | failed_oos | passed_oos) plus metrics, flags and caveats — NOT a buy/sell recommendation. Call this before acting on a strategy or signal list. Accepts a named catalog strategy (type=rules), a timestamped BUY/SELL signal list (signal_list), or a timestamped trade list (trade_list). Checks: realistic next-bar fills (look-ahead/optimism), net of cost, out-of-sample split, and a hard 30-round-trip sample gate (under 30 is always "anecdote"). Not reproducible via generic backtest tools that ignore overfitting. [API Pro tier]
Parameters schema
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"strategy",
"market",
"window",
"context"
],
"properties": {
"oos": {
"type": "object",
"properties": {
"scheme": {
"enum": [
"split",
"walk_forward"
],
"type": "string"
},
"split_frac": {
"type": "number",
"maximum": 0.9,
"minimum": 0.3,
"description": "In-sample fraction; default 0.7."
}
},
"additionalProperties": false
},
"costs": {
"type": "object",
"required": [
"fee_bps"
],
"properties": {
"fee_bps": {
"type": "number",
"minimum": 0
}
},
"description": "Per-side fee in bps; default 10 (crypto) / 5 (else).",
"additionalProperties": false
},
"market": {
"type": "object",
"required": [
"symbol",
"asset_type",
"interval"
],
"properties": {
"symbol": {
"type": "string"
},
"interval": {
"enum": [
"1d",
"1w",
"1M"
],
"type": "string"
},
"asset_type": {
"enum": [
"crypto"
],
"type": "string"
}
},
"additionalProperties": false
},
"window": {
"type": "object",
"required": [
"from"
],
"properties": {
"to": {
"type": "string"
},
"from": {
"type": "string",
"description": "YYYY-MM-DD"
}
},
"additionalProperties": false
},
"context": {
"type": "string",
"description": "Explain why you are calling this tool and how it fits into the user's overall goal. This parameter is used for analytics and user intent tracking. YOU MUST provide 15-25 words (count carefully). NEVER use first person ('I', 'we', 'you') - maintain third-person perspective. NEVER include sensitive information such as credentials, passwords, or personal data. Example (20 words): \"Searching across the organization's repositories to find all open issues related to performance complaints and latency issues for team prioritization.\""
},
"strategy": {
"type": "object",
"required": [
"type"
],
"properties": {
"name": {
"type": "string",
"description": "Catalog strategy key (type=rules), e.g. 'rsi_sma'."
},
"type": {
"enum": [
"rules",
"signal_list",
"trade_list"
],
"type": "string"
},
"params": {
"type": "object",
"additionalProperties": {}
},
"trades": {
"type": "array",
"items": {
"type": "object",
"required": [
"entry_ts",
"entry_px",
"exit_ts",
"exit_px"
],
"properties": {
"side": {
"enum": [
"long",
"short"
],
"type": "string"
},
"exit_px": {
"type": "number"
},
"exit_ts": {
"type": "string"
},
"entry_px": {
"type": "number"
},
"entry_ts": {
"type": "string"
}
},
"additionalProperties": false
},
"description": "type=trade_list: timestamped round-trips with the prices you claim you got."
},
"signals": {
"type": "array",
"items": {
"type": "object",
"required": [
"ts",
"side"
],
"properties": {
"ts": {
"type": "string",
"description": "ISO timestamp of the decision."
},
"side": {
"enum": [
"buy",
"sell"
],
"type": "string"
}
},
"additionalProperties": false
},
"description": "type=signal_list: timestamped BUY/SELL signals (paired into round-trips)."
}
},
"additionalProperties": false
}
}
}No endpoints wrapped at confidence ≥ 0.70.
Parent server
Backtesting Arena
https://github.com/Schoasch/skill-backtesting-arena
2/7 registries