Kurs budowy bota na Polymarket · Rozdział 13 z 32

Animacja rynku na Polymarket: jak kwotować ofertę kupna i sprzedaży, przechwytywać spread, zarabiać rabaty makera (20-25% opłat takera), matematyka ryzyka zapasu oraz kiedy animacja działa na rynkach predykcyjnych.

Co obejmuje ten rozdział

Animacja rynku na Polymarket oznacza ciągłe kwotowanie obu stron arkusza zleceń i zarabianie na spreadzie przy każdym obrocie w obie strony. Strategia jest dobrze znana w tradycyjnych finansach; specyficzne dla Polymarket są program rabatu makera oraz profil niekorzystnej selekcji na rynkach predykcyjnych, który jest wyższy niż na platformach CFD. Ten rozdział to uczciwa matematyka.

To jest rozdział 13 naszej 32-częściowej serii o budowie bota tradingowego na Polymarket. Omawiamy temat szczegółowo w sekcjach poniżej. Treść każdej sekcji jest pisana i publikowana rozdział po rozdziale; odpowiedzi FAQ i sekcje referencyjne są już kompletne i odzwierciedlają doświadczenie produkcyjne z działania naszego własnego bota.

  • Animacja rynku prostym językiem
  • Przewaga ze spreadu + rabatu
  • Ryzyko zapasu i przechylenie
  • Kiedy animacja działa na Polymarket (a kiedy nie)
  • Szkielet kodu: kwotuj obie strony o +/- N centów
  • Dostosowywanie kwotowań do napływu newsów
  • Zatrzymywanie bota, gdy rośnie niekorzystna selekcja

Animacja rynku prostym językiem

Animator rynku (maker) ciągle kwotuje zarówno cenę kupna (bid), jak i cenę sprzedaży (ask), szerzej niż cena środkowa o stały spread. Gdy ktoś uderza w ofertę kupna, maker kupuje tanio; gdy ktoś podnosi ofertę sprzedaży, maker sprzedaje drogo; różnica między ofertą kupna a sprzedaży to przychód makera z jednego obrotu w obie strony.

Strategia jest napędzana przepływem zleceń, a nie kierunkiem rynku. Maker nie ma opinii, czy YES wygra; zakłada, że przepływ będzie się utrzymywał, a spread będzie nadal płacony.

Ryzykiem jest niekorzystna selekcja: osoby uderzające w twoją ofertę kupna mają informację, której ty nie masz. Z czasem zyski animatora zależą od tego, czy spread jest wystarczająco szeroki, by pokryć poślizg od świadomych traderów.

Przewaga ze spreadu + rabatu

Dwa strumienie przychodu dla makera na Polymarket.

Przechwytywanie spreadu: kwotujesz ofertę kupna 0,45 i sprzedaży 0,47 wokół ceny środkowej 0,46. Każda realizacja na ofercie kupna, z której później wyjdziesz na ofercie sprzedaży, zarabia 2 centy. Wynik netto zależy od nierównowagi realizacji i ruchu ceny.

Rabat makera: program nagród za płynność Polymarket wypłaca rabat na udział za realizacje makera na kwalifikujących się rynkach. Wartości się zmieniają; sprawdź oficjalną stronę nagród, aby poznać aktualne stawki. Rabat jest wypłacany w pUSD okresowo, niezależnie od samej transakcji.

Na większości rynków większym źródłem przychodu jest przechwytywanie spreadu. Rabat ma znaczenie wtedy, gdy możesz kwotować szerokie rynki (rok wyborczy, główne fazy pucharowe sportu), gdzie Polymarket podbija rabat, aby przyciągnąć płynność.

Ryzyko zapasu i przechylenie

Maker, który jest wielokrotnie uderzany na ofercie kupna, akumuluje długą pozycję. Ryzyko polega na tym, że cena środkowa spadnie, gdy zapas jest długi; maker realizuje stratę na pozycji, nawet po uwzględnieniu przychodu ze spreadu.

Obrony: przechylenie kwotowań (obniż ofertę kupna, gdy zapas jest długi, podnieś ofertę sprzedaży, gdy jesteś krótki, aby zniechęcić do jednostronnych realizacji); limit zapasu (przestań kwotować po stronie, po której masz już zbyt długą pozycję); aktywne rebalansowanie (czasem przecinanie spreadu, aby zmniejszyć pozycję, gdy zapas osiąga limit).

