Polymarket Bot Tutorial · Hoofdstuk 13 van 32

Market making op Polymarket: hoe bid en ask te quoten, de spread vangen, maker rebates verdienen (20-25% van taker fees), inventory-risico math en wanneer MM werkt op prediction markten.

Wat dit hoofdstuk behandelt

Market making op Polymarket betekent continu beide zijden van een markt-book quoten en de spread verdienen op elke round trip. De strategie is goed begrepen in traditionele finance; de Polymarket-specifieke wrinkles zijn het maker-rebate programma en het adverse-selection profiel van prediction markten, dat hoger is dan CFD-venues. Dit hoofdstuk is de eerlijke math.

Dit is hoofdstuk 13 van onze 32-delige serie over het bouwen van een Polymarket trading bot. We behandelen het onderwerp in detail in de secties hieronder. De body content voor elke sectie wordt geschreven en hoofdstuk-per-hoofdstuk uitgerold; FAQ-antwoorden en referenties zijn al compleet en weerspiegelen production-ervaring van het draaien van onze eigen trader.

  • Market making in gewoon Nederlands
  • De spread + rebate edge
  • Inventory-risico en skew
  • Wanneer MM werkt op Polymarket (en wanneer niet)
  • Code skeleton: quote beide zijden op +/- N cent
  • Quotes aanpassen op news flow
  • De bot killen wanneer adverse selection spike't

Market making in gewoon Nederlands

Een market maker quote continu een koopprijs (bid) en een verkoopprijs (ask), breder dan de mid met een vaste spread. Wanneer iemand de bid raakt koopt de maker goedkoop; wanneer iemand de ask lift verkoopt de maker duur; het verschil tussen bid en ask is de maker's omzet per round trip.

De strategie is order-flow-driven, niet direction. De maker heeft geen mening over of YES wint; ze nemen de positie dat flow blijft komen en de spread blijft worden betaald.

Het risico is adverse selection: de mensen die je bid raken hebben informatie die jij niet hebt. Op lange termijn hangen MM-winsten af van of de spread breed genoeg is om de slippage van informed traders te dekken.

De spread + rebate edge

Twee revenue-streams voor een Polymarket maker.

Spread capture: quote bid 0,45 en ask 0,47 rond een 0,46 mid. Elke fill op de bid die je later kunt exiten op de ask verdient 2 cent. Netto edge hangt af van fill-imbalance en prijsdrift.

Maker rebate: Polymarkets liquidity-rewards programma betaalt een per-share rebate op maker fills in eligible markten. Cijfers schuiven; check de officiële rewards-pagina voor huidige waarden. Rebate wordt betaald in pUSD periodiek, gescheiden van de trade zelf.

Voor de meeste markten is spread capture de grotere revenue-stream. De rebate is betekenisvol wanneer je brede markten kunt quoten (verkiezingsjaar, grote sport-playoffs) waar Polymarket rebates boost om liquiditeit aan te trekken.

Inventory-risico en skew

Een MM die herhaaldelijk wordt geraakt op de bid accumuleert een long positie. Het risico is dat de mid daalt terwijl inventory long is; de maker realiseert een verlies op de positie zelfs na de spread-omzet.

Verdedigingen: quote skew (verlaag de bid wanneer inventory long is, verhoog de ask wanneer short, om one-sided fills te ontmoedigen); inventory cap (stop met quoten op de zijde waar je al te long bent); active rebalancing (cross occasioneel de spread om positie te verminderen wanneer inventory aan limit is).

De math: als 60% van de fills op de bid niet exiten voordat de prijs 2 cent adverse beweegt, verliest de strategie geld op die fills alleen. Skew aggressief wanneer fill-imbalance > 65/35.

Wanneer MM werkt op Polymarket (en wanneer niet)

MM werkt op Polymarket wanneer drie condities gelden.

  • Liquide book: genoeg quote-competitie dat je spread competitief is maar niet nul. De 2024-verkiezingsmarkten, grote NFL/NBA-wedstrijden, BTC up/down 5m kwalificeren allemaal.
  • Tweezijdige flow: zowel kopers als verkopers actief. One-sided markten (resolved-ish op 0,95+) hebben niets voor de maker om te vangen.
  • Begrensde prijsbewegingen: spread-captures worden opgegeten door 5-cent sprongen. Stabiele mid-range markten (0,40-0,60) zijn het vriendelijkst.

MM faalt op: news-driven markten waar mid sneller springt dan je kunt re-quoten; illiquide books waar je de enige quote bent en de volgende trade 5 levels wandelt; resolution-imminent markten waar één zijde convergeert naar 0 of 1.

