apinn.io
Tutti gli articoli
Rischio9 min di lettura

Quante scommesse servono per sapere se il tuo edge è reale?

Con un edge del 2% a 1.95, uno scommettitore su tre è ancora in perdita dopo 500 scommesse. Ecco la matematica, e cosa significa per come monitori i risultati.

"Sono a −4% di ROI su 400 scommesse, il mio modello non funziona." Questa frase viene detta ogni giorno, e nella maggior parte dei casi è sbagliata — non perché il modello sia buono, ma perché 400 scommesse semplicemente non possono risolvere la questione.

Le scommesse sportive hanno un rapporto segnale-rumore pessimo. Un edge del 2% vive dentro decine di punti percentuali di varianza. Prima di interpretare un risultato, devi sapere cosa un campione di quella dimensione è in grado di mostrare.

La matematica, in tre righe

Per scommesse a puntata fissa a quota c con probabilità di vincita p, il profitto per scommessa ha un'aspettativa e una deviazione standard che puoi scrivere direttamente. L'incertezza sul ROI osservato si riduce con la radice quadrata di n — è lì che si decide tutto.

import math

def roi_noise(odds=1.95, edge=0.02, n=400):
    p = (1 + edge) / odds                 # probabilità di vincita implicita dall'edge target
    gain, loss = odds - 1, -1.0
    mean = p * gain + (1 - p) * loss      # = edge
    var = p * (gain - mean) ** 2 + (1 - p) * (loss - mean) ** 2
    return mean, math.sqrt(var / n)       # aspettativa, deviazione standard del ROI osservato

mean, se = roi_noise(n=400)
print(f"true edge {mean:.2%} | noise at 400 bets ±{se:.2%}")
# true edge 2.00 % | noise at 400 bets ±4.87 %

In altre parole: con un edge reale del 2%, il tuo ROI osservato su 400 scommesse oscilla su un intervallo di circa ±10 punti (due deviazioni standard). Qualsiasi valore tra −8% e +12% è perfettamente coerente con lo stesso modello vincente.

Le probabilità di essere in perdita mentre va tutto bene

Ribalta la domanda: qual è la probabilità di mostrare un ROI negativo dopo n scommesse, dato che l'edge è reale? La risposta è brutale.

from statistics import NormalDist

def p_losing(odds=1.95, edge=0.02, n=400):
    mean, se = roi_noise(odds, edge, n)
    return NormalDist(mean, se).cdf(0)    # P(ROI osservato < 0)

for n in (200, 500, 1000, 2000, 5000):
    print(f"{n:>5} bets → {p_losing(n=n):.0%} chance of being down")
#   200 bets → 39 %
#   500 bets → 32 %
#  1000 bets → 26 %
#  2000 bets → 18 %
#  5000 bets → 7 %

Uno scommettitore su tre con un edge reale del 2% è ancora in rosso dopo 500 scommesse. Statisticamente non c'è nulla da correggere: semplicemente non ha ancora giocato abbastanza perché il segnale emerga.

Questi numeri assumono scommesse indipendenti a quota costante. Se prendi più selezioni correlate nello stesso giorno, o le tue quote vanno da 1.3 a 5.0, la varianza reale è più alta — quindi ti servono ancora più scommesse.

Quindi quante scommesse?

Per separare un edge dallo zero con una confidenza ragionevole, l'edge deve valere almeno il doppio del rumore. Su un edge del 2% a 1.95, quel rapporto raggiunge solo 1,6 a 6.000 scommesse e 2,0 a 10.000. Il requisito cresce con l'inverso del quadrato dell'edge: dimezza il tuo edge e quadruplichi il campione necessario.

  • Edge del 5% a 1.95: qualche centinaio di scommesse bastano per vederci chiaro.
  • Edge del 2%: diverse migliaia.
  • Edge dell'1% su quote a 3.00: decine di migliaia — fuori portata per qualsiasi tracciamento manuale.

Misura qualcos'altro rispetto al risultato

La conclusione pratica non è "piazza 6.000 scommesse prima di concludere", è "smetti di misurare la cosa che converge più lentamente". L'esito di una scommessa è una variabile binaria molto rumorosa; la qualità del prezzo che hai preso è osservabile immediatamente.

  1. Scarto rispetto alla closing line: il tuo prezzo contro l'ultimo prezzo del mercato. Ogni scommessa produce una misurazione, senza bisogno di aspettare il risultato.
  2. Scarto rispetto alle fair odds al momento della scommessa: misura la tua selezione, indipendentemente da qualsiasi movimento successivo.
  3. Slippage realizzato: la differenza tra il prezzo che puntavi e quello che hai ottenuto. È spesso lì che l'edge scompare, non nel modello.

Tutte e tre condividono una virtù: non dipendono da come è finita la partita, quindi non portano la varianza del risultato. Poche centinaia di scommesse bastano per sapere se i tuoi prezzi sono buoni — mentre il tuo ROI è ancora a anni luce dal dire qualcosa.

Il risultato ti dice cosa è successo. Il prezzo ti dice se avevi ragione. Entrambi convergono, ma non alla stessa velocità.

Fissa le tue soglie a mente fredda

Questo calcolo ha un uso preventivo: fissa le tue soglie prima della run, non durante. Sapendo che il tuo ROI oscillerà su ±10 punti, uno stop-loss a −5% garantisce che ucciderai una strategia sana. La soglia deve stare oltre il rumore atteso, calcolato per IL TUO edge stimato e IL TUO volume.

E per stimare quell'edge senza rincorrere la propria coda, non partire dal ROI passato — parti dai tuoi prezzi. Ricostruire fair odds e prezzi di chiusura riga per riga sulla tua storia di scommesse dà una stima dell'edge stabile da inserire nella matematica qui sopra.

# il prezzo di chiusura della linea esatta che hai giocato
curl -H "X-API-Key: $APINN_KEY" \
  "https://api.apinn.io/api/closing?event_id=1610000123"

# il movimento completo, apertura → chiusura, per posizionare il tuo ingresso
curl -H "X-API-Key: $APINN_KEY" \
  "https://api.apinn.io/api/history?event_id=1610000123"

Un edge stimato dai prezzi, una soglia di stop calcolata dalla varianza attesa, e uno stake dimensionato per sopravvivere all'intervallo: questo trio è ciò che ti impedisce di abbandonare una strategia vincente alla scommessa numero 400.

Questi calcoli, su dati reali

Quote Pinnacle in tempo reale con true odds incluse, più storico di apertura e chiusura — accesso self-serve, API key in pochi minuti.