Matematyka: jeśli 60% realizacji na ofercie kupna nigdy nie zostaje zamknięte, zanim cena ruszy 2 centy przeciwko tobie, strategia traci pieniądze na samych tych realizacjach. Przechylaj agresywnie, gdy nierównowaga realizacji > 65/35.

Kiedy animacja działa na Polymarket (a kiedy nie)

Animacja działa na Polymarket, gdy spełnione są trzy warunki.

  • Płynny arkusz: wystarczająca konkurencja kwotowań, by twój spread był konkurencyjny, ale nie zerowy. Rynki wyborcze 2024, główne mecze NFL/NBA, 5-minutowe BTC w górę/w dół - wszystkie się kwalifikują.
  • Dwustronny przepływ: aktywni są zarówno kupujący, jak i sprzedający. Jednostronne rynki (niemal rozstrzygnięte przy 0,95+) nie dają makerowi nic do przechwycenia.
  • Ograniczone ruchy cen: zyski ze spreadu nie są zjadane przez 5-centowe skoki. Stabilne rynki w środku zakresu (0,40-0,60) są najwdzięczniejsze.

Animacja zawodzi na rynkach napędzanych newsami, gdzie cena środkowa skacze szybciej, niż możesz złożyć nowe kwotowania; na mało płynnych arkuszach, gdzie jesteś jedynym kwotującym i kolejna transakcja przechodzi przez 5 poziomów; oraz na rynkach tuż przed rozstrzygnięciem, gdzie jedna strona zbiega do 0 albo 1.

Szkielet kodu: kwotuj obie strony o +/- N centów

Pseudokod dla najprostszego działającego makera.

SPREAD_CENTS = 2
INVENTORY_CAP_SHARES = 50

def make_loop(token_id):
    while True:
        book = fetch_book(token_id)
        mid = (book.best_bid + book.best_ask) / 2
        inv = chain_balance(token_id)

        # Skew: pull the side we are too long on
        bid_px = mid - SPREAD_CENTS/200 - (0.005 if inv > INVENTORY_CAP_SHARES * 0.6 else 0)
        ask_px = mid + SPREAD_CENTS/200 + (0.005 if inv < -INVENTORY_CAP_SHARES * 0.6 else 0)

        cancel_my_existing_quotes(token_id)
        if inv < INVENTORY_CAP_SHARES:
            place_gtc(token_id, side="BUY", price=bid_px, size=5)
        if inv > -INVENTORY_CAP_SHARES:
            place_gtc(token_id, side="SELL", price=ask_px, size=min(5, inv))
        time.sleep(2)

Makerzy produkcyjni dodają: śledzenie zapasu per strona, kolejność anuluj-przed-złożeniem, rozrzut na interwale ponownego kwotowania, aby nie być przewidywalnym, oraz wyłącznik awaryjny przy niekorzystnej selekcji (następna sekcja).

Dostosowywanie kwotowań do napływu newsów

Gdy uderza wydarzenie newsowe, wartość godziwa przesuwa się, zanim twoje kwotowania zdążą się dostosować. Maker, który nie wycofuje kwotowań podczas napływu newsów, zostaje wyłapany.

Sygnał: tempo napływających realizacji skacze powyżej ~3x poziomu bazowego w ciągu 30 sekund albo szersza weryfikacja przez strumień zdarzeń (Twitter/Discord Polymarket, kanał nagłówków Bloomberga). Po wykryciu maker wycofuje wszystkie kwotowania na 60-120 sekund, pozwala nowej cenie środkowej się ustabilizować, a następnie ponownie kwotuje wokół nowego centrum.

Najprostsza implementacja obserwuje strumień ceny ostatniej transakcji dla tokena. Skok większy niż 2 odchylenia standardowe od średniej z okna kroczącego uruchamia pauzę. Bot wznawia działanie, gdy cena ustabilizuje się przez 30+ sekund.

Zatrzymywanie bota, gdy rośnie niekorzystna selekcja

