Backtesting8 min di lettura

Come fare il backtest delle strategie Polymarket sull'order book

DepthFeed Research

Team dati dei mercati di previsione

Guide

Un last price campionato una volta all'ora non può dirti se il tuo ordine sarebbe stato eseguito. Ecco come fare il backtest di Polymarket contro il book su cui avrebbe davvero operato.

Per eseguire il backtest di una strategia Polymarket, riproduci le sue ladder di bid/ask complete registrate e dimensiona le esecuzioni ipotetiche rispetto alla liquidità osservata. Ispeziona i timestamp, la cadenza memorizzata e le lacune; l'archivio non può stabilire l'ordine esatto tra le osservazioni. Un ultimo prezzo o un singolo mid omette anche lo spread e la profondità che un ordine reale incontrerebbe.

Perché i backtest sul last price mentono

La maggior parte dei dati Polymarket disponibili gratuitamente è il last traded price, spesso campionato una volta all'ora. È sufficiente per disegnare un grafico e niente di più. Un backtest deve rispondere a una domanda più difficile: se il mio ordine fosse stato in essere (o avesse attraversato lo spread) in quel momento, sarebbe stato eseguito, in che quantità e a quale prezzo?

Rispondere richiede l'order book — ogni bid e ask in essere con la relativa size — non un singolo numero. Una strategia testata contro il mid presuppone di aver sempre eseguito al mid con zero slippage, il che non è mai vero. Sui mercati crypto a brevissima scadenza, dove gli spread si allargano in prossimità del settlement, quell'assunzione può trasformare una strategia perdente in un'apparente vincente.

Passo 1 — Procurati i dati dell'order book a profondità completa

Inizia da ordini completi registrati su entrambi i lati. DepthFeed ingerisce aggiornamenti di Polymarket CLOB, ma le osservazioni memorizzate seguono la cadenza di cattura documentata e possono avere lacune. Ispeziona i timestamp disponibili per il tuo mercato piuttosto che presumere che ogni evento upstream sia stato conservato.

Estrai i mercati che ti servono tramite l'API REST: scoprili con GET /v3/{coin}/markets, poi estrai la profondità da /v3/{coin}/markets/{id}/snapshots. Ogni snapshot porta con sé gli array di prezzo e size di bid/ask oltre ai timestamp di exchange e di ricezione in epoch-millis.

Passo 2 — Ricostruisci il book in ogni istante

Riproduci le osservazioni registrate in ordine di timestamp. Ciascuna descrive l'ordine memorizzato in quell'osservazione, inclusi il miglior bid, il miglior ask, la profondità e lo spread. Non inferire uno stato esatto dell'ordine o esecuzioni garantite tra le osservazioni; rendi esplicita qualsiasi ipotesi di interpolazione o persistenza nel backtest.

Passo 3 — Modella i fill contro la profondità reale

Ora simula l'esecuzione in modo onesto. Un ordine marketable percorre il book: si esegue prima contro il miglior livello, poi contro il successivo, finché la sua size non è esaurita — perciò il suo prezzo medio è peggiore del touch ogni volta che consuma più del livello in cima. Un ordine in essere si mette in coda e viene eseguito solo se il mercato attraversa il suo prezzo con size sufficiente alle spalle.

Dimensionare i fill rispetto alla scala registrata è tutto il punto: ti dà slippage e probabilità di fill realistici, invece della finzione di aver sempre operato al mid.

Passo 4 — Aggancia il prezzo del sottostante

I mercati crypto up/down di Polymarket sono guidati dal movimento spot dell'asset sottostante. Ogni snapshot DepthFeed si aggancia a un prezzo di riferimento Binance ad alta frequenza tramite timestamp epoch-millis, così puoi allineare lo stato del book con il movimento spot che ha riprezzato il contratto — essenziale per qualsiasi strategia che opera sulla relazione tra il prezzo crypto e la probabilità implicita del mercato.

Passo 5 — Convalida l'adattatore di dati live

Le risposte storiche di REST e i frame live di WebSocket utilizzano contratti documentati distinti. Valida un adattatore per i loro identificatori, timestamp e campi prima di alimentare entrambi in una logica di strategia condivisa. Esegui il backtest sulle osservazioni memorizzate, quindi testa in avanti l'adattatore live con il paper trading.

Errori frequenti

  • Usare i dati del last price: nasconde spread e slippage; gonfia i rendimenti del backtest.
  • Snapshot a intervallo fisso: un campione orario o al minuto manca gran parte della vita di un mercato da 5 minuti.
  • Ignorare la posizione in coda: presumere che gli ordini in essere si eseguano sempre sovrastima le strategie passive.
  • Look-ahead bias: reagisci solo ai dati con un timestamp di ricezione pari o anteriore al momento della tua decisione.
  • Tralasciare il sottostante: l'edge sui crypto up/down vive di solito nella relazione spot-probabilità.

Punti chiave

  • 01Fai il backtest contro l'order book, non contro il last price — è la profondità a determinare i fill.
  • 02Usa dati event-driven: i campioni a intervallo fisso mancano la vita dei mercati a breve scadenza.
  • 03Modella gli ordini marketable che percorrono il book e gli ordini in essere che attendono in coda.
  • 04Aggancia il prezzo crypto sottostante per catturare la relazione spot-probabilità.
  • 05Scegli dati la cui storia e feed live condividano un unico formato, così operi con il codice che hai testato.

Un last price campionato una volta all'ora non può dirti se il tuo ordine sarebbe stato eseguito. Ecco come fare il backtest di Polymarket contro il book su cui avrebbe davvero operato.

Inizia gratis

Domande, con risposta.

Solo in parte. L'API pubblica di Polymarket espone i mercati correnti, i trade e un endpoint di prices-history, ma non serve gli snapshot storici dell'order book — quindi non puoi riprodurre il book in essere contro cui una strategia avrebbe operato. Quella profondità storica è esattamente la lacuna che i dati di order book di terze parti colmano.

Inizia a fare backtest su Polymarket con profondità reale.

Gratis per iniziare, senza carta. Passa a un piano superiore quando la tua strategia è pronta per l'intero book.

Inizia gratis