Tutorial Bot Polymarket · Capitolo 23 di 32
Pattern di bot per i mercati Polymarket BTC/ETH up-down a 5 minuti: 288 scadenze al giorno, esecuzione latency-critical, edge sources, perché la maggior parte dei retail bot perde, e skeleton del codice per la strategia.
Cosa copre questo capitolo
I mercati BTC up/down a 5 minuti di Polymarket si risolvono 288 volte al giorno, moltiplicando qualsiasi edge attraverso molte ripetizioni. La maggior parte dei retail bot perde qui, nonostante il volume, perché la latency e la soglia dell'edge sono fissate da aziende professionali. Questo capitolo mostra ciò che regge.
- Cosa sono i mercati crypto a 5 minuti
- 288 scadenze al giorno = ripetizioni compounding
- Perché i retail bot perdono qui
- Edge sources che resistono
- Latency budget
- Risk: piccolo per trade, grande per giorno
- Code: skeleton della strategia a 5 minuti
Cosa sono i mercati crypto a 5 minuti
I mercati crypto a 5 minuti di Polymarket sono domande binarie up/down sul prezzo di BTC (e ETH). Nuovi mercati si aprono ogni 5 minuti; ciascuno si risolve sul prezzo di chiusura 5 minuti dopo l'apertura, prendendo i dati da un oracle pubblicato.
Questo genera 288 mercati per asset al giorno. L'opportunità di compounding per qualsiasi edge è enorme: anche un piccolo edge per trade diventa significativo quando puoi sfruttarlo oltre 100 volte al giorno.
Il rovescio della medaglia: l'asticella è fissata da aziende professionali. Il mid si muove in stretto lockstep con il feed di prezzo sottostante, e i book sono solitamente sottili sul lato opposto.
288 scadenze al giorno = ripetizioni compounding
Se il tuo edge è 0.5c per trade con un win rate del 55% e puoi fare 60 trade al giorno, il PnL giornaliero atteso è 60 × 0.5c = $0.30 su posizioni da 10 share = $3/giorno. Sembra poco, ma fa compounding: 252 giornate di trading × $3 = $750/anno con un'esposizione di capitale quasi nulla (le posizioni si risolvono entro 5 minuti).
Perché lo stesso edge produca $750/anno su un binario che si risolve una volta al trimestre, servirebbe una size per trade molto più grande e code di perdita molto più ampie.
I mercati a 5 minuti sono l'unico segmento su Polymarket in cui edge piccoli ma frequenti si sommano fino a generare un reddito annuale significativo.
Perché i retail bot perdono qui
Tre modalità di fallimento che eliminano in modo costante chi entra da retail.
- Latency: le società professionali piazzano ordini in 50-100ms; i retail bot impiegano 1-3 secondi. Quando invii l'ordine, il prezzo è già nel nuovo mid.
- Asimmetria informativa: il CEX sottostante (Binance, Coinbase) stampa il trade tape più velocemente del price feed di Polymarket. I bot senza subscription dirette al CEX stanno tradando su dati stale.
- Spread tax: con cadenza a 5 minuti, anche uno spread di 0.5c × 60 trade = 30c al giorno di costo inevitabile. L'edge deve superare questo costo prima di diventare profittevole.
I retail bot di solito vanno in pareggio o perdono perché non riescono a battere i pro e non possono sfuggire alla spread tax. Le strategie che funzionano per il retail non sono edge-contro-i-pro; sono strategie di decisione lenta con specifici vantaggi informativi.
Edge sources che resistono
Cosa funziona per il retail sui mercati a 5 minuti.
- Funding-rate-driven directional bias: funding positivo estremo sui perp futures prevede mean reversion; tradare contro il funding rate.
- Open-interest-clearing windows: all'inizio di ogni ora, le liquidazioni dei perp futures sono più probabili; fade i movimenti estremi in quella finestra.
- Late-window resolution arbitrage: negli ultimi 30 secondi di una finestra di 5 minuti, il prezzo di risoluzione è sempre più conoscibile; il book spesso offre liquidity sottile a probabilità che non combaciano con il live tape.
Cosa non funziona: segnali tecnici puri (RSI, moving averages), semplice copia del momentum, qualsiasi cosa che richieda al bot di essere più veloce dei pro.
Latency budget
Per una strategia valida a 5 minuti, la ripartizione del budget è più o meno questa:
- Leggere la signal source (CEX trade tape, funding rate): 100-300ms
- Calcolare la decisione: 50ms
- Inviare ordine FOK: 200-500ms
- Ricevere conferma di fill: 200ms
Totale: 550-1050ms. Realizzabile su un VPS con paid RPC e una subscription diretta al CEX via WebSocket. Non realizzabile su un laptop domestico o con API free-tier.
Le strategie che richiedono meno di 500ms totali sono territorio pro; il retail non dovrebbe competere lì.
Risk: piccolo per trade, grande per giorno
Position sizing per i mercati a 5 minuti: piccolo per trade, daily cap.
- Per-trade: 5-15 share ($1-6) per mercato. Sotto 5 rende impossibili le vendite GTC; sopra 15 fai walk del book in ingresso.
- Daily total: 50-100 trade. Di più crea esposizione correlata a una singola stranezza dell'oracle.
- Daily PnL kill switch: stop se il PnL cumulativo scende di oltre $10 (o del 5% del capitale allocato). Le giornate storte sui mercati a 5 minuti di solito derivano da un'assunzione della strategia che si è rotta; sopravvivi alla giornata, fai debug, ridistribuisci.
L'asimmetria tra size per trade e numero giornaliero è intenzionale. Stai giocando su ampiezza, non su profondità.
Code: skeleton della strategia a 5 minuti
Reference: il trading loop per un bot a 5 minuti guidato dal funding rate.
def five_min_loop():
while True:
wait_for_next_window_open() # blocks until xx:x0:00 or xx:x5:00
markets = find_open_5min_markets("btc")
if not markets: continue
funding = fetch_perp_funding_rate("BTCUSDT")
bias = "DOWN" if funding > 0.001 else "UP" if funding < -0.001 else None
if bias is None: continue
market = markets[0]
token = market["clobTokenIds"][0 if bias == "UP" else 1]
book = fetch_book(token)
if not book.best_ask or book.best_ask > 0.55: continue
place_fok(token, "BUY", book.best_ask + 0.01, 10)
Aggiunte della versione production: tracciare le posizioni lungo la finestra a 5 minuti per un timing di exit accurato, fare paper-trade per 30 finestre prima del live, fermarsi dopo perdite consecutive.