Twarde wyjście. Jeśli wynik z ostatnich 50 realizacji bota staje się wyraźnie ujemny, coś jest nie tak: albo rynek jest teraz napędzany newsami i nie powinieneś prowadzić animacji, albo twój spread jest ustawiony zbyt ciasno względem obecnego poziomu niekorzystnej selekcji.

Warunki zatrzymania do zakodowania:

  • 5 kolejnych realizacji na ofercie kupna bez żadnej realizacji na ofercie sprzedaży, a cena środkowa spadła o > 1 cent od pierwszej realizacji.
  • Zrealizowany wynik z ostatnich 25 obrotów w obie strony poniżej -25% oczekiwanego.
  • Rozłączenie WebSocket lub wykrycie przestarzałego arkusza.
  • Zapas na limicie po którejkolwiek stronie przez > 5 minut.

Gdy zostanie uruchomiony, anuluj wszystko, wyczyść zapas zleceniem rynkowym, zatrzymaj na 15+ minut. Animator rynku bez wyłącznika awaryjnego będzie tracił pieniądze w okresach zmienności, aż trader zauważy to ręcznie - a to zawsze trwa dłużej, niż myślisz.

Często zadawane pytania

Czy detaliczny bot naprawdę może zarabiać na animacji rynku na Polymarket?
Czasami, na wybranych rynkach. Rabat makera (20-25% opłat takera) plus spread 1-3 centy na jeden obrót w obie strony mogą złożyć się na realny zwrot. Ale na Polymarket napływ newsów może przesunąć rynek o 20+ centów w kilka sekund - animator rynku bez szybkiego kanału newsów zostaje niekorzystnie wyselekcjonowany. Najlepsze są płynne rynki sportowe przed meczem i w okresach niskiego natężenia newsów.
Jak szeroko powinienem kwotować na Polymarket?
Co najmniej na tyle, ile potrzebujesz, by pokryć najgorszą oczekiwaną niekorzystną selekcję. Dla płynnych rynków sportowych/politycznych: 1-3 centy na stronę od ceny środkowej. Dla cienkich rynków: 5+ centów. Jeśli nie możesz kwotować wystarczająco ciasno, by konkurować z innymi makerami, a jednocześnie szeroko, by przetrwać ruchy, ten rynek nie nadaje się dla ciebie do animacji.
Jakie limity zapasu powinienem ustawić?
Twardy limit zapasu na rynku 50-200 USD, dopóki nie udowodnisz rentowności przez miesiące. Przechylaj kwotowania tak, aby zapas dążył do neutralnego poziomu - jeśli akumulujesz YES, obniż swoją ofertę kupna YES i obniż swoją ofertę sprzedaży NO, aby zachęcić do kupna NO z powrotem. Nigdy nie pozwól, by jeden rynek trzymał 20%+ twojego bankrolla.
Czy potrzebuję szybkiego VPS, aby animować rynek na Polymarket?
Tak. Animacja rynku to strategia Polymarket najbardziej wrażliwa na latencję. Drżący VPS daje przestarzałe kwotowania, które zostają wyłapane. Używamy TradingVPS dla naszych botów animujących właśnie dlatego, że jitter jest tam konsekwentnie niski. Standardowa chmura (DO/Vultr) działa do treningowej animacji, ale nie na żywo.
Czym animacja rynku na Polymarket różni się od animacji krypto?
Dwie duże różnice: (1) Polymarket ma twarde wydarzenia rozstrzygające (news, finały sportowe), które mogą przesunąć cenę o 30-100 centów natychmiast - znacznie gwałtowniej niż krypto. (2) Rynki Polymarket ostatecznie się rozliczają, więc w przeciwieństwie do par krypto pozycje makera mają twarde wygaśnięcie. Obie rzeczy pchają cię w stronę krótszego trzymania i ciaśniejszych limitów ryzyka.
Czy mogę animować 5-minutowe rynki krypto na Polymarket?
Możliwe, ale bardzo trudne. 5-minutowe rynki mają ~288 wygaśnięć dziennie na parę, są zdominowane przez szybsze boty i mają ciaśniejsze spready. Większość detalicznych botów animujących traci tam pieniądze przez niekorzystną selekcję. Strategię 5-minutowego krypto omawiamy poprawnie w rozdziale 23 tej serii.