Overfitting nelle strategie di trading: come riconoscerlo
Overfitting e curve fitting nelle strategie di trading: troppi parametri, data snooping, in-sample vs out-of-sample, walk-forward, test di robustezza e segnali d'allarme.
Uno dei modi più sicuri per costruire una strategia che sembra brillante sul grafico e delude dal vivo è l'overfitting. Più gli strumenti di test diventano semplici e veloci, più è facile caderci. In questo articolo vediamo cos'è l'overfitting, perché succede e quali verifiche ti aiutano a distinguere un edge reale dal rumore.
Cos'è l'overfitting
L'overfitting (nel trading spesso chiamato curve fitting) si verifica quando una strategia impara il rumore dei dati storici invece dello schema che si ripete. Il risultato: performance eccellenti sui dati su cui è stata costruita e deboli su dati nuovi.
I dati di prezzo contengono un po' di "segnale" e moltissimo rumore casuale. Ogni periodo storico include eventi irripetibili: un giorno con un annuncio a sorpresa di una banca centrale, una settimana di volatilità anomala, un trend particolarmente lungo. Una strategia calibrata per sfruttare proprio quegli eventi sembrerà perfetta col senno di poi, ma quegli eventi non si ripeteranno allo stesso modo.
Troppi parametri
Ogni parametro di una strategia è una "manopola" che puoi regolare: lunghezza della media mobile, distanza dello stop, orario di inizio, soglia di un indicatore. Con due parametri è difficile adattarsi al passato. Con dieci puoi "spiegare" quasi qualsiasi serie di dati.
Un esempio ipotetico: una strategia con una media mobile a 37 barre, uno stop di 23 tick, entrate solo tra le 09:47 e le 11:12 e solo quando l'RSI è sotto 41. Ognuno di questi numeri è stato scelto perché dava il miglior risultato storico. La domanda chiave: perché 37 e non 35 o 40? Se non hai una risposta sensata oltre a "perché funzionava meglio", è un segnale d'allarme.
Regola pratica: meno parametri e più trade nel test, più il risultato è affidabile.
Data snooping
Anche quando ogni singola strategia ha pochi parametri, il problema si ripresenta se testi molte idee sugli stessi dati. Prova cento varianti e alcune sembreranno ottime per puro caso. È il cosiddetto data dredging o data snooping.
Si insinua anche senza volerlo: testi un'idea, non funziona, cambi un dettaglio, ritesti, e così via. Dopo cinquanta giri i dati sono già "filtrati" dentro la strategia, anche se non hai mai lanciato un'ottimizzazione automatica. Annota quante varianti hai testato: quel numero conta quasi quanto il risultato.
In-sample vs out-of-sample
Lo strumento di base contro l'overfitting è separare i dati:
- In-sample: i dati su cui sviluppi e calibri la strategia.
- Out-of-sample: dati che metti da parte e non tocchi affatto durante lo sviluppo.
Solo quando la strategia è "congelata" la fai girare sui dati out-of-sample. Se le performance crollano, è probabile che ci sia overfitting. Importante: se poi torni indietro, modifichi la strategia e ritesti sugli stessi dati, quei dati non sono più davvero out-of-sample.
Walk-forward test
Il walk-forward estende l'idea. Dividi lo storico in finestre consecutive. A ogni passo calibri su una finestra e testi sulla successiva, poi sposti in avanti entrambe le finestre e ripeti.
- Calibra sull'anno 1, testa sul trimestre successivo.
- Spostati in avanti: calibra sul nuovo periodo, testa sul trimestre dopo.
- Unisci tutti i periodi di test in un'unica curva.
La curva risultante simula una situazione realistica in cui ricalibri di tanto in tanto e poi fai trading su un futuro che non conosci. Se appare molto peggiore dell'ottimizzazione completa, è un'informazione importante.
Test di robustezza
Oltre alla separazione dei dati, ci sono alcune verifiche semplici che qualsiasi trader può fare:
- Intorno dei parametri: sposta ogni parametro un po' in su e un po' in giù. Una strategia robusta mostra risultati simili su un ampio intervallo. Se funziona un solo valore e i suoi "vicini" perdono, hai trovato un picco fortunato.
- Mercati correlati: se la strategia funziona su NQ, come si comporta su ES? Non deve essere identica, ma un crollo totale solleva dubbi.
- Timeframe diversi: un piccolo cambio di timeframe non dovrebbe trasformare una strategia profittevole in una in perdita.
- Periodi diversi: controlla ogni anno separatamente. Il profitto arriva da un solo breve tratto?
- Costi più severi: aggiungi più slippage e commissioni più alte. Un edge reale dovrebbe resistere. Approfondimento in backtest vs trading dal vivo.
- Togli i trade migliori: elimina i cinque trade più profittevoli. Se sparisce tutto il profitto, la strategia dipende dalla fortuna.
Segnali che la tua strategia è in overfitting
- Una equity curve quasi perfettamente liscia, senza periodi difficili.
- Molti parametri con valori stranamente precisi.
- Pochi trade rispetto al numero di parametri.
- Buone performance solo in un intervallo di impostazioni molto ristretto.
- Risultati che cambiano molto ogni volta che aggiungi un po' di storico.
- Regole speciali aggiunte per "correggere" specifiche perdite passate.
- Un forte divario tra in-sample e out-of-sample.
Punti chiave
- Overfitting significa imparare il rumore invece di uno schema, e sembra ottimo solo col senno di poi.
- Meno parametri e più trade sono una difesa di base.
- Conserva dati out-of-sample e non toccarli finché la strategia non è congelata.
- Walk-forward e verifiche sull'intorno dei parametri smascherano i picchi fortunati.
- Anche una strategia che supera ogni verifica ha bisogno di un forward test e di un attento dimensionamento della posizione.
Nessun test garantisce il successo futuro, quindi la fase dopo il laboratorio conta altrettanto. WeCore ti permette di far girare una strategia o degli alert in modalità simulazione con regole di rischio automatiche, così puoi vedere come si comporta su dati nuovi prima di rischiare un conto reale. Per un'introduzione generale, vedi cos'è il trading algoritmico.