Jak przeprowadzić backtest strategii na rynkach predykcji Polymarket i Kalshi
Backtesting na rynku predykcji to nie backtesting akcji. Kontrakty rozliczają się do $0 lub $1, okna trwają minuty, a arkusz jest cienki blisko zamknięcia. Oto jak robić to rzetelnie.
Żeby rzetelnie przetestować strategię na rynku predykcji, odtwarzasz zapisany arkusz zleceń każdego rynku, wyceniasz każde wypełnienie względem płynności, która faktycznie tam leżała, i rozliczasz każdą pozycję przy rzeczywistym wyniku $0/$1. W DepthFeed możesz to zrobić na dwa sposoby — bez kodu w Backtest Lab lub przez API danych we własnym środowisku — a następnie przetestować ocalałą strategię do przodu na żywych arkuszach z paper tradingiem.
Co sprawia, że backtesting rynków predykcji jest inny
Kontrakt na rynku predykcji to nie akcja ani kontrakt wieczysty. Każdy wynik jest kwotowany od 0 do 1 — jako prawdopodobieństwo implikowane — a przy rozliczeniu jedna strona jest warta dokładnie $1, a druga $0. Kryptowalutowe rynki up/down rozliczają się w 5 do 60 minut względem ceny referencyjnej, spready rozszerzają się i głębokość rzednie blisko zamknięcia, a całe życie rynku może być krótsze niż jedna świeca na zwykłym wykresie.
Ten kształt zmienia wymagania backtestingu. Próbkowanie ostatniej ceny raz na minutę omija większość pięciominutowego rynku; ignorowanie arkusza ukrywa spread, który decyduje o Twoim P&L na kontrakcie płacącym co najwyżej dolara; a błędne oznaczenie rozliczenia zamienia zwycięzców w przegranych. Reszta tego poradnika dotyczy właściwego postępowania w każdym z tych przypadków.
Krok 1 — Zacznij od prawdziwego arkusza zleceń
Backtest może być tylko tak rzetelny, jak jego dane. Potrzebujesz pełnego arkusza zleceń — każdego leżącego bid i ask z jego rozmiarem, po obu stronach — rejestrowanego przy każdej zmianie, a nie w stałych odstępach czasu, ponieważ rejestracja sterowana zdarzeniami to jedyny sposób na zobaczenie pełnego łuku krótkoterminowego rynku. Ani Polymarket, ani Kalshi nie udostępnia własnej historycznej głębokości arkusza, więc odtworzenie arkusza takim, jakim był, wymaga dostawcy, który rejestrował go nieprzerwanie.
DepthFeed dostarcza dokładnie to dla obu platform w jednym schemacie: Polymarket rejestrowany sterowany zdarzeniami z websocketu CLOB, Kalshi odpytywany nieprzerwanie na pełną głębokość (do 100 poziomów na stronę), każda migawka niesie znaczniki czasu epoch-millis i dołączoną referencyjną cenę kryptowaluty bazowej. Jeden loader czyta obie platformy.
Krok 2 — Modeluj wypełnienia względem głębokości, nie ceny środkowej
To krok, który oddziela backtest, na którym można handlować, od takiego, który kłamie. Rynkowe zlecenie przechodzi przez arkusz — wypełnia najpierw najlepszy poziom, potem następny, więc jego cena średnia jest gorsza niż dotknięcie za każdym razem, gdy konsumuje więcej niż najwyższy poziom. Zlecenie leżące dołącza do kolejki i wypełnia się tylko wtedy, gdy rynek przechodzi przez jego cenę z wystarczającym wolumenem za nim. Wypełnianie wszystkiego po cenie środkowej z zerowym poślizgiem, domyślne rozwiązanie większości pobieżnych backtestów, systematycznie zawyża przewagę.
Niezależnie od wybranej ścieżki, nalegaj na wypełnienie uwzględniające głębokość. Przy czterocetowym spreadzie w obie strony, na kontrakcie płacącym co najwyżej dolara, różnica między wypełnieniem po cenie środkowej a rzeczywistym jest ogromna — i kumuluje się przy każdej transakcji.
Krok 3 — Rozlicz przy rzeczywistym wyniku
Ponieważ wypłata jest binarna, rozliczenie to nie detal zaokrąglenia — to większość P&L. Rynki Polymarket up/down rozliczają się względem „ceny do pokonania” ustalonej przy otwarciu versus końcowej referencji przy zamknięciu; kontrakty Kalshi rozliczają się tak/nie względem opublikowanej ceny referencyjnej przy wygaśnięciu. Testuj względem rzeczywistego rozliczenia, a nie założenia, i sprawdź podział: na zarejestrowanych przez nas rozstrzygniętych kryptowalutowych rynkach up/down wyniki lądują blisko rzutu monetą, więc każdy backtest, którego rozliczenia mocno odbiegają od tego, prawdopodobnie błędnie etykietuje zwycięzców.
Krok 4 — Wybierz workflow: bez kodu lub przez API
Są dwa sposoby przeprowadzenia powyższego w DepthFeed. Ścieżka bez kodu to Backtest Lab: wybierz kryptowalutę i okno, wybierz preset lub napisz krótką regułę, wybierz model wypełnień, a Lab odtworzy rozstrzygnięte rynki i rozliczy je za Ciebie w przeglądarce — wypełnienia VWAP uwzględniające głębokość włączone, bez budowania pipeline'u.
Ścieżka API jest przeznaczona do niestandardowych badań w dużej skali: pobierz migawki pełnej głębokości przez API REST, odtwórz arkusz we własnym środowisku i uruchom dowolny model. Ponieważ historyczne API REST i żywy WebSocket emitują identyczny JSON, loader napisany do odtwarzania historii czyta żywy feed bez zmian — handlujesz dokładnie tym samym kodem, który backtestowałeś.
Krok 5 — Przetestuj forwardowo zanim zaryzykujesz pieniądze
Backtest jest dopasowany do przeszłości, choćby lekko, więc ostatnim krokiem jest uruchomienie ocalałej strategii do przodu na rynkach, których wynik nikt jeszcze nie zna. Wdróż regułę do paper tradingu — lub steruj nią z własnego bota przez webhook — a będzie handlować żywymi arkuszami z wirtualną gotówką, wypełniając po rzeczywistym bid/ask i rozliczając automatycznie przy rozstrzygnięciu. Krzywa kapitału, którą zbuduje, to dowód forwardowy, którego backtest nie może Ci dać.
To zamyka pętlę: dane → rzetelny backtest → test forwardowy. Tanio eliminuj pomysły na historii, awansuj te, które przeżyją, do żywych arkuszach papierowych — i dopiero wtedy rozważ prawdziwy kapitał.
Częste pułapki
- Dane ostatniej ceny lub godzinowe: ukrywają spread i omijają życie 5–60-minutowego rynku.
- Wypełnienia po cenie środkowej: zakładanie zerowego poślizgu mocno zawyża przewagę na kontrakcie płacącym co najwyżej $1.
- Zakładane rozliczenie: etykietuj zwycięzców na podstawie rzeczywistej ceny referencyjnej, nie zgadywania — to większość P&L.
- Błąd podglądania przyszłości: reaguj tylko na dane ze znacznikiem czasu odbioru równym lub wcześniejszym niż Twój czas decyzji.
- Pomijanie testu forwardowego: przewaga istniejąca tylko na rozstrzygniętej historii może nie przetrwać żywych rynków.
Key takeaways
- 01Rynki predykcji rozliczają się do $0/$1 w minutach, więc głębokość, wyczucie czasu i rozliczenie mają większe znaczenie niż na jakimkolwiek zwykłym wykresie.
- 02Testuj na prawdziwym zapisanym arkuszu zleceń — obie strony, każdy poziom — rejestrowanym przy każdej zmianie, a nie próbkowanym.
- 03Modeluj wypełnienia względem głębokości (przejdź przez arkusz); wypełnienie po cenie środkowej cicho zawyża przewagę na kontrakcie płacącym co najwyżej $1.
- 04Rozliczaj przy rzeczywistym rozstrzygnięciu i sprawdź podział zbliżony do rzutu monetą; błędnie oznaczone rozliczenie odwraca zwycięzców.
- 05Uruchom bez kodu w Backtest Lab lub przez API, a następnie przetestuj ocalałą strategię do przodu na żywych arkuszach z paper tradingiem.
Backtesting na rynku predykcji to nie backtesting akcji. Kontrakty rozliczają się do $0 lub $1, okna trwają minuty, a arkusz jest cienki blisko zamknięcia. Oto jak robić to rzetelnie.
Zacznij za darmo