Skip to main content
Glama

Backtesting Arena

Get Strategy Performance Snapshot (per Asset)

arena_get_strategy_performance
Read-only

How did this exact strategy, asset and interval perform? Aggregated backtest performance for ONE specific (strategy, asset, interval) combination. Returns run_count, avg_cagr, avg_win_rate, avg_drawdown, effective_years, vs_buy_hold comparison (beats_buy_hold, cagr_delta, plus noise_floor_pp + distinguishable — whether the gap clears the measured noise of parameter and window choices; use that verdict, do not hold other gaps against this floor yourself) and an evidence block declaring the gate machine-readably (gate_applies_to: stats.run_count, threshold 5 runs, benchmark value, aggregation data window). since_publication (BTCUSDT/ETHUSDT only) is a SEPARATE forward record from the date the strategy's default behaviour was frozen (since, since_basis) on its default interval: total return, buy-and-hold return, excess, drawdown, round-trips, too_short under 30 — not annualised and never to be combined with stats; null carries a reason. For multi-strategy overview use arena_get_strategy_insights. Use this to answer 'How does strategy X perform on asset Y?'. [Free tier]

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "strategy": "<strategy>",
      "asset": "<asset>"
    },
    "name": "arena_get_strategy_performance"
  }
}

Input Schema

NameRequiredDescriptionDefault
assetYesCrypto pair / symbol (e.g. BTCUSDT, ETHUSDT). Case-insensitive.
intervalNoDefault '1w'. Candle interval: '1d' daily, '2d'/'3d' multi-day, '1w' weekly, '1M' monthly. Multi-day candles (2d/3d) are anchored to the Unix epoch, so one of n possible alignments is used. Measured on our own corpus, the choice of alignment alone moves CAGR by 6.66 pp on average (max 12.30). Treat differences below that as not distinguishable — 1d/2d/3d behaved as one block in our tests, not a ranking.
strategyYesStrategy key (e.g. rsi_sma, golden_cross). See arena_get_strategies for valid keys.
asset_typeNoOptional asset class filter to disambiguate (e.g. when same pair-name exists in two classes).
ref_strategyNoBenchmark reference. Default 'bh' (Buy & Hold).

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • removedInput schema / additionalProperties
      Removed value: -false
  2. Changed3 schema fields changed
    • addedInput schema / additionalProperties
      Added value: +false
    • removedInput schema / properties / context
      Removed value: -{
      -  "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.\"",
      -  "type": "string"
      -}
    • changedInput schema / required
      Previous value: -[
      -  "strategy",
      -  "asset",
      -  "context"
      -]New value: +[
      +  "strategy",
      +  "asset"
      +]
  3. Changed1 schema field changed
    • changedInput schema / properties / interval / description
      Previous value: -"Default '1w'."New value: +"Default '1w'. Candle interval: '1d' daily, '2d'/'3d' multi-day, '1w' weekly, '1M' monthly. Multi-day candles (2d/3d) are anchored to the Unix epoch, so one of n possible alignments is used. Measured on our own corpus, the choice of alignment alone moves CAGR by 6.66 pp on average (max 12.30). Treat differences below that as not distinguishable — 1d/2d/3d behaved as one block in our tests, not a ranking."
  4. Changed1 schema field changed
    • changedInput schema / properties / interval / enum
      Previous value: -[
      -  "1d",
      -  "1w",
      -  "1M"
      -]New value: +[
      +  "1d",
      +  "2d",
      +  "3d",
      +  "1w",
      +  "1M"
      +]
  5. Changed1 schema field changed
    • changedInput schema / properties / asset_type / enum
      Previous value: -[
      -  "crypto"
      -]New value: +[
      +  "crypto",
      +  "tokenized_equity",
      +  "tokenized_etf",
      +  "commodities"
      +]
  6. Changed2 schema fields changed
    • changedInput schema / properties / asset / description
      Previous value: -"Pair / symbol (e.g. BTCUSDT, AAPL.US). Case-insensitive."New value: +"Crypto pair / symbol (e.g. BTCUSDT, ETHUSDT). Case-insensitive."
    • changedInput schema / properties / asset_type / enum
      Previous value: -[
      -  "crypto",
      -  "stock",
      -  "etf",
      -  "commodities",
      -  "forex"
      -]New value: +[
      +  "crypto"
      +]
  7. First observed

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only declare readOnlyHint, yet the description discloses the gate (minimum 5 runs on stats.run_count), the presence of a machine-readable evidence block, the noise-floor rule for judging gaps, and the critical warning that since_publication is a separate non-annualised forward record that must never be combined with stats. It also flags the free tier and that nulls carry a reason — all behavior an agent could not infer from the structured fields.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the question and the one-combination scope, and nearly every clause carries decision-relevant content. It is, however, a single very dense paragraph mixing return-field inventory, noise-floor policy and forward-record caveats, which raises cognitive load for a first read.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description enumerates the returned fields (run_count, avg_cagr, avg_win_rate, avg_drawdown, effective_years, vs_buy_hold, evidence, since_publication) and explains how to interpret them, including the too_short under-30 rule. Nothing essential for correct invocation or interpretation is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with enums and per-parameter explanations (including the alignment-noise caveat on interval), so the schema already does the heavy lifting. The description reinforces the aggregation window and default-interval semantics of since_publication but adds no new per-parameter syntax or constraints beyond that. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Opens with a concrete question the tool answers and states the exact scope: aggregated backtest performance for ONE specific (strategy, asset, interval) combination. It explicitly contrasts with arena_get_strategy_insights for the multi-strategy case, so an agent can route between the two without opening either schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives an explicit selection rule ('For multi-strategy overview use arena_get_strategy_insights') and a literal use case ('Use this to answer How does strategy X perform on asset Y?'). It does not mention other close siblings such as arena_get_strategy_performance_by_regime or arena_is_distinguishable, so the when-not guidance is partial rather than exhaustive.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.