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 — Runtime ziehen. Ein Container-Image. Kein pip, kein Key, keine Anmeldung — Transpilen und Backtesten laufen beide darin, offline. Kostenlos fürs eigene Trading.
Schritt 2 — Pine nach C++ transpilieren. Lass den Container im Transpile-only-Modus laufen, und er macht aus deinem PineScript v6 lokal eine vollständige C++-Source-Datei. Zur Laufzeit läuft kein Pine-Interpreter — die Engine kompiliert das Ganze zu nativem Maschinencode.
docker run --rm --network=none \ -e PINEFORGE_TRANSPILE_ONLY=1 \ -v "$(pwd)/my_strategy.pine":/in/strategy.pine:ro \ ghcr.io/pineforge-4pass/pineforge-engine:latest > strategy.cpp
Schritt 3 — Backtesten. Mounte deine OHLCV-CSV neben den generierten C++ und starte den Container. Die Engine liest die Datendatei, führt die Strategie Bar für Bar aus und schreibt einen JSON-Report nach stdout.
docker run --rm --network=none \ -v "$(pwd)/strategy.cpp":/in/strategy.cpp:ro \ -v "$(pwd)/ohlcv.csv":/in/ohlcv.csv:ro \ ghcr.io/pineforge-4pass/pineforge-engine:latest > report.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 246-Strategien-Referenz-Suite in der Galerie wurde gegen TradingView-CSV-Exporte (für Parity-Validierung) und Custom-CSV-Datasets (für Regression-Tests) gebacktestet. 245 von 246 erreichen die kanonische Strict-Excellent-Stufe (P&L-Drift ≤ 0,5% über das Vergleichsfenster). Die verbleibende 1 ist eine dokumentierte TV-seitige Anomalie — deep-analyzed, auf TradingView-State zurückgeführt. Null reale Engine-Bugs übrig.