Code skeleton: quote beide zijden op +/- N cent

Pseudo-code voor de eenvoudigste levensvatbare maker.

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)

Productie-makers voegen toe: per-zijde inventory tracking, cancel-before-place volgorde, jitter op het re-quote interval om niet voorspelbaar te zijn, kill-switch op adverse selection (volgende sectie).

Quotes aanpassen op news flow

Wanneer een news event toeslaat, beweegt de fair value voor je quotes. Een MM die geen quotes pull't tijdens news flow wordt opgepikt.

Het signaal: cancel-rate van inkomende fills springt boven ~3x baseline binnen 30 seconden, of een bredere event-stream cross-check (Polymarket Twitter/Discord, Bloomberg headline feed). Wanneer gedetecteerd, pullt de maker alle quotes voor 60-120 seconden, laat de nieuwe mid stabiliseren, dan re-quote rond het nieuwe centrum.

De eenvoudigste implementatie kijkt naar de last-trade-price stream voor de token. Een sprong van meer dan 2 standaarddeviaties van het rolling-window gemiddelde triggert een pauze. De bot her-engageert wanneer de prijs 30+ seconden stabiel is geweest.

De bot killen wanneer adverse selection spike't

De harde exit. Als de fill-PnL van de bot over de laatste 50 fills sterk negatief wordt, is er iets mis: ofwel is de markt nu news-driven en moet je niet maken, ofwel is je spread te strak ingesteld voor het huidige adverse-selection niveau.

Kill-condities om te coderen:

  • 5 opeenvolgende bid fills zonder ask fill, mid down > 1c sinds eerste fill.
  • Realized PnL op laatste 25 round-trip fills onder -25% van verwacht.
  • WebSocket disconnect of stale book gedetecteerd.
  • Inventory op cap aan een van beide zijden voor > 5 minuten.

Wanneer getriggerd, cancel alles, flatten inventory op market, halt voor 15+ minuten. Een market maker die geen kill switch heeft zal geld verliezen tijdens volatiele periodes totdat de trader het handmatig opmerkt — wat altijd langer duurt dan je denkt.

Veelgestelde vragen

Kan een retail bot echt geld verdienen met market-making op Polymarket?
Soms, in geselecteerde markten. De maker rebate (20-25% van taker fees) plus een 1-3 cent spread per round trip kan compounden naar een echte return. Maar op Polymarket kan news flow een markt 20+ cent in seconden bewegen — een market maker zonder snelle news feed wordt adverse selected. Het beste voor liquide sport-markten pre-game en tijdens low-news periodes.
Hoe breed moet ik quoten op Polymarket?
Minimaal de spread die je nodig hebt om de slechtste verwachte adverse-selection te dekken. Voor liquide sport/politiek: 1-3 cent per zijde off mid. Voor dunne markten: 5+ cent. Als je niet strak genoeg kunt quoten om te concurreren met andere makers maar breed genoeg om moves te overleven, is de markt niet market-makeable voor jou.
Welke inventory-limieten moet ik zetten?
Hard cap inventory per markt op 50-200 USD totdat je winstgevendheid hebt bewezen over maanden. Skew quotes om inventory naar neutraal te bewegen — als je Yes accumuleert, verlaag je Yes-bid en verlaag je No-ask om No-buys terug aan te moedigen. Laat een enkele markt nooit 20%+ van je bankroll houden.
Heb ik een snelle VPS nodig om Polymarket te market-maken?
Ja. Market making is de meest latency-gevoelige Polymarket-strategie. Een jittery VPS resulteert in stale quotes die opgepikt worden. We gebruiken TradingVPS voor onze MM-bots specifiek omdat de jitter consistent laag is. Commodity cloud (DO/Vultr) werkt voor paper trading MM maar niet live.
Hoe verschilt Polymarket MM van crypto MM?
Twee grote verschillen: (1) Polymarket heeft harde outcome events (nieuws, sport-finales) die de prijs 30-100 cent instantaan kunnen bewegen — veel scherper dan crypto. (2) Polymarket markten resolven uiteindelijk, dus in tegenstelling tot crypto-paren hebben MM-posities een harde expiratie. Beide duwen je naar kortere holds en strakkere risico-limieten.
Kan ik 5-minuten crypto markten market-maken op Polymarket?
Mogelijk maar zeer moeilijk. De 5-minuten markten zien ~288 expiraties per dag per paar, worden gedomineerd door snellere bots en hebben strakkere spreads. De meeste retail MM-bots verliezen daar geld aan adverse selection. We behandelen de 5-minuten crypto-strategie correct in hoofdstuk 23 van deze serie.