Backtest & Optimierung
Wie partiqon Strategien auf Historien testet, optimale Parameter findet und Robustheit validiert — Backtesting, PSO-Optimierung, Walk-Forward-Validierung und WFO.
Backtesting
Ein Backtest simuliert eine Strategie auf historischen Daten. Für jeden Bar wird geprüft, ob Ein- oder Ausstiegssignale ausgelöst werden, und alle Trades mit P&L werden aufgezeichnet. Es wird kein echtes Geld verwendet — es ist reine Simulation zur Messung vergangener Performance.
So funktioniert es
- Daten laden: Historische Bars (OHLCV) aus BAR6-Dateien
- Zustand zurücksetzen: Strategie-Parameter, Indikatoren und Positionen auf Start zurücksetzen
- Bars durchlaufen: Jeden Bar im Zeitraum an die Strategie übergeben
- Signale prüfen: Erzeugt die Strategie Ein- oder Ausstiegssignale?
- Trades ausführen: Einstieg öffnet eine Position; Ausstieg schließt sie. Einstiegs-/Ausstiegspreis und P&L aufzeichnen
- Kennzahlen berechnen: Win-Rate, Drawdown, Profit-Factor usw.
- Ergebnisse ausgeben: Trade-Liste, Equity-Kurve, Performance-Statistiken
Wichtige Kennzahlen
- Gesamtrendite: Endkapital − Startkapital (in %)
- Win-Rate: Gewinn-Trades / Gesamt-Trades (höher ist besser, aber nicht alles)
- Profit-Factor: Bruttogewinn / Bruttoverlust. >1,5 ist respektabel; >2,0 ist stark
- Max. Drawdown: Größter Rückgang vom Hochpunkt des Kapitals. Risikomaß — niedriger ist besser
- Sharpe-Ratio: Rendite pro Risikoeinheit. Bereinigt um Volatilität; höher ist besser
- Trades pro Jahr: Häufigkeit. Mehr Trades = mehr Daten zur Validierung; weniger Trades = weniger Slippage/Gebühren
PSO-Optimierung
PSO (Particle Swarm Optimization — Partikelschwarm-Optimierung) ist ein Suchalgorithmus, der automatisch gute Parameter-Werte findet. Statt zufällige Kombinationen auszuprobieren, „schwärmen" Partikel in Richtung der besten Bereiche des Parameterraums.
Wie PSO funktioniert
- Suchbare Parameter definieren: Welche Block-Parameter können angepasst werden? (z.B. EMA-Periode 10–100, RSI-Level 20–50)
- Schwarm initialisieren: N Partikel mit zufälligen Parameter-Werten erstellen (z.B. 30 Partikel)
- Jeden Partikel bewerten: Backtest mit diesen Parametern ausführen. Profit-Factor (oder gewählte Metrik) aufzeichnen
- Bestes verfolgen: Jeder Partikel merkt sich sein bestes Ergebnis. Der Schwarm merkt sich das globale Beste.
- Geschwindigkeiten aktualisieren: Jeder Partikel passt seine Parameter in Richtung seines persönlichen Besten und des globalen Besten an (mit Zufälligkeit)
- Wiederholen: Mehrere Generationen durchlaufen (z.B. 60 Iterationen). Der Schwarm konvergiert zu guten Parametern.
- Champion ausgeben: Die besten Parameter aus allen Generationen
Warum PSO?
- Effizient: Weniger Backtests als Grid-Search (der alle Kombinationen durchprobiert)
- Flexibel: Verarbeitet beliebige Parameterkombinationen, diskret oder kontinuierlich
- Robust: Bleibt besser in lokalen Optima stecken als reines Gradientenabstiegsverfahren
- Transparent: Du siehst, welche Parameter der Algorithmus bevorzugt hat und warum
Walk-Forward-Validierung
Die Walk-Forward-Validierung verhindert Overfitting, indem die Daten in Blöcke aufgeteilt werden: Optimierung auf dem ersten Block (In-Sample), dann Test auf dem zweiten Block (Out-of-Sample) — aber niemals gemischt.
Das Problem: Overfitting
Wenn du auf allen deinen Daten optimierst, kannst du das Rauschen in dieser spezifischen Historie anpassen. Die Parameter sehen auf der Vergangenheit hervorragend aus, versagen aber in der Zukunft. Walk-Forward bricht die Daten auf, um dies zu erkennen.
Walk-Forward-Prozess
- Blöcke definieren: 5-Jahres-Historie in 3 Blöcke aufteilen (z.B. je ~1,5 Jahre)
- Block 1 (In-Sample): PSO-Optimierung auf diesem Zeitraum ausführen. Beste Parameter finden.
- Block 2 (Out-of-Sample): Diese besten Parameter auf den nächsten Block testen. Wie performen sie auf ungesehenen Daten?
- Block 3 (Out-of-Sample): Fenster verschieben. Block 2 zur Optimierung verwenden; auf Block 3 testen.
Ergebnisse interpretieren
- Gute Strategie: In-Sample Profit-Factor 2,0+, Out-of-Sample Profit-Factor >1,0. Out-of-Sample ist niedriger, aber noch profitabel und konsistent.
- Overfitted: In-Sample Factor 5,0+, Out-of-Sample <1,0. Die Parameter lassen sich nicht generalisieren.
- Underfitted: Sowohl In-Sample als auch Out-of-Sample schlecht. Die Strategie-Idee ist nicht stark genug.
Walk-Forward-Optimierung (WFO)
WFO kombiniert Walk-Forward-Validierung mit Optimierung: Optimierung auf jedem In-Sample-Block, dann Test des Ergebnisses auf dem nächsten Out-of-Sample-Block. Dies simuliert echtes Trading, bei dem man regelmäßig re-optimiert.
WFO-Prozess
- Daten aufteilen: 3 Blöcke (oder mehr). Blöcke 1, 2, 3.
- Zyklus 1: Optimierung auf Block 1 (In-Sample) → optimierte Parameter auf Block 2 (Out-of-Sample) testen
- Zyklus 2: Optimierung auf Block 2 (In-Sample) → optimierte Parameter auf Block 3 (Out-of-Sample) testen
- Ergebnisse zusammenführen: Alle Out-of-Sample-Trades aus Zyklen 1, 2 usw. kombinieren
- Kennzahlen berechnen: Profit-Factor, Drawdown usw. auf dem vollständigen aggregierten Out-of-Sample-Ergebnis
WFO-Interpretation
- Starkes Signal: WFO Profit-Factor >1,5, konsistent über alle Zyklen. Parameter generalisieren.
- Schwaches Signal: WFO Profit-Factor <1,0 oder stark variabel. Parameter sind fragil.
- Quartalsgliederung: Wenn 3 von 4 Out-of-Sample-Perioden profitabel sind, ist die Strategie robust. Wenn nur 1 von 4, ist sie brüchig.
Empfohlene Vorgehensweise
- Bauen: Strategie mit Blöcken im Graph-Editor entwerfen
- Testen: Einfachen Backtest mit Standard-Parametern ausführen (2020–2026)
- Optimieren: PSO auf einem sauberen In-Sample-Block ausführen (z.B. 2020–2023)
- Validieren: Optimierte Parameter auf Out-of-Sample testen (2023–2026). Profit-Factor >1,0?
- Walk-Forward: WFO mit 3 Blöcken ausführen. Profit-Factor >1,5 und konsistent? Bereit zum Trading.
- Paper-Trading: Strategie 1–2 Wochen auf Live-Daten testen, bevor echtes Geld eingesetzt wird
- Re-Deployment: Jeden Quartal WFO auf den neuesten Daten erneut ausführen, um Parameter zu re-optimieren
Häufige Fehler
- Zukunftsdaten verwenden: Indikatoren oder Signale, die den morgigen Schlusskurs "kennen". Immer auf Lookahead-Bias prüfen.
- Slippage ignorieren: Backtests nehmen sofortige Fills zu OHLC-Kursen an. Echtes Trading hat Slippage. 0,5–1 ATR als Puffer einplanen.
- Zu viele Parameter: 20 Parameter auf 3 Jahren Daten optimieren = Overfitting. Parameter minimal halten.
- Falsche Metrik: Maximaler Profit-Factor kann negative Schieflage verbergen. Sharpe-Ratio oder Profit-Factor mit Max-Drawdown gemeinsam verwenden.
- Nur In-Sample: Niemals auf demselben Zeitraum optimieren und testen. Immer Out-of-Sample validieren.
Nächste Schritte
Bereit, eine Strategie zu bauen? Starte im Graph-Editor auf der /graph-Seite. Oder lies die Block-Referenz, um zu verstehen, was verfügbar ist.