Tutorial sui bot di Polymarket · Capitolo 19 di 32
Fai farming dei premi di liquidità di Polymarket in modo programmatico: come funziona il programma di rebate, soglie di spread valide, matematica del ROI, classifica dei mercati profittevoli e quando il farming batte altre strategie.
Cosa copre questo capitolo
Polymarket paga i fornitori di liquidità tramite un programma di maker-rewards nei mercati idonei. La strategia di farming di questi rewards è ben definita, ma i margini sono sottili e il rischio di inventario è reale. Questo capitolo copre le soglie di spread necessarie per qualificarsi, la matematica del ROI e dove il farming funziona rispetto a dove perde soldi.
Questo è il capitolo 19 della nostra serie in 32 parti sulla creazione di un trading bot per Polymarket. Trattiamo l'argomento in profondità nelle sezioni qui sotto. I contenuti di ciascuna sezione vengono scritti e rilasciati capitolo per capitolo; le risposte FAQ e i riferimenti sono già completi e riflettono l'esperienza in produzione derivante dall'esecuzione del nostro trader.
- Come funziona il programma di liquidity reward di Polymarket
- Soglie di spread per qualificarsi
- Matematica del ROI: rebate + risparmio sulle fee + spread
- I migliori mercati per il farming
- Rischio: esplosione dell'inventario
- Codice: MM minimale per LP-farming
Come funziona il programma di liquidity reward di Polymarket
Polymarket gestisce un programma di liquidity rewards che paga maker rebates ai trader che forniscono limit order in attesa nei mercati idonei. L'exchange aggrega quotidianamente le quotazioni idonee e distribuisce i rewards in proporzione alla quota, ponderata per il tempo, di ordini che migliorano lo spread.
I mercati idonei cambiano ogni settimana - in genere eventi ad alta priorità (anni elettorali, grandi tornei sportivi) in cui Polymarket vuole book più profondi. La lista dei mercati idonei è pubblicata nella pagina dei rewards di Polymarket; controllala prima di strutturare una strategia di farming attorno a un mercato.
I rewards vengono pagati in pUSD, accreditati periodicamente (di solito ogni giorno o ogni settimana). Sono separati dal trade PnL - puoi essere in perdita netta sull'inventario e in profitto netto sui rewards sullo stesso mercato nello stesso periodo.
Soglie di spread per qualificarsi
L'idoneità ai rewards richiede che la tua quotazione sia entro uno "spread di qualificazione" rispetto al midpoint, attualmente intorno a ±3-5% del mid per i mercati binari. Le quotazioni fuori da questa banda restano sul book ma non maturano alcun reward.
Più stringi la quotazione, più competitiva è la tua quota del reward per blocco, ma più spesso vieni colpito da adverse selection. Più allarghi la quotazione, più sei al sicuro ma minore è la tua quota di reward. Il punto ottimale per la maggior parte dei mercati è circa 1-2c dal mid su ciascun lato.
L'idoneità prevede anche una dimensione minima dell'ordine (tipicamente 5+ azioni; coincide con il minimo GTC). Gli ordini sotto il minimo restano sul book ma non contano per i rewards.
Matematica del ROI: rebate + risparmio sulle fee + spread
Il ROI completo del reward farming ha tre componenti.
- Reddito da rebate: rebate per azione × fill, pagato in pUSD. I valori variano; l'intervallo attuale è 0,1-0,5c per azione riempita.
- Spread catturato: se quoti 1c sopra e sotto il mid, e entrambe le parti vengono riempite, guadagni 2c per round trip. Il tasso di cattura reale dipende dallo squilibrio dei fill.
- PnL dell'inventario: la posizione che accumuli ha esposizione mark-to-market. Può essere positiva o negativa; di solito è piccola se la strategia è ben progettata.
Esempio di calcolo: su un mercato con 100 azioni per lato quotate, fill rate del 60% per lato in un periodo di 24 ore, rebate di $0,30/sh. Reward: 100 × 0,60 × $0,30 = $18/giorno. Spread capture: stessi fill, spread di 1c × 60 round trip = $0,60. Il rebate domina lo spread nei mercati con poco volume; lo spread domina nei mercati con molto volume.
I migliori mercati per il farming
Il profilo economico che favorisce il farming:
- Tasso di reward idoneo elevato - controlla la pagina dei rewards per il rebate corrente per azione per mercato.
- Volume moderato - abbastanza fill da generare un reward significativo, ma non così tanto che i maker competitivi si prendano la tua quota.
- Mid stabile - preferisci mercati in cui la probabilità implicita non si muove di 10c in un singolo evento di news. I mercati elettorali prima delle news vanno bene; i mercati prossimi alla risoluzione no.
- Spread naturale stretto - mercati in cui il book esistente è già stretto significano che competi sulla distribuzione del rebate, non sull'apertura del mercato.
Evita: mercati nelle ultime 24h prima della risoluzione (i salti di prezzo distruggono l'inventario), mercati con flusso costantemente unilaterale (accumuli una grossa esposizione direzionale).
Rischio: esplosione dell'inventario
Il rischio dominante del farming è accumulare esposizione direzionale durante un movimento di prezzo. Se il mid scende da 0,55 a 0,42 in un'ora, il tuo bid si riempie ripetutamente mentre il tuo ask resta senza fill; finisci long di N azioni con un costo medio sopra il mid attuale.
Rimedi:
- Limite di inventario: smetti di quotare sul lato in cui sei già troppo long.
- Skew: quando sei long, allarga il bid e stringi l'ask. Quando sei short, il contrario.
- Kill switch: quando l'inventario supera 2x l'intervallo normale o il mid si muove di >X% rispetto a quando hai iniziato, fermati e azzera la posizione.
Il PnL del farming è la somma di rewards + spread − MTM dell'inventario. Le esplosioni accadono perché il terzo termine diventa enormemente negativo su un singolo movimento del mid guidato dalle news.
Codice: MM minimale per LP-farming
Riferimento: il maker più semplice e praticabile per il farming dei premi di liquidità.
QUOTE_OFFSET = 0.01 # 1c off mid each side
INV_CAP = 50 # max long or short
SIZE = 5 # GTC minimum
def farm_loop(token_id):
while True:
book = fetch_book(token_id)
mid = (book.best_bid + book.best_ask) / 2
inv = chain_balance(token_id)
cancel_my_quotes(token_id)
if inv < INV_CAP:
post_gtc(token_id, "BUY", mid - QUOTE_OFFSET, SIZE)
if inv > -INV_CAP:
post_gtc(token_id, "SELL", mid + QUOTE_OFFSET, min(SIZE, abs(inv)))
time.sleep(30) # re-quote every 30s
Aggiunte in produzione: skew sull'inventario, pausa per eventi di news, riconciliazione giornaliera del PnL incluso il flusso di rebate.


