backtesting-arena
Quantitative crypto backtesting & Bitcoin market-regime analytics. 68 MCP tools: honest look-ahead-aware backtest validation with Deflated-Sharpe-Ratio correction, point-in-time 10-indicator Bitcoin cycle scoring, macro-regime composites, Edge-Library filter effects, 22 on-chain BRK series (since 2009), altcoin screener, sentiment, "buy now or wait?" decision-math, conditional historical-analog base rates & live subscriptions. Core outputs are not reproducible from public OHLCV/market-data APIs. Covers crypto plus stocks/ETFs/commodities/forex. Free tier, no credit card.
How to connect
https://backtesting-arena--info-6d0w.run.tools
tools/list returns the expected tools before relying on them in production.Tools
(50)-
arena_get_pulseDaily 0-100 heat score for the Bitcoin market, aggregated from 8 components (BTC-Cycle, F&G, Altcoin-Season, Bullmarket-Ampel, Funding-Rate, Hash-Ribbons, Mayer-Multiple, MVRV-Z). Returns score, band label, color, 7d/30d delta, verdict, components breakdown. [Free tier]
-
arena_get_cycleBitcoin cycle position — where are we in the BTC cycle? Latest snapshot with point-in-time 10-indicator aggregation (MVRV-Z, NUPL, Puell, Pi-Cycle, Funding, Hash-Ribbons, Power-Law, Rainbow, F&G, Mayer). Returns raw + adjusted score (-3..+3 Z-Score), phase classification, signal enum. Point-in-time scored — not reconstructable from a generic price API. [Free tier]
-
arena_get_altcoin_seasonDaily Altcoin-Season indicator (v7 Native-Filter methodology). Returns BTC-Dominance, Alt-Dominance, 4 Layer-1 signals (USDT.D, USDC.D, BTC-DOM, ETH-DOM), overall color (red/amber/green) + Top-50 CoinGecko snapshot. [Free tier]
-
arena_get_fear_greedCrypto Fear & Greed Index from alternative.me with historical context. Returns current value 0-100, classification (extreme fear/fear/neutral/greed/extreme greed), recent history, plus arena-specific cadence cache for change-detection. [Free tier]
-
arena_get_bullmarket_ampelBitcoin Bullmarket-Ampel current state (0-5 active stages). Returns active_count, stage_history, stage breakdown. Higher count = more bull-market signals firing. [Free tier]
-
arena_get_funding_rateLatest aggregate Binance Perpetual Funding Rate (8h cadence). Returns value, 30d moving average and Z-Score. Positive = longs pay shorts (bullish bias), negative = shorts pay longs (bearish bias). [Free tier]
-
arena_get_hash_ribbonsLatest Hash Ribbons indicator (Charles Edwards). Returns 30d and 60d hashrate moving averages — when 30d > 60d after a capitulation, signals miner recovery (bullish). [Free tier]
-
arena_get_mayer_multipleLatest Mayer Multiple (BTC-Price ÷ 200-day SMA). Trace Mayer (2014): <0.7 = capitulation, 0.7-1.5 = neutral, 1.5-2.4 = bullish, >2.4 = euphoria. [Free tier]
-
arena_get_macro_regimeDaily Macro Regime snapshot from 18 components in 6 tiers (Liquidity 30%, Financial Conditions 20%, Risk Appetite 15%, Crypto Liquidity 10%, Business Cycle 15%, Inflation/Real Rates 10%). FRED-sourced. Returns composite_score (0-100), regime_label (risk_off/neutral/risk_on_leaning/risk_on), cycle_phase_label (contraction/early_expansion/mid_expansion/late_expansion), matrix_quadrant (sweet_spot/late_cycle_warning/crisis/recovery), tier_scores (6 sub-scores), components (flat key/value of all 18)
-
arena_get_btc_macro_correlationsPre-aggregated weekly correlations between Bitcoin and 13 macro components (Fed Net Liquidity, VIX, DXY, Real Yield 10Y, NFCI, HY Credit Spread, Yield Curve, etc.) + 4 asset classes (Gold, SPX, Nasdaq, DXY). Returns quadrant_performance (BTC return stats per 2D-matrix quadrant — annualized return, vol, max drawdown, positive-period%), component_correlations (Pearson 90d/1y/5y per macro component + quartile-performance), asset_correlations (Pearson per window + per quadrant), current_quadrant. Hi
-
arena_get_btc_market_structureDaily Bitcoin market structure from 1000-bar Phantomflow adaptation (BTCUSDT 1d). Returns current_trend (up/down/sideways), last trend change timestamp, counts of waves + fractals, and last-5 fractals on each side (up = pivot highs, down = pivot lows). Educational analysis of price action — no signal, no recommendation. [Free tier]
-
arena_get_iv_snapshotLatest Deribit volatility snapshot for BTC or ETH. Returns DVOL (30d vol index), constant-maturity ATM implied vol (30/60/90/180d via options chain), 30d realized vol, and vol risk premium (IV - RV). Useful for position sizing, options strategies, and market regime assessment. Backfill: BTC from 2021-04-01, ETH from 2022-02-15. [Free tier]
-
arena_get_pulse_historyHistorical daily Arena-Pulse scores (date + score + band). Returned in ascending date order. Range capped by tier. [Free 30d / Pro 365d / Power unlimited]
-
arena_get_cycle_historyHistorical daily BTC-Cycle adj_score + z_adj_score series. Tier-capped range. [Free 30d / Pro 365d / Power unlimited]
-
arena_get_altcoin_season_historyHistorical daily Altcoin-Season snapshots (overall_color, BTC/Alt/Stable dominance, BTC price). Tier-capped. [Free 30d / Pro 365d / Power unlimited]
-
arena_get_funding_rate_historyHistorical Binance Perpetual aggregated funding rates (8h cadence). Tier-capped. [Free 30d / Pro 365d / Power unlimited]
-
arena_get_mayer_multiple_historyHistorical Mayer-Multiple values (BTC-Price ÷ 200d SMA). Tier-capped. [Free 30d / Pro 365d / Power unlimited]
-
arena_list_onchain_seriesLists all available Bitcoin Research Kit (BRK) on-chain series (21 metrics like MVRV, NUPL, SOPR, Realized-Price, Mayer, Puell, STH/LTH SOPR, Hash-Ribbons). Returns id + label + group. Use the id with arena_get_onchain_latest / _history. [Free tier]
-
arena_get_onchain_latestLatest value of a BRK on-chain series. series_id comes from arena_list_onchain_series. Returns { series_id, metric_name, date, value }. [Free tier]
-
arena_get_onchain_historyHistorical time series for a BRK on-chain metric. Date range auto-capped by tier. [Free 30d / Pro 365d / Power unlimited]
-
arena_get_max_painLast finalized Deribit BTC options expiry: max_pain_strike, spot_at_expiry, %-diff, put_call_ratio, notional. Plus up to 10 upcoming expiries with current live max-pain levels and days_to_expiry. Cron collects daily 02:00 UTC from Deribit Public API. [Free tier]
-
arena_get_max_pain_historyHistorical finalized Deribit BTC options expiries. Each row: expiry_date, max_pain_strike, spot_at_expiry, %-diff, P/C ratio, notional, quarterly/monthly flag. Useful for backtesting Max Pain theory. Days auto-capped by tier: Pro 365d, Power 3650d. [API Pro tier]
-
arena_get_drift_logDaily drift log comparing bgeometrics (legacy) vs BRK (canonical-soon) pilot metric pairs. Returns mean / max / outlier counts per pair for the requested window. Used by BRK-migration review (every 4 weeks). [API Pro tier]
-
arena_list_strategiesLists all backtest strategies (key, label, plan, supported asset classes, primary indicators). Filterable by asset class and plan. Use this before calling arena_run_backtest to discover valid strategy names. [Free tier]
-
arena_list_universesLists all asset universes (BTC, top-10 crypto, top-50 crypto, stocks-top-10, etc.) — the underlying pair-sets used by custom-report and universe-backtest endpoints. [Free tier]
-
arena_get_universeDetail view of one universe, including pair list. [Free tier]
-
arena_get_strategy_insightsAggregated backtest performance per (strategy × interval) cell. If `strategy` AND `interval` provided, returns detail with per-asset breakdown + param variants. Otherwise returns the full matrix (Top-10 cells for Free tier; full for Pro+). [Free Top-10 / Pro+ full]
-
arena_get_filter_insightsLift analysis of entry filters (200WMA, Altcoin-Season, ATR-Volatility, Bullmarket-Stage) per strategy combo — baseline vs filtered CAGR/win-rate/drawdown. [API Pro tier]
-
arena_get_volatility_insightsCAGR breakdown by volatility phase (Low / Normal / High) per asset & timeframe. Used to find regime-fit for strategies. [API Pro tier]
-
arena_get_sentimentCrypto sentiment — Fear & Greed, funding-rate, Altcoin-Season and Arena-Pulse aggregated into one multi-source view, plus optional ticker-level sentiment. Configurable period. [Free tier]
-
arena_get_strategy_performanceAggregated backtest performance for ONE specific (strategy, asset, interval) combination. Returns run_count, avg_cagr, avg_win_rate, avg_drawdown, effective_years, and vs_buy_hold comparison (beats_buy_hold, cagr_delta). For multi-strategy overview use arena_get_strategy_insights. Use this to answer 'How does strategy X perform on asset Y?'. [Free tier]
-
arena_get_strategy_filter_effectPer-(strategy, asset, interval) filter-effect analysis. Returns baseline-stats (no filters) + each observed filter-variant's stats with cagr_delta / drawdown_delta / win_rate_delta vs the time-overlap-matched baseline + best_by_cagr pick + not_applicable_filters list (e.g. altcoin_season excluded on BTC-pair). Based on REAL backtest aggregations — not theoretical 2^5 permutations. Use this to answer 'Which filters would improve my backtest for X on Y?'. [Free tier]
-
arena_get_strategy_performance_by_regimeHistorical backtest performance for ONE (strategy, asset, interval) combination SPLIT BY macro market regime (sweet_spot / late_cycle_warning / crisis / recovery — classified at each trade's entry date), PLUS a recommendation for the CURRENT live regime. Answers the killer question 'Should I trade this strategy NOW?'. Each regime bucket returns trades, win_rate, avg_pnl_pct, reward_risk_ratio (per-trade mean/stddev, NOT annualized Sharpe), share_of_time_pct and a rating. [Free tier]
-
arena_get_edge_reportsPlatform-wide aggregated analysis: how each Pro+ entry filter (200 WMA, ATR low/high/expansion, Altcoin Season, Bullmarket confirm/strict) affects strategy CAGR — baseline vs. filtered, median across all real backtest runs for a given market. Verdict: helps (Δ>+1pp, ≥30 runs) / neutral / hurts / insufficient_data. Filters evaluated in isolation (no stacking). Also returns baseline_net_cagr / filtered_net_cagr (median CAGR after per-side trading costs; verdict/delta stay gross). [Free tier]
-
arena_get_winnersPublic Top-100 list of highest-CAGR backtest results across all users (with anonymized usernames). Filterable by asset_class and strategy. [Free tier]
-
arena_list_backtestsLists your own backtest runs, filterable by asset_type / strategy / pair / interval. Paginated with limit + offset. [API Pro tier]
-
arena_get_backtestDetail for one of YOUR backtest runs (or admin-readable). Returns metrics, asset, interval, date range, CAGR/winRate/drawdown, params. [API Pro tier]
-
arena_get_backtest_tradesTrades list and per-trade equity progression for one of your backtests. [API Pro tier]
-
arena_get_shared_backtestRead-only access to a publicly shared backtest by its share-id. Anyone can fetch — used for sharing strategy results with non-users. [Free tier]
-
arena_get_signal_statusCurrent signal-status (green/yellow/red) for a strategy on a pair+interval. Backed by the daily check-signals cron — needs at least one user with an active Ampel on this combination. [Free tier]
-
validate_strategyBacktest 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). Ch
-
arena_run_backtestTriggers a single-asset backtest with full strategy / filter / params control. Returns aggregate metrics + run-id. Sync (3-10s typical). Per-day quota: Pro=50, Power=500. [API Pro tier]
-
arena_compare_strategiesRun 2-5 strategies on the same pair / interval / date range and return per-strategy metrics plus comparison summary (best by CAGR, best by win-rate, worst by drawdown). Sequential — expect 10-50s. Per-day quota: Pro=20, Power=200. [API Pro tier]
-
arena_run_universe_backtestBacktests one strategy on up to 50 pairs at once. Returns immediately with a job_id; poll arena_get_job_status to check progress. Provide either universe_id (e.g. 'crypto-top-10') OR explicit pairs[]. Background runtime: ~1.5s × n_pairs. Per-day quota: Pro=5, Power=50. [API Pro tier]
-
arena_get_job_statusPolls an async job by job_id (created via arena_run_universe_backtest). Returns status (pending/running/completed/failed), progress_pct, pairs_completed, and once completed: the full result (summary + per-pair results). [Free tier]
-
arena_run_grid_backtestGrid-bot simulation on historical candles. Returns final value, return%, CAGR, trades, fees, buy-hold comparison. Free tier limited to BTCUSDT/ETHUSDT. Per-day quota: Free=5, Pro=50, Power=500. [Free / Pro / Power tier]
-
arena_quote_reportGet a pricing quote for a custom report (universe-backtest PDF + Excel) without committing to a purchase. Returns price, universe size + preview, excluded pairs, and filter config. Crypto-only universes use top-N tiers; stocks/ETFs use custom pair list. [API Pro tier]
-
arena_get_report_statusPoll the status of a Custom-Report job. Lifecycle: pending_payment → queued → running → generating → success/failed. Returns progress_pct, succeeded/failed counts, plus pdf_url / xlsx_url when done. [API Pro tier]
-
arena_subscribe_signal_alertsCreates a subscription that fires when an existing Ampel-Config's signal changes (BUY ↔ SELL). User must first create an ampel-config via the Web UI (`/dashboard/ampel`) and pass its UUID here. Optional signal_types filter restricts to BUY-only or SELL-only. [API Pro tier and up — 3 active subscriptions max for Pro, 20 for Power]
-
arena_subscribe_cycle_changesCreates a subscription that fires when the BTC-Cycle band changes (e.g. capitulation → risk-off → neutral → constructive → euphoric). Optional bands filter restricts to specific targets. [API Pro tier and up — 3 active subscriptions max for Pro, 20 for Power]