Polymarket Bot Tutorial · Sura ya 22 kati ya 32

NegRisk multi-outcome bots kwenye Polymarket: sum-to-1 mechanics, leg arbitrage wakati YES legs hazijumlika kwa 1, kuhedge katika legs, na execution pitfalls maalum kwa multi-outcome markets.

Sura hii inafunika nini

Multi-outcome NegRisk markets ni mutually exclusive - exactly moja inaresolve YES. Sura hii ni strategy layer juu ya execution mechanics ya sura ya 11: jinsi ya kuhedge katika legs, wakati sum-to-1 arb ni real, na bugs nyingi NegRisk bots zinahit kwenye first deploy.

  • NegRisk vs binary recap
  • Sum-to-1 invariant na arbitrage
  • Leg-by-leg hedge construction
  • Execution: neg_risk flag katika orders
  • Common bugs katika NegRisk bots
  • Code: snapshot legs zote na detect under-1.00 sum

NegRisk vs binary recap

Binary: yes/no market moja, tokens mbili, sum kwa 1.0. NegRisk: N mutually exclusive outcomes, N tokens, YES legs zote zinajumlika hadi ~1.0 katika event.

Execution-wise, NegRisk inahitaji negRisk: true kwenye kila order (sura ya 11) na inaroute kupitia separate exchange contract. Strategy-wise, NegRisk inatoa opportunities mbili unique ambazo binaries hazitoi: cross-leg arb wakati sum inadrift away kutoka 1.0, na hedge construction kwa kununua YES legs nyingi.

Costs unique kwa NegRisk: legs zaidi = spread tax zaidi (kila leg unayotrade inacost ~0.5-1c spread), wider sum-to-1 deviations kwenye illiquid events (arb iko available mara nyingi zaidi lakini ndogo).

Sum-to-1 invariant na arbitrage

Arb premise: ikiwa kununua YES legs zote N kunacost chini ya $1.00, umeilock guaranteed profit kwenye resolution (leg moja lazima ilipe $1.00; nyingine zinaenda kwa $0).

Kivitendo, arb gap kawaida ni 0-3c, inaliwa na spread + fees kwenye kila leg, na inadisappear ndani ya dakika za opening. Capacity inalimited na thinnest leg liquidity.

Arb pia iko subject kwa specific resolution failure modes: "none of the above" outcome inayoresolve YES explicitly wakati hakuna named candidate inaqualify. Ikiwa event ina leg kama hiyo na hukununua, "complete hedge" yako inakosa actual payout.

Leg-by-leg hedge construction

Kushikilia position kwenye NegRisk leg moja, unaweza kuhedge kwa kununua YES kwenye competing legs proportionally. Ikiwa unashikilia Trump-YES kwa 0.50 na unataka kuhedge dhidi ya Trump loss, unanunua portfolio ya named legs nyingine.

Hedge weight per leg ≈ implied probability ya sasa ya leg conditional kwa Trump kupoteza. Approximation: weight_i = price_i / (1 - trump_price).

Hedge ni imperfect kwa sababu prices zinazotumiwa ni point-in-time na conditional probabilities zinashift kadiri news inavyofika. Rebalance hedge weekly au kwenye major news. Usimuengineer; kusudi la hedge ni kupunguza variance, sio kuieliminate.

Execution: neg_risk flag katika orders

NegRisk-specific bug ya kawaida zaidi: kusahau negRisk: true katika order placement payload. Order inakubaliwa na API lakini inasettle incorrectly kwa sababu inaroute kwa standard CTF exchange badala ya NegRisk exchange.

// CORRECT for NegRisk markets:
await client.createAndPostOrder(
  { tokenID, price, size, side: Side.BUY },
  { tickSize: '0.01', negRisk: true },   // <-- REQUIRED
  OrderType.FOK
);

Source of truth: market.negRisk kutoka Gamma API. Soma; pasi. Kamwe usihardcode flag based on guessing.

Common bugs katika NegRisk bots

