Articolo · Listino
Una borsa delle squadre di calcio.
Un gioco in cui non si comprano i giocatori, come nel fantacalcio, ma le squadre. Ho scoperto che la parte difficile non era scrivere la formula: era dimostrare che nessuno può risolverla.
La Juventus vale 500 monete, il Genoa 220. Compri quote, le tieni tutta la stagione o le rivendi di giornata in giornata. Se la tua squadra vince, la quotazione sale. Se pareggia, dipende con chi.
La differenza con il fantacalcio sembra cosmetica e invece cambia tutto. Un punteggio sbagliato rende un gioco poco equilibrato. Un prezzo sbagliato lo rende risolvibile: qualcuno trova la strategia che vince sempre, la pubblica, e nel giro di tre settimane il gioco è finito.
Il primo motore che ho scritto sembrava ragionevole. Ogni squadra parte a 100 monete, sale se vince, scende se perde, con un bonus per le rimonte e uno per i gol al novantesimo. L’ho messo alla prova su trenta stagioni simulate con sette tipi di giocatore diversi:
strategia rendimento medio vittorie compra i favoriti +108,5% 30/30 value +60,9% 0/30 momentum +29,5% 0/30 a caso -6,4% 0/30
Comprare ogni giornata la squadra data favorita vinceva trenta stagioni su trenta. Non era un gioco: era una schedina con qualche passaggio in più.
Il criterio
La correttezza viene dalla finanza
La formulazione che ha sbloccato tutto è questa: il motore è corretto quando nessuna classe osservabile di squadre ha rendimento atteso diverso da zero. Non le big, non le piccole, non i favoriti di giornata, non le neopromosse. L’abilità deve stare nel prevedere le sorprese, non nel leggere la classifica.
Detto altrimenti: la quota non si muove sul risultato, si muove sullo scarto fra il risultato e l’attesa. Una squadra che batte l’ultima in classifica ha fatto esattamente quello che il mercato già prezzava, e la sua quota non si muove. La stessa squadra che pareggia perde valore.
È un criterio che si misura, non si discute. E misurarlo significa far girare il motore sui risultati veri.
Il backtest
Sei difetti che solo i dati veri potevano trovare
Ho costruito il simulatore su undici stagioni reali dei cinque campionati europei: 21.568 partite, dal 2015-16 al 2025-26, con i dati aperti di openfootball. Ogni difetto qui sotto è emerso da lì. Nessuno era visibile a tavolino.
1. Le quotazioni di apertura piatte sono un pasto gratis. Se tutte le squadre partono a 100 monete, le prime otto giornate sono una convergenza garantita verso il valore reale: compri le big e incassi senza rischio. Le quote di apertura devono già contenere le aspettative: nel modello finale vengono dai punti della stagione precedente, da una media pesata su tre anni e dal valore della rosa.
2. Premiare i gol in valore assoluto regala soldi alle big. Le favorite vincono con più gol di scarto per definizione. Un bonus proporzionale alla differenza reti è, matematicamente, un assegno staccato a chi compra le grandi. Va misurato contro l’attesa, non in assoluto.
3. Essere generosi con le piccole è un drift travestito. Avevo messo una leva che amplificava le sorprese positive delle squadre economiche: sembrava un modo per renderle interessanti. Sui dati veri il risultato era che tutte le big crollavano e tutte le piccole raddoppiavano, a prescindere dai risultati. La correzione è concettuale: la leva deve amplificare la sorpresa in entrambe le direzioni. Le piccole devono essere più volatili, non più redditizie.
4. Prevedere i risultati non pagava. Questo è il difetto che mi ha fatto pensare di più, perché il modello era corretto. La sorpresa è a media zero per costruzione, quindi comprare il favorito ha rendimento atteso esattamente zero. Vero in teoria e disastroso come gioco: chi di calcio capisce qualcosa si sente preso in giro. La soluzione arriva dai mercati azionari e si chiama stacco della cedola: prima della partita la quota scende dell’importo atteso del premio, dopo la partita chi possiede la quota incassa quello realizzato. Il valore atteso resta zero (nessun arbitraggio), ma l’esperienza diventa «la mia squadra ha vinto, mi hanno accreditato monete». È la differenza fra un modello giusto e un prodotto che si ha voglia di riaprire il lunedì.
5. Un nome scritto in due modi. In Ligue 1 il Paris Saint-Germain compare come «Paris Saint-Germain» in alcune stagioni e «Paris Saint-Germain FC» in altre. Il modello lo trattava come una neopromossa a stagioni alterne, quotandolo di conseguenza. Da solo, questo mandava fuori banda tutte le metriche del campionato. Avevo passato ore a cercare il difetto nella matematica.
6. Il normalizzatore troppo furbo. Ho scritto un riconoscitore di identità che fondeva i nomi con gli stessi token significativi. La prima versione fondeva anche per sottoinsieme, e ha unito «Paris Saint-Germain» con «Paris FC»: due club diversi, entrambi in Ligue 1 nel 2025-26. Un falso positivo qui cancella una squadra dal campionato. La regola è tornata all’uguaglianza esatta: meglio un alias mancato che una squadra sparita.
La prova
Gli stessi parametri, altri quattro campionati
Calibrare su un campionato e dichiarare vittoria è il modo più elegante di prendersi in giro. La verifica vera è applicare esattamente gli stessi parametri (nessun ritocco) a Premier League, Liga, Bundesliga e Ligue 1.
| campionato | distorsione | sui favoriti | autocorr. | informatività | volatilità |
|---|---|---|---|---|---|
| Serie A | −0,012 | +0,0008 | +0,027 | 0,94 | 4,2% |
| Premier League | −0,013 | +0,0004 | −0,016 | 0,88 | 4,2% |
| La Liga | −0,023 | +0,0002 | −0,045 | 0,84 | 4,0% |
| Bundesliga | −0,020 | −0,0016 | −0,043 | 0,86 | 4,2% |
| Ligue 1 | −0,036 | +0,0004 | −0,055 | 0,88 | 4,1% |
Verifica out-of-sample su 21.568 partite: nessuna classe di squadre ha rendimento atteso diverso da zero.
Il motore non regala rendimento a nessuna classe di squadre in nessun campionato. La quota finale correla con la classifica reale fra 0,84 e 0,94, e la volatilità sta stabile attorno al 4% per giornata in tutti e cinque.
Un solo parametro è dichiaratamente locale: l’ampiezza delle quotazioni di apertura. Il risultato è controintuitivo. I campionati con un padrone stabile richiedono le quote più strette. Ligue 1 e Bundesliga stanno a 0,30, la Serie A a 0,54. Il dominio del PSG e del Bayern è già interamente scontato nei tre segnali del modello (che ogni anno concordano tutti sulla stessa squadra), e allargare ulteriormente le quote finisce per sovraprezzarli.
Il campione lungo
Quello che cinque stagioni non bastavano a vedere
Avevo fatto la prima validazione su cinque stagioni, e l’autocorrelazione dei prezzi risultava nulla. Perfetta. Passando a dieci stagioni e trentatremila osservazioni si vede che un residuo negativo di circa −0,03 è strutturale: chi compra ciò che è appena sceso ha un vantaggio reale.
Ho provato a eliminarlo, e qui la cosa si è fatta interessante. La relazione fra la reattività del rating Elo e l’autocorrelazione ha la forma di una U: con un rating troppo lento è il valore fondamentale congelato a riportare indietro i prezzi, con uno troppo veloce è il rating stesso a sovra-reagire. Il minimo cade attorno a K = 10, ma a quel valore l’ampiezza delle quotazioni di apertura necessaria esplode fino a ventisei volte fra la prima e l’ultima squadra. Curare il sintomo faceva peggio della malattia.
Ho anche provato la correzione teoricamente elegante (aggiornare i prezzi in spazio logaritmico per conservare la media geometrica invece di quella aritmetica), convinto di aver trovato il colpevole. Ha spostato l’autocorrelazione di 0,001. L’ipotesi era sbagliata, e l’ho scoperto solo perché l’ho misurata.
Quindi il residuo resta, dichiarato: il contrarian ha un margine reale ma modesto, che va scoperto e tenuto con disciplina. Non è una formula che risolve il gioco. La differenza fra le due cose sta tutta nella dimensione del numero, e serviva il campione lungo per vederla.
E adesso il calcio
Undici anni di quotazioni
Fin qui il metodo. Ma un motore di quotazione serve a raccontare qualcosa, e su 1.072 squadre-stagione le storie vengono fuori da sole.
La stagione più redditizia di sempre, e quella dopo
Agosto 2015. Il Leicester apre quattordicesimo per quotazione, a 74 monete. Vince la Premier League. Chi aveva comprato ad agosto chiude la stagione a +130%: il rendimento più alto di tutto il campione, cinque campionati e undici anni.
Agosto 2016. Lo stesso Leicester apre primo, a 193 monete, perché il modello guarda l’anno precedente e l’anno precedente diceva quello. Chiude dodicesimo. −46%, settima peggiore stagione del campione.
Nessuna delle due è un errore. È esattamente ciò che deve succedere quando il prezzo incorpora il passato e il campo no. Ed è, in due righe, il motivo per cui un gioco del genere può funzionare: se il prezzo fosse sempre giusto non ci sarebbe niente da indovinare.
Le migliori e le peggiori
| rendimento | squadra | stagione | quotata → chiusa |
|---|---|---|---|
| +130% | Leicester City | 2015-16 Premier | 14ª → 1ª |
| +121% | Bayer Leverkusen | 2023-24 Bundesliga | 6ª → 1ª |
| +117% | VfB Stuttgart | 2023-24 Bundesliga | 16ª → 2ª |
| +114% | Chelsea | 2016-17 Premier | 9ª → 1ª |
| +92% | Girona | 2023-24 Liga | 10ª → 3ª |
| −51% | Monza | 2024-25 Serie A | 12ª → 20ª |
| −50% | Monaco | 2018-19 Ligue 1 | 2ª → 17ª |
| −50% | Parma | 2020-21 Serie A | 10ª → 20ª |
| −49% | Montpellier | 2024-25 Ligue 1 | 12ª → 18ª |
| −46% | Sheffield United | 2023-24 Premier | 20ª → 20ª |
La sorpresa più grande in assoluto non è il Leicester ma il RB Lipsia 2016-17: quotato diciassettesimo su diciotto (era appena salito) e arrivato secondo. Quindici posizioni guadagnate, +89%. La delusione più grande è il Monaco 2018-19: quotato secondo l’anno dopo aver vinto il campionato, arrivato diciassettesimo. Quindici posizioni perse, e metà del capitale con loro.
Quanto rende comprare una certa squadra
| cosa compri | rendimento medio | quante volte in utile |
|---|---|---|
| chi vince il campionato | +40% | 98% |
| la squadra più cara | +13% | 75% |
| la squadra più economica | +13% | 75% |
| una neopromossa | +7% | 63% |
| una da metà classifica (8ª-12ª quota) | +3% | 51% |
| chi retrocede | −20% | 10% |
Il primo dato sembra banale (comprare chi vince rende), ma dice due cose. La prima: nel modello vincere il campionato paga in cinquantaquattro casi su cinquantacinque. L’unica eccezione è la Juventus 2015-16, che ha vinto lo scudetto partendo prima per quotazione e ha chiuso a −0,4%: aveva già fatto tutto quello che il prezzo le chiedeva. La seconda, meno ovvia: ad agosto non sai chi vincerà, e il modo più ovvio di provare a indovinarlo (comprare la squadra più cara) rende un terzo e va in rosso una volta su quattro.
Da notare anche la forma a U: le costosissime e le economiche rendono più di quelle di metà classifica. Le squadre da ottavo posto sono il vero buco nero, perché non hanno né lo scudetto da sognare né la retrocessione da evitare: nessuna narrazione, nessuna sorpresa possibile in nessuna delle due direzioni.
Il decennio: vincere non paga, se eri dato per vincente
Comprare a ogni agosto e tenere fino a maggio, per undici stagioni consecutive. Quante volte si moltiplica il capitale:
| capitale | squadra | media stagionale |
|---|---|---|
| ×17,5 | Bayern Monaco | +31% |
| ×13,5 | Paris Saint-Germain | +28% |
| ×10,4 | Manchester City | +26% |
| ×9,3 | Barcellona | +23% |
| ×8,8 | Inter | +25% |
| ×6,4 | Napoli | +24% |
| ×6,3 | Atalanta | +22% |
| ×4,5 | Milan | +16% |
| ×3,2 | Roma | +12% |
| ×2,3 | Juventus | +8% |
| ×0,73 | Genoa | −1% |
| ×0,43 | Sampdoria | −7% |
| ×0,32 | Southampton | −9% |
Il dato che al tifoso suona sbagliato: la Juventus ha vinto cinque scudetti dentro questa finestra e ha moltiplicato per 2,3, meno della Roma, un quarto dell’Inter. Il motivo è che partiva sempre favorita, quindi vincere era già nel prezzo. L’Inter ha alternato disastri e trionfi partendo spesso sottovalutata, e proprio per questo ha reso quattro volte tanto.
È la traduzione calcistica di una cosa che in borsa si sa da sempre: non conta quanto è brava l’azienda, conta quanto è brava rispetto a quello che paghi.
Il Genoa, giusto per chiudere con casa
Undici stagioni, ×0,73: chi avesse comprato Genoa ogni agosto avrebbe lasciato per strada un quarto del capitale. Ma la media nasconde il profilo interessante: nel 2023-24, quotato diciottesimo, ha chiuso undicesimo e reso il 50% in una sola stagione.
È il ritratto di un club che il mercato prezza male in entrambe le direzioni: dal punto di vista del gioco, paradossalmente, è la squadra più divertente da avere in portafoglio. Le grandi si muovono poco: Liverpool 2018-19 e Juventus 2016-17 sono le due stagioni meno volatili di tutto il campione, sotto il 2,7% di oscillazione a giornata. Il Genoa sta in media al 4,7%.
Un numero da tenersi
Misurato su 920 coppie di stagioni consecutive nei cinque campionati: una squadra che quest’anno sta un punto per partita sopra la media, l’anno prossimo starà a 0,810 punti sopra. È il coefficiente di regressione verso la media del calcio europeo, e serve ogni volta che bisogna dare un prezzo a una stagione che non è ancora cominciata.
Il prodotto
Il vincolo di budget fa metà del game design
Il prototipo è navigabile: mercato, scheda squadra con il grafico della stagione, portafoglio, lega privata con gli amici. I numeri non sono segnaposto: sono le quotazioni vere prodotte dal motore sulla Serie A rigiocata giornata per giornata.
Una cosa che il prototipo ha reso evidente e che a parole non si vedeva: con un tetto di cinquanta quote per squadra e le big a 150-200 monete, con diecimila monete di dotazione puoi permetterti al massimo tre o quattro squadre di prima fascia. Il vincolo di budget fa già gran parte del lavoro di game design, forse più della formula di pricing su cui avevo passato tutto quel tempo.
C’è anche un problema di interfaccia che il modello si porta dietro: lo stacco delle cedole fa scendere il livello dei prezzi di circa il 60% nel corso della stagione, compensato in contanti. Matematicamente corretto, visivamente allarmante. La soluzione non tocca il modello: si mostra sempre il rendimento totale, mai la quota nuda.
Provalo: undici stagioni di Serie A da rigiocare