Tutti gli articoli
RicercaBacktestingRicerca sulle strategieMercati Up/Down

Un win rate del 97.7% che perde soldi: comprare i favoriti, il backtest

Compra il lato che sta chiaramente vincendo, incassa il pagamento quasi certo, ripeti. Produce un win rate che in uno screenshot sembra straordinario. Su 17,002 operazioni con dati reali dell’order book perde anche soldi, e il motivo è aritmetico, non sfortuna.

11 min di lettura

La strategia Up/Down su Polymarket più ripetuta in giro è anche la più semplice: con un minuto rimasto, compra il lato che sta chiaramente vincendo. È intuitiva, facile da automatizzare e produce il tipo di win rate che finisce negli screenshot.

L’abbiamo testata su 17,002 operazioni simulate con snapshot reali dell’order book. Il win rate è davvero straordinario. I rendimenti sono negativi.

Il risultato principale

Comprare il favorito a 97¢ o più vince il 97.70% delle volte su 5,879 operazioni, e rende −0.69% per operazione. La strategia non è sfortunata. A quei prezzi non può fare soldi, e più vince in modo affidabile, più la cosa diventa certa.

Come funziona il test

  • Universo: ogni mercato Up/Down a 5 minuti su BTC, ETH e SOL risolto nell’archivio di PolyTest, una finestra mobile di 31 giorni dal 5 agosto al 5 settembre 2026.
  • Ingresso: un’operazione per mercato, allo snapshot più vicino a 60 secondi prima della scadenza. Un’osservazione per mercato, quindi nessuna autocorrelazione dovuta al campionamento ripetuto dello stesso mercato.
  • Lato: l’esito quotato più alto, cioè il favorito.
  • Prezzo di esecuzione: l’ask, non il prezzo medio. In questi dati price_up + price_down ha una media di 1.0117, quindi lo spread di andata e ritorno di circa 1.2¢ è già pagato all’ingresso.
  • Esclusioni: i mercati in cui uno dei due lati ha il book degli ask vuoto. Se nessuno offre, l’operazione è impossibile: includerla inventerebbe esecuzioni che non sarebbero potute avvenire.
  • Pagamento: i vincitori si regolano a $1.00, i perdenti a $0.

Perché pagare l’ask conta più di quanto sembri

La maggior parte dei backtest pubblicati sui mercati di previsione usa il prezzo medio. Su un contratto che si regola a $1, uno spread di 1.2¢ è un ostacolo di 1.2 punti percentuali su ogni singola operazione. Diversi risultati qui sotto stanno dentro quel margine, ed è proprio per questo che i backtest di queste strategie sul prezzo medio sembrano redditizi e il trading live no.

Risultato: comprare il favorito, per fascia di prezzo

Prezzo d’ingressoOperazioniCosto medioWin rateVantaggioROIzVerdetto
50–60¢1,71553.72¢53.18%−0.54pp−1.00%−0.45Rumore
60–70¢1,47164.71¢66.76%+2.04pp+3.16%1.66Rumore
70–80¢1,82474.67¢76.15%+1.49pp+1.99%1.49Rumore
80–90¢2,46984.87¢85.05%+0.18pp+0.22%0.26Rumore
90–97¢3,64493.56¢91.16%−2.39pp−2.56%−5.09Significativo
97¢+5,87998.38¢97.70%−0.68pp−0.69%−3.47Significativo
17,002 operazioni. z è il vantaggio diviso per il suo errore standard; |z| ≥ 1.96 è significativo al 95%. Il vantaggio è il win rate meno il costo medio, in punti percentuali.

Leggi prima le ultime due righe, perché è lì che c’è il volume. Oltre metà delle operazioni cade a 90¢ o più, ed entrambe queste fasce perdono soldi con un’alta confidenza statistica. La fascia 90–97¢ è la peggiore: paghi 93.56¢ per qualcosa che succede il 91.16% delle volte, perdendo 2.39 punti percentuali su ogni operazione con uno z-score di −5.09.

Le fasce intermedie sembrano migliori (60–70¢ mostra un ROI del +3.16%), ma nessuna delle due supera la soglia di significatività. Con z = 1.66 e z = 1.49 sono i rendimenti che ti aspetteresti da un lancio di moneta travestito da 1,500 operazioni. Nessuna fascia mostra un vantaggio positivo statisticamente significativo.

Il win rate non è un vantaggio

La fascia 97¢+ è l’esempio più chiaro del dataset. Un win rate del 97.70% è reale: vincerai 39 operazioni su 40. Ma hai pagato 98.38¢ per vincere $1.00, quindi quelle 39 vincite rendono in tutto $0.63 e l’unica perdita ti costa $0.98. Una strategia può vincere quasi ogni operazione ed essere comunque una strategia perdente. Qualsiasi bot pubblicizzato per il win rate invece che per il rendimento è ingenuo o ti sta vendendo qualcosa.