Kutoka production debug logs katika bots wengi.

  1. Missing negRisk flag: orders zinakubaliwa, settlement inashindwa. Cure: enforce flag katika kila wrapper.
  2. Kuhedge bila "Other" leg: katika events na "None of the above" outcome, hedge portfolio inayoiexclude ni incomplete. Cure: daima check kwa Other leg unapojenga hedges.
  3. Sum-to-1 arb under-sizing: arber inarealize 1c edge lakini inatrade shares 5 per leg; total profit ni 5 cents kabla ya spread, negative net. Cure: size arb kuextract meaningful absolute dollars, sio kuchase headline percentages.
  4. Stale leg pricing: bot inafetch leg prices 3, inachukua 200ms jumla, price ya last leg ilibadilika wakati wa fetch. Cure: fetch legs zote katika parallel + treat snapshot kama observation moja.

Code: snapshot legs zote na detect under-1.00 sum

Reference: snapshot YES legs zote za NegRisk event katika parallel, detect arb.

import asyncio, aiohttp

async def fetch_leg_ask(session, token_id):
    async with session.get(f"https://clob.polymarket.com/book?token_id={token_id}") as r:
        d = await r.json()
        asks = d.get("asks", [])
        return float(asks[0]["price"]) if asks else None

async def check_arb(event_slug):
    event = await fetch_event(event_slug)
    if not event["markets"][0]["negRisk"]: return None
    legs = []
    for m in event["markets"]:
        toks = json.loads(m["clobTokenIds"])
        yes_token = toks[0]
        legs.append(yes_token)

    async with aiohttp.ClientSession() as s:
        asks = await asyncio.gather(*[fetch_leg_ask(s, t) for t in legs])
    if any(a is None for a in asks): return None
    total = sum(asks)
    if total < 0.97:
        return {"edge": 1 - total, "legs": list(zip(legs, asks))}
    return None

Atomic execution ya legs zote ni harder problem na inahitaji per-leg FOK + rollback kwenye partial fill (similar pattern kwa stat-arb code ya sura ya 16).

Maswali yanayoulizwa mara kwa mara

Ni nini sum-to-1 invariant katika NegRisk markets?
Katika YES legs zote za NegRisk multi-outcome market, sum ya YES prices inakaa karibu na 1 USD kwa sababu outcome moja exactly inashinda. Ikiwa sum inadrop chini ya 1.00 net ya fees, kununua kila leg proportionally kunalock arbitrage profit. Arb ni rare na inasnipped haraka - treat kama curiosity, sio primary strategy.
Je, NegRisk pricing ni tofauti vipi na binary?
Binary: YES price ni direct probability estimate yako. NegRisk: YES price kwa leg moja ni probability ya outcome hiyo specific kushinda katika N alternatives. Kadiri N inavyokua, individual prices zinashrink (probabilities zinajumlika kwa 1). Kutrade NegRisk inahitaji kufikiri katika relative probabilities, sio absolute Yes/No.
Ni nini bug ya kawaida zaidi ya NegRisk bot?
Kusahau neg_risk: true flag katika order placement. Order ofuli inarejected au inaroute kwa wrong CTF position. Tulihit hii katika production - commit 06deaef katika trader history yetu ilikuwa specifically fix. Daima weka neg_risk=true (Python) au negRisk: true (Node) kwenye NegRisk orders.
Je, ninaweza kupata pesa kwenye NegRisk kwa kuhedge legs?
Katika theory ndio (lock spread kati ya legs mbili). Kivitendo fees zinakula hedge edge kwa retail bots wengi. Kuhedge inafanya kazi kwa kuweka inventory neutral wakati wa market making, sio kama standalone strategy.
Ninawezaje kupata NegRisk markets?
Filter gamma /events kwa events na markets count > 2 na negRisk flag set. Common categories: championship winners (NBA Finals MVP), election fields (next Speaker), tournament brackets. Kila gamma event inajumuisha child markets array yake.
Je, NegRisk markets ni more au less liquid kuliko binary?
Less per leg, more in aggregate. 30-team NBA Champion event inaweza kuwa na 50K total 24h volume lakini kila team market ina tu 1.6K - kufanya per-leg trading harder. Aggregate liquidity ni real, fragmented tu.