Backtesting8 min czytania

Jak backtestować strategie Polymarket na order booku

DepthFeed Research

Zespół danych rynków prognostycznych

Poradniki

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.

Aby przetestować wstecznie strategię Polymarket, odtwórz jej zapisane pełne drabinki ofert kupna/sprzedaży i rozmiar hipotetycznych wypełnień w stosunku do zaobserwowanej płynności. Sprawdź znaczniki czasu, zapisaną kadencję i luki; archiwum nie może ustalić dokładnej księgi między obserwacjami. Ostatnia cena lub pojedynczy środek również pomija spread i głębokość, z którymi napotkałby się rzeczywisty 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 zapisanych ksiąg pełnej głębokości po obu stronach. DepthFeed pozyskuje aktualizacje Polymarket CLOB, ale zapisane obserwacje podążają za udokumentowaną kadencją przechwytywania i mogą mieć luki. Sprawdź dostępne znaczniki czasu dla swojego rynku, zamiast zakładać, że każde zdarzenie nadrzędne zostało zachowane.

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

Odtwórz zapisane obserwacje w kolejności znaczników czasu. Każda opisuje zapisaną księgę w tej obserwacji, w tym najlepszą ofertę kupna, najlepszą ofertę sprzedaży, głębokość i spread. Nie wyciągaj wniosków o dokładnym stanie księgi ani gwarantowanych wypełnieniach między obserwacjami; uczynij wszelkie założenia dotyczące interpolacji lub trwałości jawnymi w teście wstecznym.

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 — Zweryfikuj adapter danych na żywo

Historyczne odpowiedzi REST i ramki WebSocket na żywo używają odrębnych udokumentowanych kontraktów. Zweryfikuj adapter dla ich identyfikatorów, znaczników czasu i pól przed podaniem obu do wspólnej logiki strategii. Testuj wstecznie na zapisanych obserwacjach, a następnie testuj na żywo adapter za pomocą handlu na papierze.

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.

Najważniejsze informacje

  • 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.

Zacznij backtestować Polymarket na realnej głębokości.

Darmowy start, bez karty. Przejdź na wyższy plan, gdy Twoja strategia będzie gotowa na cały arkusz.

Zacznij za darmo