La curva di calibrazione

Facendo un passo indietro dalla strategia al mercato stesso: quanto sono accurati questi prezzi? Per ogni mercato BTC a 5 minuti abbiamo preso il prezzo Up quotato 60 secondi prima della scadenza e lo abbiamo confrontato con la frequenza con cui Up ha effettivamente vinto.

Prezzo Up quotatoMercatiTasso Up realeErrore di prezzo
1.5¢2,2770.6%−0.9pp
6.8¢4805.4%−1.4pp
11.9¢3089.1%−2.8pp
16.9¢20513.2%−3.8pp
21.9¢16718.0%−3.9pp
42.0¢10942.2%+0.2pp
62.0¢10368.0%+6.0pp
72.1¢15268.4%−3.7pp
82.0¢18488.6%+6.5pp
92.2¢40891.4%−0.8pp
97.8¢1,07798.1%+0.3pp
Mercati BTC 5m, ask Up quotato a T−60s rispetto all’esito realizzato. Un errore di prezzo negativo significa che il contratto è sopravvalutato rispetto alla frequenza con cui vince.

È un caso da manuale di favorite–longshot bias, l’effetto documentato da decenni nelle scommesse ippiche e nei mercati di previsione. Gli outsider sono sistematicamente sopravvalutati: i contratti quotati intorno a 17¢ vincono il 13.2% delle volte, e quelli intorno a 22¢ il 18.0%. I favoriti di fascia media sono sottovalutati di qualche punto.

È reale, va nella direzione giusta ed è molto difficile da monetizzare, perché le fasce in cui il bias è più grande sono quelle con i book più sottili e gli spread relativi più ampi. Il bias compare nella curva di calibrazione e sparisce nel P&L, che è il destino abituale di un’anomalia ben nota.

Perché il test simmetrico non concorda con il test solo Up

La tabella di calibrazione mostra +6.5pp a 82¢, ma la tabella della strategia mostra +0.18pp per l’intera fascia 80–90¢. Non è una contraddizione: la tabella di calibrazione guarda solo al lato Up, e Up è quotabile solo quando qualcuno lo offre. Condizionare su "Up è acquistabile" seleziona silenziosamente un insieme diverso di mercati. Il test simmetrico sul favorito non ha questa selezione, ed è per questo che è quello di cui fidarsi per una decisione di trading.

Quindi il bias esiste o no?

Entrambe le cose, e la distinzione è il punto centrale:

  • Come descrizione dei prezzi, sì. Gli outsider sotto ~25¢ sono costantemente sopravvalutati di 3–4 punti percentuali. È una proprietà reale e misurabile di questi mercati.
  • Come strategia, no. Comprare i favoriti non rende nulla al netto dello spread, e ai prezzi dove si concentra la maggior parte del volume rende meno di nulla con un’alta confidenza.
  • L’asimmetria è il segnale rivelatore. Se gli outsider sono sopravvalutati, l’operazione non è comprare i favoriti: è vendere gli outsider. Questo richiede di pubblicare offerte in attesa e di essere eseguiti dall’ordine a mercato di qualcun altro, cioè fare market making, con tutto il rischio di inventario che comporta. Non è una strategia che si esegue colpendo gli ask.

Riproducilo

Ogni cifra qui sopra viene da dati che puoi scaricare. La struttura del test conta più dei nostri numeri: eseguilo sulla tua finestra e verifica se regge ancora.

import os, requests
from statistics import mean

BASE, H = "https://api.polytest.io/api/v1", {"X-API-Key": os.environ["POLYTEST_KEY"]}

trades = []
markets = requests.get(f"{BASE}/markets", headers=H, params={
    "coin": "btc", "market_type": "5m", "limit": 100,
}).json()["markets"]

for m in markets:
    if not m.get("winner"):
        continue
    # The snapshot nearest 60s before expiry — one observation per market.
    snap = requests.get(f"{BASE}/markets/{m['id']}/snapshots/at", headers=H, params={
        "timestamp": m["end_time"], "offset_seconds": -60,
        "include_orderbook": "true",
    }).json().get("snapshot")
    if not snap:
        continue

    up, down = snap.get("price_up"), snap.get("price_down")
    if up is None or down is None:
        continue                       # no offer on one side: untradeable

    side = "Up" if up >= down else "Down"
    cost = max(up, down)               # pay the ask, not the mid
    trades.append((cost, m["winner"] == side))

