Backtesting Arena

Backtesting Arena

Zum Blog

Wir öffnen unsere API: REST + MCP + (bald) x402

18 Monate lang haben wir leise an Backtesting Arena gebaut — eine Plattform, auf der über 500 User mehr als 10.000 Backtests gefahren haben, auf Bitcoin, Aktien, ETFs, Rohstoffen und Forex. Tägliche Cycle-Scores, On-Chain-Indikatoren, Sentiment-Dashboards, Strategy-Insights. Alles auf demselben Daten-Layer, der bisher hinter einer privaten Quasi-API lief.

Backtesting Arena·21. Mai 2026·6 Min. Lesezeit·9 Aufrufe
Wir öffnen unsere API: REST + MCP + (bald) x402

Heute legen wir den Schalter um. 52 REST-Endpoints. 42 MCP-Tools. Live-Subscriptions mit Polling und Webhook-Push. Free-Tier ohne Kreditkarte. API Pro für €9,99/Monat. API Power für €29,99/Monat.

Eine Subscription deckt beide Channels — REST und MCP. Das ist wichtig. Mehr dazu gleich.

Warum jetzt

KI-Agenten brauchen Marktdaten. Claude-Desktop- und Cursor-User wollen Bitcoin-Signale im Gespräch, nicht in einem separaten Browser-Tab. Die DACH-Crypto-Tooling-Landschaft ist überschaubar — es gibt CoinGecko, Glassnode für Institutionelle, einen Long-Tail kostenloser-aber-veralteter Dashboards. Wenig dazwischen.

Genau da sitzen wir. Tägliche Cycle-Daten mit redaktioneller Methodologie. Backtest-Engines die auf echten Exchange-Candles laufen. Strategy-Insights aggregiert über tausende Community-Runs. Genau das, was in deinen AI-Workflow gehört, wenn du was baust das mit Crypto-Märkten zu tun hat.

Was wir heute released haben

Drei Channels, designed um denselben Daten-Layer:

REST API — das Arbeitspferd. Bearer-Token-Auth, Postgres-Rate-Limits, Per-Endpoint-Quotas, strukturierte Errors. Wenn du je mit der Stripe- oder Resend-API gearbeitet hast, ist die Shape bekannt.

MCP-Server — Claude Desktop und Cursor plug-and-play. Derselbe Bearer-Token entsperrt 42 Tools. Tier-Mismatches geben strukturierte Errors mit upgrade_url zurück, damit dein Agent weiß wie er weitermachen kann. Tier-Gating ist transparent: Free-User sehen alle 42 Tools in Discovery, Calls die höhere Tier brauchen failen laut — nicht still versteckt.

x402 Pay-per-Call — kommt Q3 2026. USDC-Settlement via Coinbase Facilitator. Für Agenten die keine Subscription wollen, sondern $0,10 für einen einzelnen Backtest zahlen wollen.

Fünf Dinge die du heute bauen kannst

1. Tägliches Heat-Score-Dashboard

curl -H "Authorization: Bearer sk-arena-…" \
  https://tradingstrategies.work/api/v1/arena-pulse/today

Liefert einen täglichen 0-100-Score aggregiert aus 8 Komponenten (Bullenmarkt-Ampel, Fear & Greed, MVRV-Z, 200-WMA-Distanz, Mayer Multiple, Altcoin Season, Funding Rate, Hash Ribbons). Band-Klassifikation, Farbe, Deltas (7d, 30d), und ein paragraph-langes Verdict in DE+EN. Updated 07:55 UTC täglich.

Das ist der Free-Tier-Endpoint den wir schon seit Monaten public laufen lassen. Jetzt mit ordentlichen Rate-Limits und Tier-Echo.

2. Claude-Desktop-Integration

Trag das in deine claude_desktop_config.json ein:

{
  "mcpServers": {
    "backtesting-arena": {
      "command": "C:\\PROGRA~1\\nodejs\\npx.cmd",
      "args": [
        "-y", "mcp-remote",
        "https://tradingstrategies.work/api/mcp",
        "--header",
        "Authorization:Bearer sk-arena-…"
      ]
    }
  }
}

Jetzt frag Claude: "Was ist die aktuelle BTC-Cycle-Phase und wie hat sich der Arena Pulse die letzte Woche entwickelt?" Er nutzt arena_get_cycle und arena_get_pulse_history und synthetisiert die Antwort. Kein Copy-Paste, kein JSON-Wrangling.

(Windows-MSIX-Install-Stolperstein: nimm den DOS-8.3-Short-Path für npx.cmd damit der "C:\Program"-Space-in-Path-Bug nicht zuschlägt. Mac/Linux: npx reicht.)

3. Live-Subscription mit Webhook-Push

