pineforge
Offline-Backtesting

PineScript-Backtests offline ausführen, auf deinen eigenen Daten

PineForge transpiliert PineScript v6 nach nativem C++ und führt es lokal via Docker aus. Local-First, byte-reproduzierbar, läuft überall, wo Docker läuft. Bring deine eigene OHLCV-CSV mit.

Warum offline?

Browser-basiertes Backtesting ist großartig für Chart-seitige Iteration. Offline-Backtesting ist das, wozu du greifst, wenn der nächste Schritt heißt, echtes Geld hinter die Strategie zu setzen: wenn du einen Audit-Trail brauchst, wenn CI jeden Commit gaten muss, wenn ein Ergebnis von vor zwei Monaten heute Bit für Bit reproduzierbar sein soll.

Backtests offline zu fahren gibt dir das, was Browser-basierte Tester nicht liefern können: Ergebnisse sind byte-reproduzierbar — gleicher Input, gleicher Output, jedes Mal. Du pinnst die Engine-Version, checkst Ergebnisse ins Repo ein, diffst Trade-Listen zwischen Commits und fährst das Ganze headless in deiner CI-Pipeline. Die CSV, die du reinfütterst, ist deine; das Binary, das du fährst, ist lokal; der Report, den du bekommst, ist auditierbar.

Die praktische Liste, was Offline freischaltet: versionsgepinnte Engines, sodass ein Commit von vor zwei Monaten heute dieselbe Trade-Liste produziert; Custom-Data-Ingestion, sodass du gegen die Tick-Rekonstruktionen deiner Börse, die Point-in-Time-Equity-Preise deines Datenanbieters oder einen beliebigen Alt-Daten-Feed testen kannst, der sich als OHLCV serialisieren lässt; CI-Integration, sodass Regressionen den Build brechen, bevor sie Production erreichen; und Multi-Broker-Portabilität, weil die Strategie-Logik nicht an eine Plattform gebunden ist — sie ist eine Datei.

Wenn du jemals ein Backtest-Ergebnis mit einem Kollegen teilen wolltest und gemerkt hast, dass die einzige Form des „Teilens“ ein Chart-Screenshot war — Offline-Execution ist genau das, was dir gefehlt hat.

So funktioniert's

Drei Schritte. Der vollständige Workflow von Pine-Source zum JSON-Trade-Report dauert beim ersten Mal unter zwei Minuten und ab dem zweiten Lauf unter dreißig Sekunden.

Schritt 1 — Kostenlosen Codegen-API-Key holen. Im Early-Access-Formular unten anmelden. Der Key kommt sofort per Mail und hat ein großzügiges Free Tier — ausreichend für den Entwicklungs-Workflow eines einzelnen Quants.

Schritt 2 — Pine-Source per POST an die Codegen-API. Die API transpiliert PineScript v6 nach C++ und liefert ein kompiliertes Shared Object zurück. Zur Laufzeit läuft kein Pine-Interpreter — der Output ist nativer Maschinencode.

curl -s https://api.pineforge.io/v1/codegen \
  -H "Authorization: Bearer $PINEFORGE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"source": "'"$(cat my_strategy.pine | jq -Rs .)"'"}' \
  | jq -r '.artifact_url' \
  | xargs curl -sL -o strategy.so

Schritt 3 — docker run. PineForge-Runtime-Image pullen und deine OHLCV-CSV neben das kompilierte Artefakt mounten. Die Engine liest die Daten, führt die Strategie Bar für Bar aus und schreibt einen JSON-Report nach stdout.

docker run --rm \
  -v "$(pwd)/strategy.so":/strategy.so \
  -v "$(pwd)/ohlcv.csv":/data.csv \
  ghcr.io/pineforge/runtime:latest \
  run /strategy.so --data /data.csv --output json

Der JSON-Output enthält eine vollständige Trade-Liste mit Entry- und Exit-Preisen, Bar-Indizes, Position Sizes und einem Summary-Block mit Net P&L, Max Drawdown, Trade-Count, Profit Factor und Sharpe Ratio. Alle Felder sind über Patch-Releases derselben Major-Version stabil — sicher in Skripten zu parsen.

Das ist der ganze Workflow. Keine GUI, kein Account-Re-Auth, kein Chart-Loading. Wenn du Docker fahren kannst, kannst du PineForge-Offline-Backtests fahren.

Was du backtesten kannst

Kurze Antwort: alles, was du als OHLCV serialisieren kannst. PineForge ist mit keinem Marktdaten-Anbieter verbunden. Du bringst die Daten; die Engine fährt die Strategie.

Krypto von deiner Börse. Roh-Trade-Daten von Binance, Bybit, Kraken oder einer beliebigen Börse mit REST- oder WebSocket-API ziehen. Auf das Timeframe deiner Strategie aggregieren. CSV direkt füttern. Auf der exakten Pair-und-Venue-Kombination testen, die du auch handeln wirst.

Aktien vom Datenanbieter. Polygon, Norgate, BarChart, Tiingo — Quelle wählen, Point-in-Time-adjustierte Preise exportieren, Backtests mit deinen tatsächlichen Fills und deinem tatsächlichen survivorship-bias-freien Universum fahren.

Tick-Rekonstruktionen. Wenn du Level-2-Daten hast und auf synthetischen 1-Sekunden-Bars aus Ticks testen willst — kein Problem. OHLCV aus deinen Tick-Daten generieren und reinreichen. Die Engine weiß und schert sich nicht, woher die Bars kommen.

Alt-Daten. Sentiment-Scores, On-Chain-Metriken, Funding Rates, Options-Skew — wenn du es als Zeitreihe ausgerichtet auf deinen Bar-Index ausdrücken kannst, kannst du es in Pine über Custom-Data-Spalten einbauen und offline testen.

Die 167-Strategien-Referenz-Suite in der Galerie wurde gegen TradingView-CSV-Exporte (für Parity-Validierung) und Custom-CSV-Datasets (für Regression-Tests) gebacktestet. 165 von 167 erreichen die kanonische Strict-Excellent-Stufe (P&L-Drift ≤ 0,5% über das Vergleichsfenster); die übrigen zwei sind vollständige Trade-für-Trade-Matches auf der Strong-Stufe (Drift zwischen 0,5% und 1%, weit innerhalb der Reproduzierbarkeits-Toleranz für Production-Sizing). Eine zusätzliche Probe — ein 1×-Equity-Margin-Stresstest — ist aus dem Headline-Sweep ausgenommen; sie legt eine TV-seitige Broker-Emulator-Non-Determinismus-Stelle frei, die wir aus dem öffentlichen Pine-State nicht modellieren können.

Loslegen