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 sauber zu backtesten, spielst du das historische Order Book erneut ab, gegen das die Strategie gehandelt hätte — die vollständige Bid/Ask-Leiter bei jeder Änderung — und bemisst die Fills an der Liquidität, die dort tatsächlich im Buch lag. Ein Backtest auf Basis eines Last Price oder eines einzelnen Mid überschätzt deine Edge systematisch, weil er den Spread und die Slippage verbirgt, die eine echte Order zahlt.
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
Beginne mit Daten, die das vollständige Buch auf beiden Seiten erfassen — bei jeder Änderung statt nach einem festen Takt. DepthFeed erfasst Polymarket eventgesteuert direkt aus dem CLOB-WebSocket, sodass jedes Book- und Price-Change-Event mit der vollständigen Bid/Ask-Leiter aufgezeichnet wird — keine stündliche oder minütliche Stichprobe, die das Leben eines Fünf-Minuten-Marktes überspringt.
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
Spiele die Snapshots in Timestamp-Reihenfolge ab, um das Buch so wiederherzustellen, wie es in jedem Augenblick stand. Weil die Daten eventgesteuert sind, ist die Rekonstruktion zwischen den Events exakt — kein Interpolations-Rätselraten. Das ist der Zustand, auf den deine Strategie reagiert: Best Bid, Best Ask, die Tiefe dahinter und der Spread.
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 — Mit demselben Code live gehen
Die historische REST API und der Live-WebSocket-Stream geben identische JSON-Snapshot-Objekte aus. Das bedeutet: Der Loader, den du zum Abspielen der Historie geschrieben hast, liest den Live-Feed unverändert — kein Umschreiben zwischen Research und Produktion. Backtesten, validieren, dann denselben Code auf wss://api.depthfeed.com/v3/stream richten und handeln.
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.
Key takeaways
- 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