Overfitting Trading: Come Riconoscerlo ed Evitarlo | MTInvestments

Overfitting nel Trading — Come Riconoscerlo Prima che Distrugga il Tuo Conto

L’overfitting è il serial killer silenzioso del trading algoritmico. Il tuo backtest mostra +200% in 3 anni, equity curve liscia, zero mesi negativi — e in live perdi il 30% in 6 settimane. In 78 versioni di Oracle ho imparato a riconoscerlo, combatterlo, e soprattutto a non cascarci più. Questa guida ti insegna come fare lo stesso.

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.

Segnale 01
Equity Curve Troppo Liscia
Un’equity curve reale ha oscillazioni, drawdown, periodi piatti. Se la curva sale in modo uniforme senza mai un ritracciamento serio, il sistema sta catturando il rumore. I mercati non producono rendimenti uniformi — sono inherently spezzati. Un PF di 1,44 su 65.587 trade produce un’equity curve con drawdown del 13,1% — visibile, doloroso, ma reale.
Segnale 02
Profit Factor Sopra 2.5 su Meno di 1.000 Trade
Un PF sopra 2.5 su un campione piccolo è quasi sempre rumore statistico. Con 500 trade l’errore standard sul PF è ±0.4 — un PF misurato di 2.5 potrebbe essere realmente 2.1 o 2.9. Su 65.587 trade l’errore è ±0.03. Il campione fa la differenza tra illusione e statistica. Se qualcuno ti mostra un PF di 3.0+ su 200 trade, sta nella finestra dell’illusione.
Segnale 03
Più di 5 Parametri Ottimizzabili
Ogni parametro è un grado di libertà per l’ottimizzatore. Con 10 parametri e 10 valori ciascuno, testi 10¹&sup0; = 10 miliardi di combinazioni. Almeno una funzionerà per puro caso anche su dati casuali. Oracle v78 ha meno di 5 parametri ottimizzabili su 65.587 trade = rapporto 1:7.200. Un ottimizzatore con così pochi gradi di libertà non può catturare il rumore anche volendo.
Segnale 04
Risultati Instabili al Variare dei Parametri
Prendi i parametri “ottimali” e variali del ±20%. Se il PF crolla da 2.5 a 0.8, il massimo è un picco isolato — overfitting locale. Se il PF passa da 2.5 a 2.1 = altopiano stabile = edge reale. In Oracle chiamo questo “stabilità nell’intorno del massimo” ed è il primo test che faccio su ogni versione.
Segnale 05
Walk Forward Efficiency Sotto il 30%
La Walk Forward Analysis divide i dati in finestre: ottimizzi su una, testi sulla successiva. Se la WFE è sotto il 30%, meno di un terzo della performance del backtest sopravvive su dati nuovi — il sistema è overfittato. Oracle v78 ha WFE 82% — l’82% dell’edge è strutturale, non artefatto.

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

♦ UlcerZenith Oracle v78 — Anti-Overfitting by Design
78 versioni. Meno di 5 parametri.
L’overfitting è il nemico che ho combattuto per 19 anni.
65.587
Trade Reali H4
1,44
Profit Factor
82%
WF Efficiency
<5
Parametri

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?

StatoBacktestLiveSegnaliAzione
UnderfittingPF 1.0–1.1PF 0.9–1.0Pochi parametri, logica troppo sempliceAggiungi complessità mirata
Fit CorrettoPF 1.3–1.8PF 1.1–1.5WFE >70%, altopiano stabile, <5 paramMetti in produzione
OverfittingPF 2.5–5.0+PF 0.5–0.9WFE <30%, picco isolato, 8+ paramRiduci 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.

L’overfitting è come un vestito su misura cucito sulle foto di ieri. Ti sta perfettamente addosso nel passato — ma domani il tuo corpo sarà diverso, e il vestito non entrerà. — Manuel Trotta, IT Forum Rimini

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 →
Punto 01
L’overfitting cattura rumore, non segnale
Quando l’ottimizzatore ha troppi gradi di libertà (parametri), trova pattern casuali che non si ripeteranno mai. Il backtest è perfetto, il live è disastroso.
Punto 02
5 segnali d’allarme
Equity liscia, PF >2.5 su <1.000 trade, >5 parametri, instabilità al variare dei parametri, WFE <30%. 2 segnali su 5 = overfitting quasi certo.
Punto 03
Massimo 1 parametro ogni 2.000 trade
Oracle: 4 parametri su 65.587 trade = 1:9.022. Più parametri = più gradi di libertà per trovare pattern nel rumore.
Punto 04
Walk Forward Analysis: il vaccino definitivo
Impone una barriera temporale tra ottimizzazione e validazione. Oracle WFE 82% — l’overfitting non sopravvive a questa barriera.
Punto 05
Anche il tuo cervello può overfittare
Ogni volta che guardi il backtest e modifichi una regola, stai ottimizzando inconsciamente. Dopo 50 modifiche il sistema è perfetto sul passato e inutile sul futuro.

