Polymarket Bot Tutorial · Kabanata 13 ng 32
Market making sa Polymarket: paano mag-quote ng bid at ask, makuha ang spread, kumita ng maker rebates (20-25% ng taker fees), inventory risk math, at kailan gumagana ang MM sa prediction markets.
Ano ang sinasaklaw ng kabanatang ito
Ang market making sa Polymarket ay nangangahulugang patuloy na pag-quote ng dalawang panig ng market book at pagkita ng spread sa bawat round trip. Ang strategy ay well-understood sa traditional finance; ang Polymarket-specific na nuances ay ang maker-rebate program at ang adverse-selection profile ng prediction markets, na mas mataas kaysa sa CFD venues. Ang kabanatang ito ay ang honest math.
- Market making sa simpleng salita
- Ang spread + rebate edge
- Inventory risk at skew
- Kailan gumagana ang MM sa Polymarket (at kailan hindi)
- Code skeleton: i-quote ang parehong panig sa +/- N cents
- Pag-aayos ng quotes sa news flow
- Pagpatay sa bot kapag tumalon ang adverse selection
Market making sa simpleng salita
Ang market maker ay patuloy na nag-quote ng parehong buy price (bid) at sell price (ask), mas malawak kaysa sa mid sa pamamagitan ng fixed spread. Kapag may tumama sa bid, bumibili ang maker nang mura; kapag may nag-lift sa ask, nagbebenta ang maker nang mahal; ang pagkakaiba sa pagitan ng bid at ask ay revenue ng maker bawat round trip.
Ang strategy ay order-flow-driven, hindi directional. Ang maker ay walang opinyon sa kung mananalo ang YES; kumukuha sila ng position na magpapatuloy ang flow at ang spread ay patuloy na babayaran.
Ang panganib ay adverse selection: ang mga taong tumatama sa iyong bid ay may impormasyong wala ka. Sa paglipas ng panahon, ang MM profits ay nakadepende kung sapat ba ang lapad ng spread upang masakop ang slippage mula sa informed traders.
Ang spread + rebate edge
Dalawang revenue streams para sa Polymarket maker.
Spread capture: i-quote ang bid 0.45 at ask 0.47 sa paligid ng 0.46 mid. Bawat fill sa bid na maaari mong lumabas mamaya sa ask ay kumikita ng 2 cents. Ang net edge ay nakadepende sa fill imbalance at price drift.
Maker rebate: ang liquidity-rewards program ng Polymarket ay nagbabayad ng per-share rebate sa maker fills sa eligible markets. Ang mga numero ay nagbabago; tingnan ang opisyal na rewards page para sa kasalukuyang values. Ang rebate ay binabayaran sa pUSD nang pana-panahon, hiwalay sa trade mismo.
Para sa karamihan ng markets, ang spread capture ay mas malaking revenue stream. Ang rebate ay makabuluhan kapag kaya mong i-quote ang wide markets (election year, major sports playoffs) kung saan ang Polymarket ay nag-boost ng rebates upang maakit ang liquidity.
Inventory risk at skew
Ang MM na paulit-ulit na tinatamaan sa bid ay nag-iipon ng long position. Ang panganib ay bababa ang mid habang ang inventory ay long; isasakatuparan ng maker ang loss sa position kahit pagkatapos ng spread revenue.
Defenses: quote skew (ilipat ang bid nang mas mababa kapag long ang inventory, ask nang mas mataas kapag short, upang pigilan ang one-sided fills); inventory cap (huminto sa pag-quote sa panig kung saan masyado ka nang long); active rebalancing (paminsan-minsan tumawid sa spread upang bawasan ang position kapag ang inventory ay nasa limit).
Ang math: kung 60% ng fills sa bid ay hindi kailanman lumalabas bago lumipat ang presyo 2 cents adverse, ang strategy ay nawawalan ng pera sa mga fill na iyon lamang. Mag-skew nang agresibo kapag ang fill imbalance > 65/35.
Kailan gumagana ang MM sa Polymarket (at kailan hindi)
Gumagana ang MM sa Polymarket kapag may tatlong conditions.
- Liquid book: sapat na quote competition para ang iyong spread ay competitive ngunit hindi zero. Ang 2024 election markets, major NFL/NBA games, BTC up/down 5m ay lahat qualify.
- Two-sided flow: parehong mga buyer at seller active. One-sided markets (resolved-ish sa 0.95+) ay walang makukuha ang maker.
- Bounded price moves: ang spread captures ay kinakain ng 5-cent jumps. Stable mid-range markets (0.40-0.60) ay pinakapalakaibigan.
Ang MM ay nabibigo sa: news-driven markets kung saan ang mid ay tumatalon nang mas mabilis kaysa sa kakayahan mong mag-requote; illiquid books kung saan ikaw lang ang quote at ang susunod na trade ay tumatakbo ng 5 levels; resolution-imminent markets kung saan ang isang panig ay nag-converge sa 0 o 1.
Code skeleton: i-quote ang parehong panig sa +/- N cents
Pseudocode para sa pinakasimpleng viable 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)
Ang production makers ay nagdadagdag ng: per-side inventory tracking, cancel-before-place ordering, jitter sa re-quote interval upang maiwasan ang pagiging predictable, kill-switch sa adverse selection (susunod na seksyon).
Pag-aayos ng quotes sa news flow
Kapag tumama ang news event, ang fair value ay gumagalaw bago ang iyong quotes. Ang MM na hindi nag-pull ng quotes sa news flow ay napupuli.
Ang signal: ang cancel rate ng incoming fills na tumatalon sa itaas ng ~3x baseline sa loob ng 30 segundo, o mas malawak na event-stream cross-check (Polymarket Twitter/Discord, Bloomberg headline feed). Kapag na-detect, hihilain ng maker ang lahat ng quotes sa loob ng 60-120 segundo, hahayaan ang bagong mid na mag-stabilize, pagkatapos i-requote sa paligid ng bagong center.
Ang pinakasimpleng implementation ay nanonood sa last-trade-price stream para sa token. Ang jump na higit sa 2 standard deviations mula sa rolling-window mean ay nag-trigger ng pause. Ang bot ay muling magre-engage kapag ang presyo ay nag-stabilize sa loob ng 30+ segundo.
Pagpatay sa bot kapag tumalon ang adverse selection
Ang hard exit. Kung ang fill PnL ng bot sa nakaraang 50 fills ay matalim na naging negative, may mali: alinman ang market ngayon ay news-driven at hindi ka dapat gumawa, o ang iyong spread ay masyadong tight para sa kasalukuyang adverse-selection level.
Kill conditions na i-encode:
- 5 magkakasunod na bid fills nang walang ask fill, mid bumaba > 1c mula sa unang fill.
- Realized PnL sa nakaraang 25 round-trip fills sa ibaba ng -25% ng inaasahan.
- WebSocket disconnect o stale book detected.
- Inventory sa cap sa alinmang panig nang > 5 minuto.
Kapag na-trigger, kanselahin ang lahat, i-flatten ang inventory sa market, mag-halt nang 15+ minuto. Ang market maker na walang kill switch ay mawawalan ng pera sa volatile periods hanggang sa mapansin ng trader nang manu-mano - na palaging tumatagal nang mas matagal kaysa sa iniisip mo.





