Polymarket Bot Tutorial · Rozdział 13 z 32

Market making na Polymarket: jak kwotować bid i ask, przechwytywać spread, zarabiać maker rebates (20-25% taker fees), matematyka inventory risk oraz kiedy MM działa na prediction markets.

Co obejmuje ten rozdział

Market making na Polymarket oznacza ciągłe kwotowanie obu stron książki zleceń i zarabianie na spreadzie przy każdym round trip. Strategia jest dobrze znana w tradycyjnych finansach; specyficzne dla Polymarket są program maker rebate oraz profil adverse selection na prediction markets, który jest wyższy niż na platformach CFD. Ten rozdział to uczciwa matematyka.

To jest rozdział 13 z naszej 32-częściowej serii o budowie Polymarket trading bot. Omawiamy temat szczegółowo w sekcjach poniżej. Treści dla każdej sekcji są pisane i publikowane rozdział po rozdziale; odpowiedzi FAQ i referencje są już kompletne i odzwierciedlają doświadczenie produkcyjne z działania naszego własnego tradera.

  • Market making prostym językiem
  • Przewaga ze spreadu + rebate
  • Inventory risk i skew
  • Kiedy MM działa na Polymarket (a kiedy nie]
  • Szkielet kodu: kwotuj obie strony o +/- N centów
  • Dostosowywanie kwotowań do news flow
  • Zatrzymywanie bota, gdy adverse selection rośnie

Market making prostym językiem

Market maker ciągle kwotuje zarówno cenę kupna (bid), jak i cenę sprzedaży (ask), szerzej niż mid o stały spread. Gdy ktoś uderza w bid, maker kupuje tanio; gdy ktoś podnosi ask, maker sprzedaje drogo; różnica między bid i ask to przychód makera z jednego round trip.

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

Ryzykiem jest adverse selection: osoby uderzające w twój bid mają informację, której ty nie masz. Z czasem zyski MM zależą od tego, czy spread jest wystarczająco szeroki, by pokryć slippage od świadomych traderów.

Przewaga ze spreadu + rebate

Dwa strumienie przychodu dla makera na Polymarket.

Przechwytywanie spreadu: kwotujesz bid 0.45 i ask 0.47 wokół mid 0.46. Każdy fill na bidzie, z którego później wyjdziesz na asku, zarabia 2 centy. Wynik netto zależy od nierównowagi filli i ruchu ceny.

Maker rebate: program liquidity rewards Polymarket wypłaca rebate per share za maker fills na kwalifikujących się rynkach. Wartości się zmieniają; sprawdź oficjalną stronę rewards, aby poznać aktualne stawki. Rebate jest wypłacany w pUSD okresowo, niezależnie od samego trade'u.

W większości rynków większym źródłem przychodu jest przechwytywanie spreadu. Rebate ma znaczenie wtedy, gdy możesz kwotować szerokie rynki (rok wyborczy, główne playoffy sportowe), gdzie Polymarket podbija rebate, aby przyciągnąć liquidity.

Inventory risk i skew

MM, który jest wielokrotnie uderzany na bidzie, akumuluje long position. Ryzyko polega na tym, że mid spadnie, gdy inventory jest long; maker realizuje stratę na pozycji, nawet po uwzględnieniu przychodu ze spreadu.

Obrony: quote skew (obniż bid, gdy inventory jest long, podnieś ask, gdy jesteś short, aby zniechęcić do jednostronnych filli); inventory cap (przestań kwotować po stronie, po której jesteś już zbyt long); active rebalancing (czasem crossing spread, aby zmniejszyć pozycję, gdy inventory osiąga limit).

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

Kiedy MM działa na Polymarket (a kiedy nie]

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

  • Płynna książka: wystarczająca konkurencja kwotowań, by twój spread był konkurencyjny, ale nie zerowy. Rynki wyborcze 2024, główne mecze NFL/NBA, BTC up/down 5m — wszystkie się kwalifikują.
  • Dwustronny flow: aktywni są zarówno kupujący, jak i sprzedający. Jednostronne rynki (resolved-ish 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.

MM zawodzi na rynkach napędzanych newsami, gdzie mid skacze szybciej, niż możesz złożyć nowe kwotowania; na niepłynnych książkach, gdzie jesteś jedynym kwotującym i kolejny trade 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

Pseudocode 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)

Production makers dodają: tracking inventory per side, kolejność cancel-before-place, jitter na interwale re-quote, aby nie być przewidywalnym, kill-switch przy adverse selection (następna sekcja).

