You're viewing a demo portfolio

Join the waitlist
PRSM

validate_strategy

Active

Tool of Backtesting Arena

declared in 1.2.0

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
    }
  }
}

What this tool wraps· 0 endpoints

min confidence0.700.50

No endpoints wrapped at confidence ≥ 0.70.

Parent server

Backtesting Arena

https://github.com/Schoasch/skill-backtesting-arena

2/7 registries
View full server →
validate_strategy — Backtesting Arena — PRSM MCP