Polymarket Bot Tutorial · Capitolo 11 di 32

Come funzionano i mercati multi-outcome NegRisk su Polymarket: meccanica sum-to-1, il flag negRisk negli ordini CLOB, perché i YES leg su NegRisk non sono intercambiabili e le best practice di execution.

Cosa copre questo capitolo

I mercati NegRisk sono il meccanismo di Polymarket per eventi multi-outcome mutuamente esclusivi — i candidati delle elezioni 2024, il vincitore della Premier League, i tabelloni dei tornei. La maggior parte dei bot non li gestisce correttamente al primo tentativo perché il placement dell'ordine richiede un flag che, se mancante, viene scartato silenziosamente. Questo capitolo copre la meccanica e il production code path.

Questo è il capitolo 11 della nostra serie in 32 parti su come costruire un trading bot per Polymarket. Trattiamo l'argomento in profondità nelle sezioni qui sotto. I contenuti principali di ciascuna sezione vengono scritti e pubblicati capitolo per capitolo; le risposte FAQ e i riferimenti sono già completi e riflettono l'esperienza in produzione maturata gestendo il nostro trader.

  • Cosa significa NegRisk (YES leg mutuamente esclusivi]
  • Perché i totali YES restano vicini a 1 USD
  • Il parametro neg_risk nel placement degli ordini
  • Hedging tra i leg NegRisk
  • Quando l'arb NegRisk funziona (e quando no)
  • Casi limite di resolution
  • Code: piazzare un ordine NegRisk

Cosa significa NegRisk (YES leg mutuamente esclusivi]

NegRisk (abbreviazione di "negative risk") è il meccanismo di Polymarket per eventi con più outcome mutuamente esclusivi — solo uno può risolvere YES. Le elezioni presidenziali 2024 erano un evento con NegRisk: una posizione Trump-YES e una posizione Harris-YES non possono entrambe andare in payout.

Sotto il cofano: un singolo evento NegRisk ha un parent question_id e N mercati child, ciascuno con il proprio YES/NO. L'exchange applica il sum-to-1 tra i YES leg al momento della resolution — esattamente uno risolve a 1.0 e tutti gli altri a 0.0.

Dal punto di vista di un bot, il YES leg di ogni outcome viene scambiato come un token a sé stante, con il proprio book e il proprio prezzo. Il flag negRisk nel placement degli ordini (sotto) instrada il trade verso il contratto exchange specifico per NegRisk; se manca, l'ordine va al CTF exchange standard e non si settle correttamente, in modo silenzioso.

Perché i totali YES restano vicini a 1 USD

Gli arbitraggisti mantengono continuamente la somma dei prezzi YES su tutti i leg NegRisk a ≈ 1.0. Se Trump-YES è a 0.55 e Harris-YES è a 0.40 e non ci sono altri candidati competitivi, il 0.05 mancante è approssimativamente la probabilità implicita di "qualunque altro outcome". Quando la fetta mancante supera la probabilità implicita della coda, esiste un'opportunità di arb: comprare tutti i YES leg in proporzione, con somma inferiore a 1.0, e bloccare la differenza.

In pratica, l'arb è competitivo — lo sconto visibile è di solito 1-2 cent su eventi liquidi, e sparisce entro pochi minuti dall'apertura. L'arb è anche limitato dalla liquidità: puoi bloccare $1k di sconto ma non $20k.

La maggior parte dei bot non fa NegRisk arb; tradea singoli leg e deve rispettare il flag negRisk per un'execution corretta.

Il parametro neg_risk nel placement degli ordini

Negli SDK CLOB v2, il placement dell'ordine accetta un oggetto flags con un booleano negRisk. Il valore deve corrispondere al tipo di mercato:

// Node (CLOB v2)
await client.createAndPostOrder(
  { tokenID, price: 0.45, size: 10, side: Side.BUY },
  { tickSize: '0.01', negRisk: true },   // <-- TRUE for NegRisk
  OrderType.FOK
);

Il flag è anche un parametro nella signature dell'operazione daemon che la maggior parte dei bot in produzione utilizza:

{ op: 'buy', tokenID, price, size, neg_risk: true, order_type: 'FOK' }

Source of truth: market.negRisk dalla Gamma API. Leggilo sempre; non hardcodarlo mai. Un mercato BTC up/down è negRisk: false (binary); un mercato sul vincitore di un torneo è negRisk: true (multi-outcome). Invertire i cavi invia gli ordini all'exchange sbagliato e provoca fallimenti nel transfer al settlement.

Hedging tra i leg NegRisk

Se tieni Trump-YES a 0.50 e vuoi coprirti contro una sconfitta di Trump, all'interno di NegRisk esistono due opzioni.

Compra un NO leg concorrente (per esempio Harris-NO a 0.45). Paga se Harris perde, il che include la vittoria di Trump. Asimmetrico — payoff se Trump vince, ma inutile se Trump perde contro un terzo candidato.

Compra tutti i YES leg concorrenti in proporzione. Se il tuo portafoglio è perfettamente bilanciato tra i leg NegRisk, la tua esposizione è hedged: esattamente uno andrà in payout. Questa è la synthetic-cash position.

Lo strumento di hedging che non funziona come previsto: un NO leg sul mercato che già possiedi. Trump-NO è correlato agli altri YES leg, ma non in modo perfetto — se la resolution è "Other", sia il tuo Trump-YES sia il tuo Trump-NO vanno a 0. I leg NegRisk non sono binary puri.