n = len(trades)
cost = mean(c for c, _ in trades)
wr = sum(w for _, w in trades) / n
print(f"n={n}  cost={cost:.4f}  win_rate={wr:.4f}  ROI={(wr-cost)/cost*100:+.2f}%")

Cosa dimostra e cosa no

  • Un mese. Una finestra mobile di 31 giorni, dal 5 ago al 5 set 2026. Abbastanza lunga per 17,002 operazioni, non abbastanza per coprire diversi regimi di volatilità.
  • Esecuzioni al top of book. Addebitiamo il miglior ask e assumiamo che l’intera operazione venga eseguita lì. Una size reale scorre il book, quindi i risultati live sarebbero peggiori di questi, non migliori.
  • Nessuna commissione né gas. Aggiungerli sposta ogni riga verso il basso.
  • Solo mercati a 5 minuti. I timeframe più lunghi hanno una liquidità diversa e potrebbero comportarsi diversamente.
  • Ingresso esattamente a T−60s. Il tempismo si rivela enormemente importante: vedi lo studio sul tempismo d’ingresso.

La conclusione che difenderemmo: comprare i favoriti all’ask non è una strategia, è un modo per pagare lo spread 17,000 volte. Se vuoi una versione che funzioni davvero, lo studio sul ritardo dello spot testa un’idea correlata che mostra un vantaggio reale, insieme al vincolo che le impedisce di scalare.

Ogni numero qui viene dagli snapshot di PolyTest con profondità completa dell’order book. L’API di Polymarket non può supportare questo test: il book di un mercato risolto restituisce 404, e lo storico dei prezzi che conserva ha circa un punto al minuto, troppo grossolano per dire quanto sarebbe costata un’esecuzione. Inizia gratis se vuoi eseguire la tua versione.

Domande frequenti

Comprare il favorito funziona sui mercati Up/Down di Polymarket?
No. Su 17,002 operazioni simulate sui mercati a 5 minuti su BTC, ETH e SOL, con ingresso 60 secondi prima della scadenza all’ask, nessuna fascia di prezzo ha mostrato un rendimento positivo statisticamente significativo. Due fasce hanno perso soldi in modo significativo: 90-97¢ ha reso -2.56% per operazione (z = -5.09) e 97¢+ ha reso -0.69% (z = -3.47). Queste due fasce contengono più della metà di tutte le operazioni.
Come può perdere soldi una strategia con un win rate del 97%?
Perché il pagamento è fisso a $1. Comprare a 98.38¢ con un win rate del 97.70% significa che 39 vincite su 40 rendono in tutto circa 63 centesimi di profitto, mentre l’unica perdita costa 98 centesimi. Win rate e valore atteso sono grandezze diverse, e sui mercati di previsione un win rate molto alto di solito significa che stai pagando quasi la probabilità reale, senza alcun margine.
Esiste un favorite-longshot bias su Polymarket?
Sì, in modo misurabile. Nei mercati BTC a 5 minuti, i contratti quotati intorno a 17¢ si sono risolti a favore del compratore solo il 13.2% delle volte, e quelli intorno a 22¢ hanno vinto il 18.0%: outsider sopravvalutati di 3-4 punti percentuali. Ma non si traduce in una strategia redditizia di acquisto del favorito, perché il bias si trova nelle fasce con i book più sottili e gli spread relativi più ampi.
Perché pagare l’ask invece del prezzo medio cambia il risultato?
Sui mercati Up/Down di Polymarket i prezzi ask dei due lati sommano circa 1.0117, quindi all’ingresso si pagano circa 1.2 centesimi di spread. Siccome il contratto si regola a $1, è un ostacolo di 1.2 punti percentuali su ogni operazione. Diverse strategie mostrano vantaggi apparenti inferiori a questo, ed è esattamente per questo che i backtest sul prezzo medio sembrano redditizi mentre il trading live no.
Dovrei vendere gli outsider invece di comprare i favoriti?
È lì che punta davvero il bias misurato, ma è un tipo di operazione diverso. Vendere outsider sopravvalutati significa pubblicare offerte in attesa e aspettare di essere eseguiti dall’ordine a mercato di qualcun altro: market making, con rischio di inventario e selezione avversa. Non si può eseguire prendendo liquidità come si fa comprando i favoriti, e questo backtest non lo misura.

Ottieni i dati storici che Polymarket non conserva

PolyTest registra i mercati crypto Up/Down di Polymarket mentre sono attivi: 240M+ snapshot con 8 livelli di profondità dell’order book, timestamp sotto il secondo e mercati risolti conservati. Inizia con una prova gratuita di 3 giorni.

Continua a leggere