Polymarket Bot Tutorial · Sura ya 13 kati ya 32
Market making kwenye Polymarket: jinsi ya kuquote bid na ask, kucapture spread, kupata maker rebates (20-25% ya taker fees), inventory risk math, na wakati MM inafanya kazi kwenye prediction markets.
Sura hii inafunika nini
Market making kwenye Polymarket inamaanisha kuquote pande zote mbili za market book continuously na kupata spread kwenye kila round trip. Strategy imeeleweka vizuri katika traditional finance; Polymarket-specific wrinkles ni maker-rebate program na adverse-selection profile ya prediction markets, ambayo ni juu zaidi kuliko CFD venues. Sura hii ni math ya kweli.
- Market making kwa Kiswahili rahisi
- Spread + rebate edge
- Inventory risk na skew
- Wakati MM inafanya kazi kwenye Polymarket (na wakati haifanyi)
- Code skeleton: quote pande zote kwa +/- N cents
- Kuadjust quotes kwenye news flow
- Kuiua bot wakati adverse selection inaspike
Market making kwa Kiswahili rahisi
Market maker daima inaquote buy price (bid) na sell price (ask), pana kuliko mid kwa fixed spread. Wakati mtu anahit bid maker ananunua bei nafuu; wakati mtu analift ask maker anauza ghali; tofauti kati ya bid na ask ni revenue ya maker per round trip.
Strategy ni order-flow-driven, sio directional. Maker hachukui maoni kama YES itashinda; anachukua position kwamba flow itaendelea na spread itaendelea kulipwa.
Risk ni adverse selection: watu wanaohit bid yako wana information uliyopelekwa. Kwa muda, MM profits zinategemea kama spread iko pana ya kutosha kufunika slippage kutoka kwa informed traders.
Spread + rebate edge
Revenue streams mbili kwa Polymarket maker.
Spread capture: quote bid 0.45 na ask 0.47 karibu na mid 0.46. Kila fill kwenye bid unayoweza baadaye kuexit kwenye ask inapata cents 2. Net edge inategemea fill imbalance na price drift.
Maker rebate: liquidity-rewards program ya Polymarket inalipa per-share rebate kwenye maker fills katika eligible markets. Numbers zinahama; check rewards page rasmi kwa current values. Rebate inalipwa katika pUSD periodically, tofauti na trade yenyewe.
Kwa markets nyingi, spread capture ni revenue stream kubwa zaidi. Rebate ni meaningful unapoweza kuquote wide markets (election year, major sports playoffs) ambapo Polymarket inaboost rebates kuvuta liquidity.
Inventory risk na skew
MM inayohit-ed repeatedly kwenye bid inaaccumulate long position. Risk ni kwamba mid inadrop wakati inventory iko long; maker anarealize loss kwenye position hata baada ya spread revenue.
Defenses: quote skew (sogeza bid chini wakati inventory iko long, ask juu wakati short, kudiscourage one-sided fills); inventory cap (acha kuquote upande ambapo tayari uko long sana); active rebalancing (mara kwa mara cross spread kupunguza position wakati inventory iko kwenye limit).
Math: ikiwa 60% ya fills kwenye bid hazitoki kabla price ihame 2 cents adverse, strategy inapoteza pesa kwenye fills hizo peke yake. Skew aggressively wakati fill imbalance > 65/35.
Wakati MM inafanya kazi kwenye Polymarket (na wakati haifanyi)
MM inafanya kazi kwenye Polymarket wakati conditions tatu zinashikilia.
- Liquid book: quote competition ya kutosha kwamba spread yako ni competitive lakini sio sifuri. 2024 election markets, major NFL/NBA games, BTC up/down 5m zote zinaqualify.
- Two-sided flow: buyers na sellers wote active. One-sided markets (resolved-ish kwa 0.95+) hazina kitu kwa maker kucapture.
- Bounded price moves: spread captures zinaliwa na 5-cent jumps. Stable mid-range markets (0.40-0.60) ni friendliest.
MM inashindwa kwenye: news-driven markets ambapo mid inajump haraka kuliko unavyoweza ku-re-quote; illiquid books ambapo wewe ndiye quote pekee na next trade inawalk levels 5; resolution-imminent markets ambapo upande mmoja unaconverge kwa 0 au 1.
Code skeleton: quote pande zote kwa +/- N cents
Pseudocode kwa simplest 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)
Production makers wanaongeza: per-side inventory tracking, cancel-before-place ordering, jitter kwenye re-quote interval kuepuka kuwa predictable, kill-switch kwenye adverse selection (next section).
Kuadjust quotes kwenye news flow
Wakati news event inahit, fair value inahama kabla quotes zako. MM ambayo haipull quotes wakati wa news flow inapickedmazoea-off.
Signal: cancel rate ya incoming fills kuruka juu ya ~3x baseline ndani ya sekunde 30, au wider event-stream cross-check (Polymarket Twitter/Discord, Bloomberg headline feed). Inapogunduliwa, maker anapull quotes zote kwa sekunde 60-120, anaruhusu new mid istabilize, kisha kure-quote karibu na new center.
Simplest implementation inangalia last-trade-price stream kwa token. Jump ya zaidi ya 2 standard deviations kutoka rolling-window mean inatrigger pause. Bot inare-engage wakati price imestabilize kwa sekunde 30+.
Kuiua bot wakati adverse selection inaspike
Hard exit. Ikiwa fill PnL ya bot kwenye fills za mwisho 50 inageuka sharply negative, kuna kitu kibaya: ofuli market sasa ni news-driven na hupaswi kufanya making, au spread yako imewekwa tight sana kwa current adverse-selection level.
Kill conditions za ku-encode:
- 5 consecutive bid fills bila ask fill, mid down > 1c tangu first fill.
- Realized PnL kwenye round-trip fills 25 za mwisho chini ya -25% ya expected.
- WebSocket disconnect au stale book detected.
- Inventory kwenye cap upande wowote kwa > dakika 5.
Inapotriggered, cancel kila kitu, flatten inventory kwenye market, halt kwa dakika 15+. Market maker isiyo na kill switch itapoteza pesa wakati wa volatile periods hadi trader aigundue kwa mkono - ambayo daima inachukua muda mrefu zaidi ya unavyofikiri.