FAQ — Overfitting nel Trading

Cos’è l’overfitting nel trading algoritmico? ▶
L’overfitting nel trading algoritmico è quando i parametri di un sistema vengono ottimizzati a tal punto sui dati storici da catturare il rumore casuale anziché il segnale reale del mercato. Il risultato è un backtest con performance eccezionali (PF 3.0+, equity curve perfetta) che crolla in operatività live perché i pattern catturati erano specifici di quel dataset e non si ripeteranno. La causa principale è l’eccesso di parametri ottimizzabili rispetto al numero di trade nel dataset. Oracle v78 previene l’overfitting con meno di 5 parametri su 65.587 trade e Walk Forward Efficiency dell’82%.
Come si riconosce un sistema overfittato? ▶
I 5 segnali d’allarme principali sono: 1) Equity curve perfettamente liscia senza drawdown significativi — i mercati reali non producono rendimenti uniformi. 2) Profit Factor superiore a 2.5 su un campione di meno di 1.000 trade — statisticamente sospetto. 3) Più di 5 parametri ottimizzabili — ogni parametro è un grado di libertà per adattarsi al rumore. 4) Risultati che crollano variando i parametri anche solo del 10-20% — indica un picco isolato, non un altopiano. 5) Walk Forward Efficiency sotto il 30% — meno di un terzo della performance sopravvive su dati nuovi. Se il tuo sistema presenta 2 o più di questi segnali, è quasi certamente overfittato.
Quanti parametri sono troppi in un Expert Advisor? ▶
La regola empirica validata su 78 versioni di Oracle: massimo 1 parametro ottimizzabile ogni 2.000 trade nel dataset di backtest. Con 10.000 trade puoi permetterti 5 parametri. Con 500 trade massimo 1-2. Con 200 trade non dovresti ottimizzare nulla — il campione è troppo piccolo per qualsiasi conclusione statistica. Oracle v78 ha meno di 5 parametri su 65.587 trade = rapporto 1:7.200, estremamente conservativo. La maggior parte degli EA venduti online ha 10-15 parametri su 1.000-3.000 trade — un invito all’overfitting che quasi nessun trader retail riconosce.
La Walk Forward Analysis elimina completamente l’overfitting? ▶
La Walk Forward Analysis è il metodo più efficace contro l’overfitting ma non è infallibile da sola. Deve essere combinata con: numero limitato di parametri (meno di 5), test di stabilità nell’intorno del massimo (variazione ±30%), e simulazione Monte Carlo per il rischio di coda. In Oracle il protocollo completo richiede che una versione superi tutti e tre i test prima di essere rilasciata. Il 90% dei sistemi candidati muore durante questa validazione — e questo è esattamente il punto. Solo ciò che sopravvive a tre barriere indipendenti ha probabilità significativa di funzionare in live.
L’overfitting può avvenire anche senza ottimizzatore automatico? ▶
Sì, ed è la forma più insidiosa — la chiamo “overfitting cerebrale”. Ogni volta che guardi il backtest e decidi di modificare una regola basandoti su quello che vedi, stai usando il tuo cervello come ottimizzatore. Dopo 30-50 modifiche il sistema è perfettamente calibrato su quei dati specifici — non perché hai trovato un edge ma perché hai adattato le regole al rumore storico. La soluzione: tieni una porzione di dati (l’ultimo 20-30%) che non guardi MAI durante lo sviluppo. Solo alla fine, quando il sistema è definitivo, lo testi su quei dati per la validazione finale. In Oracle l’ultimo 20% dei dati è in un file separato — la barriera è fisica, non psicologica.
◆ Fonti Esterne e Approfondimenti
  • — 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
Manuel Trotta
◆ Scritto da

Manuel Trotta

Trader quantitativo italiano dal novembre 2007. Fondatore MTInvestments, creatore UlcerZenith Oracle v78 con 65.587 trade reali verificati. Autore di 18 libri sul trading e finanza personale: "Fare Trading con Excel" (Hoepli 2019), "Diventa Investitore Profittevole in 15 Minuti al Giorno", "Il Latte con la Mucca" (memoir 2026), più 2 volumi tecnici. Speaker IT Forum Rimini. Online dal 2007.

P.IVA 14349331000Dal 200718 Libri su Amazon ↗150K+ Follower
Disclaimer MiFID II: Il trading su strumenti finanziari comporta rischio di perdita del capitale investito, fino alla perdita totale. I dati Oracle citati si riferiscono a performance storiche verificabili su conto reale — non costituiscono garanzia di risultati futuri. Le performance passate non sono indicative di risultati futuri. Nessun contenuto costituisce consulenza finanziaria ai sensi del D.Lgs. 58/1998 (TUF). Manuel Trotta / MTInvestments P.IVA 14349331000.