Du willst wissen, wann die BTC-Cycle-Band flippt. Einmal subscriben, push-Updates für immer:

curl -X POST \
  -H "Authorization: Bearer sk-arena-…" \
  -H "Content-Type: application/json" \
  -d '{
    "delivery_method": "webhook",
    "webhook_url": "https://deine-app.com/webhooks/cycle"
  }' \
  https://tradingstrategies.work/api/v1/subscriptions/cycle-band

Oder via MCP: arena_subscribe_cycle_changes. Selbes Ergebnis, agent-driven.

Wir unterstützen 4 Subscription-Types: Signal-Alert (jede Strategie/jedes Pair/jedes Timeframe), Cycle-Band, Pulse-Score-Threshold, Bullmarket-Stage. Pro-Tier: 3 aktive Subs. Power-Tier: 20. Täglicher Evaluator pre-loaded State, vergleicht gegen deinen letzten gesehenen Wert, feuert Updates nur bei echter Änderung. Kein Spam.

4. On-Demand-Backtest in 5 Sekunden

curl -X POST \
  -H "Authorization: Bearer sk-arena-…" \
  -H "Content-Type: application/json" \
  -d '{
    "strategy": "rsi_sma",
    "pair": "BTCUSDT",
    "interval": "1d",
    "date_from": "2020-01-01",
    "capital": 10000
  }' \
  https://tradingstrategies.work/api/v1/backtests/run

Liefert CAGR, Win-Rate, Drawdown, Equity-Curve-Punkte, Trade-by-Trade-Liste. Dieselbe Engine die das Web-Dashboard antreibt, exposed sync über Pro-Tier (50/Tag) oder Power (500/Tag).

5. Custom-Report für deinen Fonds

# 1. Quote holen
curl -X POST -H "Authorization: Bearer sk-arena-…" \
  -d '{"universe_id":"top-10-crypto","period":"4y"}' \
  /api/v1/reports/quote
# → returnt Preis (z.B. €18,40 für 10 viable Pairs × 0.10 × 18.4 Multiplikator, geclampt 14,99-49,99)

# 2. Zahlen via Web-Stripe-Checkout (einziger Schritt der nicht programmatisch ist — Payment-Security)

# 3. Status pollen
curl -H "Authorization: Bearer sk-arena-…" \
  /api/v1/reports/jobs/{jobId}

# 4. Download wenn fertig
curl -H "Authorization: Bearer sk-arena-…" \
  /api/v1/reports/{token}/download?format=pdf > report.pdf

PDF oder Excel, server-side generiert via Lambda-Chromium, signed Download-URL mit 30-Tagen-TTL.

Hinter den Kulissen

Wir haben versucht das richtig zu machen. Ein paar Details:

Service-Layer-Architektur — jeder Endpoint ist ein dünner Wrapper um ein Pure-Function-Service-Modul in src/lib/api/services/*.ts. Selber Service, drei Channel-Wrapper (REST, MCP, bald x402). Eine Änderung, drei Channels aktualisiert. 27 Service-Module insgesamt.

Tier-Gating via HOF — jede v1-Route nutzt createV1Handler({ requiredTier, rateLimitGroup, service }). Boilerplate bleibt minimal. Tier-Mismatch returnt 403 mit upgrade_url, Rate-Limit returnt 429 mit retry_after_seconds. Errors sind strukturiertes JSON, nicht HTML-Stack-Traces.

Ein Bearer-Token, zwei Channels — deine API-Subscription deckt sowohl REST als auch MCP. Wir sehen das als das Headline-Feature für Agent-Entwickler: die Integration bauen, via MCP für direkte Claude/Cursor-User shippen, und auch via REST für alles andere exposen.

Postgres-Rate-Limits — keine Redis-Dependency. Atomic Counter via INSERT … ON CONFLICT DO UPDATE. Skaliert für unsere erwarteten 100k Calls/Tag. Falls wir mal mehr brauchen, ist die Migration auf Upstash ein Swap.

Tier-staggered History-Range — Free bekommt 30 Tage History. Pro 365 Tage. Power 3650 Tage (10 Jahre). Über-Cap wird geclampt, nicht rejected. Cap ist in der OpenAPI-Spec dokumentiert.

Live-Subscription State-Diffing — der Trigger-Evaluator pre-loaded Global-State (BTC-Cycle, Arena Pulse, Bullmarket-Ampel) einmal pro Cron-Run, vergleicht gegen den last_state-JSONB jeder Subscription. Initial-Pickup setzt State ohne zu feuern — kein Spam beim ersten Eval. Nachfolgende State-Change mit dem konfigurierten Direction-Filter feuern das Update.

Webhook-Push ist best-effort — HTTPS-only, 10s-Timeout, Response-Status pro Update-Row getrackt. Wenn dein Webhook down ist, lebt das Update trotzdem in der Polling-Queue. Hosenträger und Gürtel.

Pricing-Begründung

Wir haben darüber länger nachgedacht als vermutlich vernünftig war.

Das Constraint: API Pro für €9,99/Monat ist derselbe Preis wie der Consumer-Web-Pro-Tier. Wir wollten das so lassen, um keine verwirrende Zwei-Produkt-Matrix zu schaffen. Lösung: positioniere sie als unterschiedliche Produkte mit unterschiedlichen Jobs.

Web Pro (€9,99) — du, ein Mensch, der die Plattform nutzt um Strategien zu backtesten und Alerts per Email zu fahren. UI-heavy.

API Pro (€9,99) — du, ein Entwickler, der ein Tool auf unseren Daten baut. Kein UI-Zugang. Bearer-Token only. Anderer Value.

Du kannst beide abonnieren (manche User tun das).

API Power (€29,99) — wie Pro aber: 10× Rate-Limits, volle 10 Jahre History, 20 Live-Subscriptions statt 3, 5 Custom-Reports pro Monat inkludiert. Für Agent-Builder die Volumen brauchen.

Was als nächstes kommt

Phase 4 — x402 Pay-per-Call (Q3 2026) — Agenten die keine Subscription wollen. USDC-Settlement auf Base (und Base Sepolia zum Testen). Alle Snapshot-Endpoints werden $0,01 pro Call. Backtest-Triggers für $0,10. Universe-Backtests $1,00 (async). Wir shippen das sobald x402-next v2 stabilisiert ist — wir wollen nicht der bleeding-edge-User sein wenn Payment-Plumbing involviert ist.

Phase 5 — Marketing (rolling) — dieser Blogpost ist Teil davon. MCP-Registry-Listings (Lobehub, Smithery, mcp.so). ProductHunt + Hacker-News Submissions. Wir werden auf r/Bitcoin und r/algotrading sein. Wenn du das aus einem dieser Threads liest — hi.

Strategy-Library-Expansion — aktuell 19 Strategien, alle Bitcoin-und-Crypto-getestet. Aktien und ETFs sind partiell. Sobald wir 5-10 weitere validierte Strategien für andere Asset-Klassen haben, erhöhen wir die Universe-Coverage.

Volatility-Insights v2 — die aktuelle Implementation hat 5-15s Page-Loads bei cold Cache. Wir shippen eine DB-Spalten-basierte precomputed-Variante. API-seitig heißt das: ein neues /v1/insights/volatility returnt sofort mit reicherem Payload.

Wie du loslegst

  1. Free anmelden auf https://tradingstrategies.work/register — keine Kreditkarte.
  2. Key erstellen auf /dashboard/account/api-keys — Free-Tier, 60 req/h, 500/Tag.
  3. OpenAPI-Spec lesen auf https://tradingstrategies.work/openapi.json oder die interaktive Doku auf https://tradingstrategies.work/api-docs.
  4. Für MCP: Claude-Desktop-Config-Snippet von oben kopieren, deinen Token einsetzen, Claude neu starten.
  5. Für curl: irgendeinen Endpoint von oben, mit deinem Bearer-Token.

Wenn du was Interessantes baust, tag uns auf Bluesky oder schreib uns an info@tradingstrategies.work. Wir haben kein Dev-Rel-Team — die Antwort kommt von jemand, der tatsächlich den Bug fixen oder deinen PR mergen kann.

Eine Anmerkung zu Public-Endpoints

Wir haben /api/arena-pulse/today und ein paar andere seit Monaten public ohne Auth laufen. Die bleiben public. Die UI nutzt sie, Third-Party-Dashboards die diese URLs hardcoded haben funktionieren weiter. Die /api/v1/*-Varianten geben dir Tier-Awareness, Rate-Limit-Headers und strukturierte Errors — nimm die für programmatic Access.

Wir behandeln die existierenden Public-Endpoints als die "Discovery-Surface" — Agenten die uns via Web-Search finden treffen die zuerst, sehen was Nützliches, und lernen den API-Key-Flow danach kennen. Dieser Funnel ist wichtiger als Rate-Limit-Purität.


Free-Tier, keine Kreditkarte: Anmelden · OpenAPI-Docs · GitHub Issues

Bug-Reports willkommen.

Jetzt selbst testen

Fahre den Backtest mit deinen eigenen Parametern und Zeiträumen.

Backtest starten →
📬

Don't miss new blog posts

One short email per new post — strategies, backtests, market analysis. No spam, unsubscribe with one click anytime.

By subscribing you accept our privacy policy. We use Resend for delivery. Double opt-in confirmation required.

Comments (0)

Join free to post comments.

Sign up →

No comments yet. Be the first!