Dostosowywanie kwotowań do news flow

Gdy uderza news event, fair value przesuwa się, zanim twoje kwotowania zdążą się dostosować. MM, który nie wycofuje kwotowań podczas news flow, zostaje picked off.

Sygnał: rate cancel incoming fills skacze powyżej ~3x baseline w ciągu 30 sekund albo szersza weryfikacja przez event stream (Polymarket Twitter/Discord, Bloomberg headline feed). Po wykryciu maker wycofuje wszystkie kwotowania na 60-120 sekund, pozwala nowemu mid się ustabilizować, a następnie ponownie kwotuje wokół nowego centrum.

Najprostsza implementacja obserwuje stream last-trade-price dla tokena. Skok większy niż 2 standard deviations od średniej z rolling window uruchamia pauzę. Bot wznawia działanie, gdy cena ustabilizuje się przez 30+ sekund.

Zatrzymywanie bota, gdy adverse selection rośnie

Twarde wyjście. Jeśli PnL filli bota z ostatnich 50 filli staje się wyraźnie ujemny, coś jest nie tak: albo rynek jest teraz napędzany newsami i nie powinieneś robić market makingu, albo twój spread jest ustawiony zbyt ciasno względem obecnego poziomu adverse selection.

Warunki zatrzymania do zakodowania:

  • 5 kolejnych bid fills bez żadnego ask fill, a mid spadł o > 1c od pierwszego filla.
  • Realized PnL z ostatnich 25 round-trip fills poniżej -25% oczekiwanego.
  • Rozłączenie WebSocket lub wykrycie stale book.
  • Inventory na limicie po którejkolwiek stronie przez > 5 minut.

Gdy zostanie uruchomiony, anuluj wszystko, wyczyść inventory po market, zatrzymaj na 15+ minut. Market maker bez kill switcha 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 retail bot naprawdę może zarabiać na market makingu na Polymarket?
Czasami, na wybranych rynkach. Maker rebate (20-25% taker fees) plus spread 1-3 centy na jeden round trip mogą złożyć się na realny zwrot. Ale na Polymarket news flow może przesunąć rynek o 20+ centów w kilka sekund — market maker bez szybkiego news feedu zostaje adversely selected. 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ć najgorsze oczekiwane adverse-selection. Dla płynnych rynków sportowych/politycznych: 1-3 centy na stronę od mid. Dla cienkich rynków: 5+ centów. Jeśli nie możesz kwotować wystarczająco ciasno, by konkurować z innymi makerami, ale jednocześnie szeroko, by przetrwać ruchy, ten rynek nie jest dla ciebie market-makeable.
Jakie limity inventory powinienem ustawić?
Twardy limit inventory na rynku 50-200 USD, dopóki nie udowodnisz rentowności przez miesiące. Skewuj kwotowania tak, aby inventory dążyło do neutralnego poziomu — jeśli akumulujesz Yes, obniż swój Yes bid i obniż swój No ask, aby zachęcić do kupna No z powrotem. Nigdy nie pozwól, by jeden rynek trzymał 20%+ twojego bankrolla.
Czy potrzebuję szybkiego VPS, aby market-make'ować Polymarket?
Tak. Market making to strategia Polymarket najbardziej wrażliwa na latency. Drżący VPS daje stale quotes, które zostają picked off. Używamy TradingVPS dla naszych MM botów właśnie dlatego, że jitter jest tam konsekwentnie niski. Commodity cloud (DO/Vultr) działa do paper trading MM, ale nie live.
Czym Polymarket MM różni się od crypto MM?
Dwie duże różnice: (1) Polymarket ma twarde wydarzenia outcome (news, sportowe finały), które mogą przesunąć cenę o 30-100 centów natychmiast — znacznie gwałtowniej niż crypto. (2) Rynki Polymarket ostatecznie się rozliczają, więc w przeciwieństwie do par crypto pozycje MM mają twarde expiration. Obie rzeczy pchają cię w stronę krótszych holdów i ciaśniejszych limitów ryzyka.
Czy mogę market-make'ować 5-minute crypto markets na Polymarket?
Możliwe, ale bardzo trudne. 5-minute markets mają ~288 expiration dziennie na parę, są zdominowane przez szybsze boty i mają ciaśniejsze spready. Większość retail MM botów traci tam pieniądze przez adverse selection. Strategię 5-minute crypto omawiamy poprawnie w rozdziale 23 tej serii.