DepthFeed/Polymarket·Backtesting

Jak backtestować strategie Polymarket na order booku

Cena ostatniej transakcji próbkowana raz na godzinę nie powie ci, czy twoje zlecenie zostałoby zrealizowane. Oto jak backtestować Polymarket na księdze, na której naprawdę by się zawierało.

DepthFeed··8 min

Aby poprawnie zbacktestować strategię Polymarket, odtwarzasz historyczny order book, na którym strategia faktycznie by handlowała — pełną drabinkę bid/ask przy każdej zmianie — i wymiarujesz egzekucje względem płynności, która naprawdę tam stała. Backtest na cenie ostatniej transakcji lub na pojedynczym midzie systematycznie zawyża twoją przewagę, bo ukrywa spread i slippage, który płaci realne zlecenie.

Dlaczego backtesty na cenie ostatniej transakcji kłamią

Większość darmowo dostępnych danych Polymarket to cena ostatniej transakcji, często próbkowana raz na godzinę. To wystarczy, by narysować wykres, i na tym koniec. Backtest musi odpowiedzieć na trudniejsze pytanie: gdyby moje zlecenie stało w księdze (albo przecięło spread) w tamtym momencie, czy zostałoby zrealizowane, w jakim rozmiarze i po jakiej cenie?

Odpowiedź na to wymaga order booka — każdego stojącego bidu i aska wraz z jego rozmiarem — a nie jednej liczby. Strategia backtestowana względem midu zakłada, że zawsze realizowała się po midzie z zerowym slippage, co nigdy nie jest prawdą. Na krótkoterminowych rynkach krypto, gdzie spready rozszerzają się tuż przed rozliczeniem, to założenie potrafi zamienić stratną strategię w pozornego zwycięzcę.

Krok 1 — Zdobądź dane order booka o pełnej głębokości

Zacznij od danych, które rejestrują kompletną księgę po obu stronach, przechwytywaną przy każdej zmianie, a nie według stałego zegara. DepthFeed przechwytuje Polymarket sterowany zdarzeniami prosto z websocketu CLOB, więc każde zdarzenie book i price-change jest rejestrowane z pełną drabinką bid/ask — a nie godzinną czy minutową próbką, która pomija życie pięciominutowego rynku.

Pobierz interesujące cię rynki przez REST API: odkryj je przez GET /v3/{coin}/markets, a następnie pobierz głębokość z /v3/{coin}/markets/{id}/snapshots. Każdy snapshot niesie tablice cen i rozmiarów bid/ask oraz znaczniki czasu giełdy i odbioru w epoch-millis.

Krok 2 — Odtwórz księgę w każdym momencie

Odtwarzaj snapshoty w kolejności znaczników czasu, aby zrekonstruować księgę w stanie, w jakim była w dowolnej chwili. Ponieważ dane są sterowane zdarzeniami, rekonstrukcja jest dokładna pomiędzy zdarzeniami — nie ma zgadywania przez interpolację. To jest stan, na który reaguje twoja strategia: najlepszy bid, najlepszy ask, głębokość za każdym z nich i spread.

Krok 3 — Zamodeluj egzekucje względem realnej głębokości

Teraz symuluj egzekucję uczciwie. Zlecenie marketowalne przechodzi przez księgę: realizuje się najpierw na najlepszym poziomie, potem na kolejnym, aż wyczerpie swój rozmiar — więc jego średnia cena jest gorsza niż touch, ilekroć konsumuje więcej niż górny poziom. Zlecenie stojące dołącza do kolejki i realizuje się tylko wtedy, gdy rynek przehandluje przez jego cenę z wystarczającym rozmiarem za nim.

Wymiarowanie egzekucji względem zarejestrowanej drabinki to cały sens: daje ci realistyczny slippage i prawdopodobieństwo realizacji zamiast fikcji, że zawsze handlowałeś po midzie.

Krok 4 — Dołącz cenę instrumentu bazowego

Rynki krypto up/down Polymarket są napędzane ruchem spot instrumentu bazowego. Każdy snapshot DepthFeed jest dołączany do wysokoczęstotliwościowej ceny referencyjnej Binance po znaczniku czasu epoch-millis, więc możesz zestawić stan księgi z ruchem spot, który przecenił kontrakt — to niezbędne dla każdej strategii handlującej relacją między ceną krypto a implikowanym prawdopodobieństwem rynku.

Krok 5 — Wejdź na żywo z tym samym kodem

Historyczne REST API i strumień live WebSocket emitują identyczne obiekty snapshot JSON. To znaczy, że loader, który napisałeś do odtwarzania historii, czyta feed na żywo bez zmian — żadnego przepisywania między researchem a produkcją. Zbacktestuj, zweryfikuj, a potem skieruj ten sam kod na wss://api.depthfeed.com/v3/stream i handluj.

Najczęstsze pułapki

  • Używanie danych o cenie ostatniej transakcji: ukrywa spread i slippage; zawyża backtestowane zwroty.
  • Snapshoty w stałych odstępach: godzinna czy minutowa próbka pomija większość życia 5-minutowego rynku.
  • Ignorowanie pozycji w kolejce: założenie, że zlecenia stojące zawsze się realizują, zawyża strategie pasywne.
  • Look-ahead bias: reaguj wyłącznie na dane ze znacznikiem czasu odbioru w momencie twojej decyzji lub wcześniejszym.
  • Pomijanie instrumentu bazowego: przewaga w krypto up/down zwykle tkwi w relacji spot–prawdopodobieństwo.

Key takeaways

  • 01Backtestuj względem order booka, a nie ceny ostatniej transakcji — to głębokość decyduje o egzekucjach.
  • 02Używaj danych sterowanych zdarzeniami: próbki o stałym interwale pomijają życie krótkoterminowych rynków.
  • 03Modeluj zlecenia marketowalne przechodzące przez księgę i zlecenia stojące czekające w kolejce.
  • 04Dołącz bazową cenę krypto, aby uchwycić relację spot–prawdopodobieństwo.
  • 05Wybierz dane, których historia i feed na żywo mają jeden format, byś handlował kodem, który zbacktestowałeś.

Cena ostatniej transakcji próbkowana raz na godzinę nie powie ci, czy twoje zlecenie zostałoby zrealizowane. Oto jak backtestować Polymarket na księdze, na której naprawdę by się zawierało.

Zacznij za darmo

Pytania i odpowiedzi.

Tylko częściowo. Publiczne API Polymarket udostępnia bieżące rynki, transakcje i endpoint historii cen, ale nie serwuje historycznych snapshotów order booka — więc nie możesz odtworzyć stojącej księgi, na której strategia by handlowała. Tę historyczną głębokość wypełniają właśnie dane order booka od dostawców zewnętrznych.