Quando l'arb NegRisk funziona (e quando no)

L'arb NegRisk del tipo "somma inferiore a 1.0" funziona quando sono vere tre condizioni.

  1. Tutti i leg hanno liquidità: ogni leg che devi comprare ha almeno $1k di depth al prezzo che ti serve. L'arb richiede di colpire più book contemporaneamente; un leg illiquido rompe l'intero trade.
  2. Spread abbastanza stretto: il costo cumulativo di spread-tax su tutti i leg deve essere inferiore allo sconto. Cinque leg con spread da 0.5c ciascuno fanno 2.5c di costo; se lo sconto è 1.5c, l'arb è negativo.
  3. Puoi tenere fino alla resolution: l'arb NegRisk è settlement arb. Ricevi il payout quando si risolve l'evento parent; se è tra 6 mesi, il tuo capitale resta bloccato.

Per il 95% dei bot, l'arb NegRisk non è la strategia. Le strategie rimanenti tradeano singoli leg e il flag negRisk esiste solo per garantire che l'ordine venga instradato correttamente.

Casi limite di resolution

Due casi limite da tenere presenti quando si mantengono posizioni NegRisk fino alla resolution.

Outcome "None of the above": alcuni eventi NegRisk includono un leg esplicito "Other" o "None of the above". Se la risposta reale non corrisponde a nessun leg nominato, questo è il vincitore. I bot che non modellano il leg Other esplicito a volte lo trattano come un caso degenerato e perdono il payout.

Resolution contestate: la resolution di NegRisk passa attraverso UMA come qualsiasi altro mercato. Se contestato, il mercato può restare non risolto per 24-72 ore. Durante questa finestra, il front-end può mostrare "resolved" mentre i payout on-chain non sono ancora stati impostati. Leggere payoutNumerators sul contratto CTF è l'unico modo sicuro per confermarlo.

Code: piazzare un ordine NegRisk

Esempio completo in Node che piazza un buy sul YES leg di NegRisk.

import { ClobClient, Side, OrderType } from "@polymarket/clob-client-v2";
import { Wallet } from "ethers";

const c = new ClobClient({
  host: "https://clob.polymarket.com", chain: 137,
  signer: new Wallet(process.env.PRIVATE_KEY),
  creds: { key: K, secret: S, passphrase: P },
  signatureType: 2,
  funderAddress: process.env.POLY_FUNDER,
});

// market.negRisk === true (verified via Gamma earlier)
const resp = await c.createAndPostOrder(
  { tokenID: "<YES_TOKEN_ID>", price: 0.42, size: 25, side: Side.BUY },
  { tickSize: "0.01", negRisk: true },
  OrderType.FOK
);
console.log(resp.status, resp.orderID);

Il bug singolo più comune per chi inizia: omettere negRisk: true su un mercato NegRisk. L'ordine viene accettato dal CLOB ma il settlement fallisce. Leggi sempre market.negRisk da Gamma e passalo attraverso; non affidarti mai all'interpretazione del titolo della domanda.

Domande frequenti

Cos'è un mercato NegRisk su Polymarket?
Un mercato multi-outcome in cui i YES leg sono mutuamente esclusivi (solo uno può risolvere YES). La somma di tutti i prezzi YES resta vicina a 1 USD perché esattamente un outcome vince. Esempi: "2026 NBA Champion" (vince una sola squadra), "Next Fed chair" (una sola persona).
Devo impostare un flag nell'ordine per tradeare NegRisk?
Sì. Le richieste di ordine per i mercati NegRisk devono includere neg_risk: true (Python: passarlo a OrderArgs; Node: passarlo in CreateOrderOptions). Dimenticare il flag produce un ordine rifiutato o, peggio, un ordine piazzato sul book sbagliato. Abbiamo incontrato esattamente questo bug in produzione - commit 06deaef nella storia del nostro trader.
Posso fare arbitrage sui leg NegRisk che sommano a meno di 1?
Sì - se tutti i YES leg sommati al netto delle fee restano sotto 1.00, comprare ogni leg blocca un profitto garantito. L'arbitrage è reale ma estremamente raro e viene sniped entro pochi secondi dai bot più veloci. Consideralo una curiosità, non una strategia.
Come viene risolto un mercato NegRisk?
Con lo stesso processo dell'optimistic oracle UMA usato da qualsiasi altro mercato Polymarket. Il leg vincente paga 1 USD per share, tutti i leg perdenti pagano 0. La resolution in genere regola l'intero evento NegRisk in un colpo solo.
Le fee NegRisk sono diverse da quelle dei mercati binary?
Stesso schema fee dei binary - 0% maker, 0.75-1.80% taker per categoria. Si applica anche il maker rebate. L'unica differenza pratica è che devi gestire N order book invece di 1.
Posso coprire una posizione YES comprando gli altri leg NegRisk?
Sì - questo è l'hedge specifico per NegRisk. Se sei long su un leg e vuoi bloccare il PnL attuale, compra gli altri leg in proporzione. Il costo netto dovrebbe essere (1 - il prezzo del tuo leg YES), al netto delle fee. Non lo consigliamo come strategia primaria perché le fee di solito mangiano il vantaggio dell'hedge.