Cos’è l’Overfitting nel Trading e Perché Distrugge i Sistemi Automatici?
L’overfitting nel trading è quando un sistema viene ottimizzato a tal punto sui dati storici da catturare il rumore casuale anziché il segnale reale del mercato. Il risultato è un sistema che funziona perfettamente sul passato e crolla miseramente sul futuro. È la ragione principale per cui il 90% degli Expert Advisor venduti online fallisce entro 3 mesi dal lancio in live.
Il meccanismo è matematicamente inevitabile. Hai un dataset di 5 anni. Hai un sistema con 8 parametri. L’ottimizzatore testa migliaia di combinazioni e trova quella che produce l’equity curve più bella. Il problema: con abbastanza parametri e abbastanza tentativi, trovi sempre una combinazione perfetta anche su dati completamente casuali. Non hai trovato un edge — hai trovato un pattern nel rumore. E il rumore non si ripete.
Lo so perché ci sono cascato io stesso. Nel 2009, alla versione 8 di Oracle, avevo ottimizzato 11 parametri su 2 anni di dati. Backtest: Profit Factor 3.8. In live: −18% in 5 settimane. Quel giorno ho capito che l’overfitting non è un concetto accademico — è un conto reale che va in rosso. Da allora non ho più superato i 5 parametri ottimizzabili in nessuna delle 69 versioni successive.
La Differenza tra Segnale e Rumore — Perché l’Ottimizzatore Non La Vede
Il mercato produce due tipi di informazione: segnale (pattern ripetibili che riflettono comportamenti strutturali dei partecipanti) e rumore (fluttuazioni casuali che non si ripeteranno mai). L’ottimizzatore non distingue tra i due. Per lui, un pattern che è apparso 3 volte per puro caso e uno che è apparso 300 volte per ragioni strutturali hanno lo stesso peso — purché migliorino il PF sul dataset.
Più parametri dai all’ottimizzatore, più “gradi di libertà” ha per adattarsi al rumore. Con 3 parametri cattura soprattutto il segnale. Con 10 parametri cattura segnale + rumore. Con 20 parametri cattura quasi esclusivamente rumore. La regola empirica: massimo 1 parametro ogni 2.000 trade nel dataset.
Perché l’Overfitting È Più Pericoloso di un Sistema Perdente
Un sistema che perde chiaramente in backtest non verrà mai messo in live. Ti protegge con la sua bruttezza. Un sistema overfittato è il contrario: è bellissimo in backtest. Ti seduce con l’equity curve perfetta. Ti convince che hai trovato il Santo Graal. E quando lo metti in live con soldi veri — spesso con sizing aggressivo perché “tanto funziona” — la distruzione è rapida e totale.
Come Si Riconosce l’Overfitting? I 5 Segnali d’Allarme
Dopo 78 versioni di Oracle e centinaia di sistemi analizzati per i miei studenti, ho identificato 5 segnali che, se presenti insieme, indicano overfitting con quasi certezza.
3 Scenari Reali: Come l’Overfitting Distrugge Conti Veri
Scenario 1 — 11 Parametri, Oracle v8, e il Mio −18%
Anno 2009. Stavo sviluppando la versione 8 di Oracle. Ero convinto che più parametri significassero più precisione. Avevo 11 parametri ottimizzabili: finestra Ulcer Index, soglie di ingresso, soglie di uscita, trailing stop, filtro orario, filtro di volatilità, e altri 5 sotto-parametri.
Backtest su 2 anni di XAUUSD H4: Profit Factor 3.8. Win Rate 68%. Drawdown massimo 4.2%. Equity curve perfetta. Ero entusiasta. Lo metto in live con sizing aggressivo.
Cinque settimane dopo: −18% del conto. Il sistema aveva catturato pattern specifici del 2007-2009 che non si sono mai ripetuti. Il filtro orario era calibrato su un comportamento del mercato asiatico che è cambiato nel 2010. Il trailing stop era ottimizzato su una volatilità media che era storicamente anomala per quel periodo.
Da quel giorno: mai più di 5 parametri. Mai più meno di 10 anni di dati. Mai più backtest senza Walk Forward Analysis.
Scenario 2 — Il Corso da €4.997 con il Backtest “Garantito”
Un mio studente — lo chiamerò Marco perché non usa il suo nome reale — ha comprato un corso di trading algoritmico da €4.997. Il formatore mostrava un backtest di 3 anni su EURUSD: rendimento annuo +120%, PF 4.1, drawdown 2.8%.
Marco mi ha mandato il codice dell’EA incluso nel corso. Ho contato i parametri: 14. Su 3 anni di dati a 5 minuti = circa 3.000 trade. Rapporto parametri/trade: 1:214. La regola dice 1:2.000. Era overfittato di un fattore 10x.
Ho fatto la WFA sul codice di Marco. Walk Forward Efficiency: 12%. Il PF crollava da 4.1 in-sample a 0.6 out-of-sample. Il sistema non aveva edge — era un generatore di rumore travestito da sistema vincente. Marco ha perso €4.997 di corso + €3.200 di perdite live prima di fermarsi.
Scenario 3 — L’Overfitting Cerebrale del Trader Disciplinato
Questo è lo scenario più insidioso perché colpisce i trader seri, non i principianti. Sviluppi il tuo sistema guardando il backtest. Noti che il martedì pomeriggio funziona meglio. Aggiungi un filtro “solo martedì pomeriggio”. Noti che con SL a 35 pip il PF sale. Cambi lo SL da 40 a 35. Noti che su GBPUSD funziona meglio senza trailing stop. Rimuovi il trailing su GBP.
Dopo 40-50 di queste “osservazioni” il sistema è perfettamente calibrato — su quei dati specifici. Non hai usato un ottimizzatore automatico. Hai usato il tuo cervello come ottimizzatore. Il risultato è identico: overfitting. Ogni volta che guardi il backtest e cambi qualcosa, stai consumando i tuoi gradi di libertà out-of-sample.
Come Si Evita l’Overfitting? I 4 Metodi che Uso dal 2009
Dopo il −18% della versione 8, ho sviluppato un protocollo anti-overfitting che non ho più violato in 69 versioni successive di Oracle. Sono 4 metodi, tutti obbligatori, nessuno opzionale.
Metodo 1 — Meno di 5 Parametri. Sempre.
Oracle v78 ha esattamente 4 parametri ottimizzabili su 65.587 trade. Rapporto 1:9.022. Con così pochi gradi di libertà, l’ottimizzatore è costretto a catturare solo i pattern più robusti e frequenti — quelli che si ripetono migliaia di volte, non quelli che appaiono 3 volte per caso.
Metodo 2 — Walk Forward Analysis su 12+ Anni
Ogni versione di Oracle deve superare la Walk Forward Analysis con WFE superiore al 70% su almeno 16 finestre temporali. Se la WFE scende sotto il 50% anche su una singola finestra, la versione viene scartata. Nessuna eccezione, nessun “ma è solo una finestra”.
Metodo 3 — Test di Stabilità nell’Intorno del Massimo
Dopo l’ottimizzazione, vario ogni parametro del ±30% e verifico che il PF rimanga sopra 1.2. Se un parametro critico a 14 produce PF 1.6 ma a 12 produce PF 0.7 e a 16 produce PF 0.8, quel 14 è un picco isolato — overfitting locale. I parametri di Oracle v78 sono tutti su altopiani. Variare qualsiasi parametro del 30% non porta il PF sotto 1.25.
Metodo 4 — Il Filtro Invariante: l’Ulcer Index
Il nucleo di Oracle — il filtro basato sull’Ulcer Index — non viene mai ottimizzato. La soglia è fissa dalla versione 12 e misura un fenomeno fondamentale del mercato (il drawdown prolungato) che non cambia con i regimi. Avere un componente invariante al centro del sistema previene l’overfitting strutturale perché l’ottimizzatore non può adattare il filtro primario al rumore dei dati storici.
Perché Oracle v78 Non È Overfittato — Le 3 Prove
L’overfitting è il nemico che ho combattuto per 19 anni.
Prova 1 — Stabilità temporale. Il PF di Oracle su finestre mobili di 3 anni: 2007-2010: 1.51, 2010-2013: 1.38, 2013-2016: 1.46, 2016-2019: 1.41, 2019-2022: 1.48, 2022-2025: 1.39. Range: 1.38–1.51. Un sistema overfittato mostra PF 2.0+ su un periodo e 0.7 su un altro. Oracle non lo fa mai.
Prova 2 — Walk Forward Efficiency 82%. L’82% della performance del backtest sopravvive su dati mai visti. Un sistema overfittato ha WFE sotto il 30%. La differenza è di un fattore 2.7x.
Prova 3 — Robustezza alla rimozione dei trade migliori. Rimuovendo i 100 trade più profittevoli su 65.587, il PF scende da 1,44 a 1.32 — ancora solidamente sopra 1.2. Un sistema overfittato crolla sotto 1.0 perché pochi trade fortunati tengono su tutto il risultato.
Overfitting vs Underfitting vs Fit Corretto — Dove Devi Stare?
| Stato | Backtest | Live | Segnali | Azione |
|---|---|---|---|---|
| Underfitting | PF 1.0–1.1 | PF 0.9–1.0 | Pochi parametri, logica troppo semplice | Aggiungi complessità mirata |
| Fit Corretto | PF 1.3–1.8 | PF 1.1–1.5 | WFE >70%, altopiano stabile, <5 param | Metti in produzione |
| Overfitting | PF 2.5–5.0+ | PF 0.5–0.9 | WFE <30%, picco isolato, 8+ param | Riduci parametri, WFA |
Oracle v78 sta nel fit corretto: PF backtest 1.79, PF walk-forward 1.47, PF live 1,44. Il degradamento è del 18% dal backtest al WF e del 2% dal WF al live. Questo è il profilo di un sistema con edge strutturale — non di un sistema che ha memorizzato il passato.
Vuoi verificare se il tuo sistema è overfittato? Mostralo in una live.
Nelle live gratuite analizzo sistemi dei partecipanti con i 5 test anti-overfitting. Live gratuite — iscriviti alla prossima.
Entra Gratis Ora → GUIDA WALK FORWARD →Riepilogo: Overfitting nel Trading in 5 Punti
FAQ — Overfitting nel Trading
- — Bailey, D., Borwein, J., López de Prado, M., Zhu, Q.J. (2014): "Pseudo-Mathematics and Financial Charlatanism", Notices of the AMS. AMS Notices PDF
- — López de Prado, M. (2018): "Advances in Financial Machine Learning", Wiley. Cap.11 overfitting quantitativo. Wiley
- — Wikipedia: Overfitting — definizione, cause e rimedi. Wikipedia
- — CONSOB — Quaderni di Finanza: valutazione performance strategie. Quaderni CONSOB
- — Banca d'Italia — Temi di Discussione: robustness di modelli quantitativi. Temi di Discussione BdI
