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.

Domande frequenti

Che cos'è un mercato crypto a 5 minuti di Polymarket?
Un mercato binario che si risolve ogni 5 minuti in base a se BTC, ETH o SOL saranno più alti o più bassi tra 5 minuti. ~288 scadenze al giorno per coppia. Pensato per trader veloci disposti a fare molte piccole scommesse.
I mercati crypto a 5 minuti sono profittevoli per i retail bot?
Difficile. Gli spread sono stretti, i bot più veloci dominano e l'edge è piccolo per singola scommessa. La matematica: 0.5% di edge atteso per bet * 288 bet/giorno = 144% lordo giornaliero, ma la variance è brutale e lo slippage ne mangia la maggior parte. La maggior parte dei retail bot che abbiamo visto perde denaro qui.
Quale edge può resistere nei mercati crypto a 5 minuti?
Feed di prezzo più veloci di quelli usati dal orderbook (per esempio, imbalance del Binance order book che anticipa lo spot di Polymarket). Statistical arb tra Polymarket 5-min e funding rates dei crypto perp. Qualsiasi cosa basata solo sul pattern matching è già stata arbitrata via.
Qual è il requisito di latency?
Meno di 200ms dal read al trade per qualsiasi strategia standalone. Sotto i 50ms se stai competendo per i fill migliori. La strategia si esegue al meglio da un VPS in colocation (NY4) con network a basso jitter - uno dei pochi casi in cui gli host ottimizzati per il trading ripagano anche nel retail.
Quanto capitale mi serve per i bot crypto a 5 minuti?
Parti da zero e fai paper-trade per oltre 1000 posizioni chiuse per capire la variance. Live: bankroll da 500-1000 USD, 1-3 USD per trade, scala solo se i risultati live a 30 giorni coincidono con il paper. Scendendo sotto un bankroll di 500 USD, la size per trade è così piccola che le fee dominano.
Posso eseguire più strategie a 5 minuti in parallelo?
Sì - ma non dovresti. Su 3 coppie (BTC, ETH, SOL) i mercati sono fortemente correlati, quindi le posizioni simultanee non sono vera diversificazione. Scegli una coppia, padroneggiala, poi magari aggiungine una seconda.