Backtesting8 Min. Lesezeit
Polymarket-Strategien gegen das Order Book backtesten – so geht's
Ein Last Price, der nur einmal pro Stunde erfasst wird, sagt dir nicht, ob deine Order gefüllt worden wäre. So backtestest du Polymarket gegen genau das Buch, gegen das sie tatsächlich gehandelt hätte.
Um eine Polymarket-Strategie zu backtesten, spielen Sie ihre aufgezeichneten vollständigen Geld-/Briefkurse und die Größe hypothetischer Fills gegen die beobachtete Liquidität ab. Inspizieren Sie Zeitstempel, gespeicherte Kadenz und Lücken; das Archiv kann das genaue Orderbuch zwischen den Beobachtungen nicht feststellen. Ein letzter Preis oder ein einzelner Mittelwert lässt auch den Spread und die Tiefe aus, auf die eine echte Order stoßen würde.
Warum Last-Price-Backtests lügen
Die meisten frei verfügbaren Polymarket-Daten sind der zuletzt gehandelte Preis, oft nur einmal pro Stunde erfasst. Das reicht, um ein Chart zu zeichnen — mehr nicht. Ein Backtest muss eine schwierigere Frage beantworten: Wäre meine Order, hätte sie in diesem Moment im Buch gelegen (oder den Spread überquert), gefüllt worden — in welcher Größe und zu welchem Preis?
Diese Frage zu beantworten erfordert das Order Book — jedes ruhende Bid und Ask samt Größe — und nicht eine einzelne Zahl. Eine Strategie, die gegen den Mid getestet wird, unterstellt, dass sie immer zum Mid und mit null Slippage gefüllt wurde, was nie zutrifft. Auf kurzlaufenden Krypto-Märkten, wo sich die Spreads kurz vor dem Settlement ausweiten, kann diese Annahme aus einer Verluststrategie einen scheinbaren Gewinner machen.
Schritt 1 — Full-Depth-Order-Book-Daten holen
Beginnen Sie mit aufgezeichneten Full-Depth-Orderbüchern auf beiden Seiten. DepthFeed nimmt Polymarket CLOB-Updates auf, aber die gespeicherten Beobachtungen folgen der dokumentierten Erfassungskadenz und können Lücken aufweisen. Inspizieren Sie die verfügbaren Zeitstempel für Ihren Markt, anstatt anzunehmen, dass jedes vorgelagerte Ereignis beibehalten wurde.
Hole dir die gewünschten Märkte über die REST API: Finde sie mit GET /v3/{coin}/markets und ziehe dann die Tiefe aus /v3/{coin}/markets/{id}/snapshots. Jeder Snapshot enthält Bid/Ask-Preis- und Größen-Arrays sowie Exchange- und Receive-Timestamps in epoch-millis.
Schritt 2 — Das Buch zu jedem Zeitpunkt rekonstruieren
Spielen Sie aufgezeichnete Beobachtungen in Zeitstempelreihenfolge ab. Jede beschreibt das gespeicherte Orderbuch zu diesem Zeitpunkt, einschließlich des besten Geldkurses, des besten Briefkurses, der Tiefe und des Spreads. Leiten Sie keinen genauen Orderbuchzustand oder garantierte Fills zwischen Beobachtungen ab; machen Sie jede Interpolations- oder Persistenzannahme im Backtest explizit.
Schritt 3 — Fills gegen echte Tiefe modellieren
Jetzt simulierst du die Ausführung ehrlich. Eine marktfähige Order läuft durch das Buch: Sie füllt zuerst gegen das beste Level, dann gegen das nächste, bis ihre Größe aufgebraucht ist — ihr Durchschnittspreis ist also schlechter als der Touch, sobald sie mehr als das oberste Level konsumiert. Eine ruhende Order reiht sich in die Queue ein und füllt nur, wenn der Markt durch ihren Preis handelt und genug Größe dahintersteht.
Die Fills an der aufgezeichneten Leiter zu bemessen ist der ganze Punkt: Es liefert dir realistische Slippage und Fill-Wahrscheinlichkeit statt der Fiktion, dass du immer zum Mid gehandelt hast.
Schritt 4 — Den Preis des Basiswerts verknüpfen
Polymarkets Krypto-Up/Down-Märkte werden von der Spot-Bewegung des Basiswerts getrieben. Jeder DepthFeed-Snapshot wird per epoch-millis-Timestamp mit einem hochfrequenten Binance-Referenzpreis verknüpft, sodass du den Buchzustand mit der Spot-Bewegung abgleichen kannst, die den Kontrakt neu bepreist hat — unverzichtbar für jede Strategie, die die Beziehung zwischen dem Krypto-Preis und der vom Markt implizierten Wahrscheinlichkeit handelt.
Schritt 5 — Validieren Sie den Live-Datenadapter
Historische REST-Antworten und Live WebSocket-Frames verwenden unterschiedliche dokumentierte Verträge. Validieren Sie einen Adapter für ihre Bezeichner, Zeitstempel und Felder, bevor Sie beide in gemeinsame Strategielogik einspeisen. Backtesten Sie auf gespeicherten Beobachtungen, dann testen Sie den Live-Adapter mit Paper-Trading.
Häufige Fallstricke
- Last-Price-Daten verwenden: verbirgt Spread und Slippage; bläht die Backtest-Renditen auf.
- Snapshots in festen Intervallen: Eine stündliche oder minütliche Stichprobe verpasst den Großteil vom Leben eines 5-Minuten-Marktes.
- Queue-Position ignorieren: Anzunehmen, dass ruhende Orders immer füllen, überschätzt passive Strategien.
- Look-ahead-Bias: Reagiere nur auf Daten mit einem Receive-Timestamp zu oder vor deinem Entscheidungszeitpunkt.
- Den Basiswert auslassen: Die Edge bei Krypto-Up/Down liegt meist in der Beziehung zwischen Spot und Wahrscheinlichkeit.
Das Wichtigste
- 01Backteste gegen das Order Book, nicht gegen den Last Price — die Tiefe bestimmt die Fills.
- 02Nutze eventgesteuerte Daten: Stichproben in festen Intervallen verpassen das Leben kurzlaufender Märkte.
- 03Modelliere marktfähige Orders, die durch das Buch laufen, und ruhende Orders, die in der Queue warten.
- 04Verknüpfe den Krypto-Preis des Basiswerts, um die Beziehung zwischen Spot und Wahrscheinlichkeit zu erfassen.
- 05Wähle Daten, deren Historie und Live-Feed dasselbe Format teilen, damit du genau den Code handelst, den du gebacktestet hast.
Ein Last Price, der nur einmal pro Stunde erfasst wird, sagt dir nicht, ob deine Order gefüllt worden wäre. So backtestest du Polymarket gegen genau das Buch, gegen das sie tatsächlich gehandelt hätte.
Kostenlos starten