Errori Comuni nella Pratica del Backtesting
Cos’è il backtesting (e cosa non è)
Il backtesting è il processo di applicare una regola di trading predefinita o un framework decisionale ai dati storici del mercato per verificare come si sarebbe comportato. La parola chiave è predefinita: un backtest ha significato solo quando la logica, gli input e il metodo di calcolo sono stabiliti prima di eseguirlo.
Un backtest non è una garanzia di risultati futuri. Le relazioni storiche possono cambiare, e i tuoi risultati sono realistici quanto le tue assunzioni su esecuzione e condizioni di trading. Se il tuo obiettivo è imparare, considera il backtesting come un esercizio di misurazione: testi un’ipotesi specifica in condizioni modellate specifiche.
Errori comuni e perché sono importanti
-
Non separare le assunzioni dal risultato
Un malinteso frequente è considerare l’esito del backtest come verità di mercato. In pratica, l’esito dipende dalle tue assunzioni: come vengono modellati gli eseguiti, come vengono gestiti spread e commissioni, e come vengono eseguiti gli ordini. Se non dichiari queste assunzioni, due persone possono eseguire la “stessa” idea e ottenere risultati diversi. -
Overfitting e ricerca di parametri
L’overfitting si verifica quando la regola è ottimizzata così strettamente sui dati passati da catturare il rumore invece di un comportamento ripetibile. Un segnale è il miglioramento ripetuto dei risultati sullo stesso dataset, con conseguente perdita di prestazioni altrove. Anche senza “barare”, un’affinatura iterativa guidata dal backtest può trasformare il processo in un curve-fitting. -
Selezione di periodi favorevoli (cherry-picking)
Un altro errore è testare solo su periodi storici favorevoli. A volte ciò è accidentale (ad esempio, usando un periodo che casualmente corrisponde a un regime specifico). Il risultato è un backtest che può sembrare convincente, ma riflette un effetto di selezione piuttosto che un effetto ampiamente applicabile. -
Utilizzo di modelli di esecuzione irrealistici
Molti backtest semplificano gli eseguiti: potrebbero assumere un’esecuzione perfetta a un prezzo ideale, ignorare la latenza o trattare lo slippage come costante quando non lo è. Questo può far apparire i risultati più forti di quanto sarebbero sotto vincoli reali. Anche se la logica è corretta, la misurazione delle prestazioni può essere errata. -
Ignorare costi e vincoli pratici
I costi includono commissioni, spread e qualsiasi altra spesa di trading costante. I vincoli includono limiti sul posizionamento degli ordini e se la regola può effettivamente generare posizioni nei momenti in cui il backtest lo assume. Se questi elementi sono omessi o approssimati in modo approssimativo, i rendimenti possono essere sovrastimati. -
Confondere risultati simili a correlazioni con la qualità delle decisioni
Il backtesting può produrre risultati attraenti a causa del dataset piuttosto che della regola. Ad esempio, una regola che si attiva in un regime di tendenza può performare bene nel campione ma fallire quando le condizioni cambiano. Un errore comune è scambiare “una buona performance” per “un processo decisionale stabile”.
Limitazioni e rischi da aspettarsi
La limitazione più grande è che il backtesting è un modello della realtà, non la realtà stessa. Esecuzione, liquidità e microstruttura del mercato possono differire nel tempo e negli ambienti. Inoltre, i dati storici potrebbero essere incompleti o incoerenti (ad esempio, mancanza di certi comportamenti intraday), il che può distorcere le misurazioni.
Una seconda limitazione è che le metriche di performance dipendono dalla progettazione del test. Cambiare la frequenza dei dati, il calcolo dei rendimenti, l’ordine delle operazioni o il modo in cui i trade sono allineati può alterare i risultati. Pertanto, anche se il codice del tuo backtest è corretto, la conclusione potrebbe non essere robusta.
Infine, i risultati possono variare con le specifiche condizioni di mercato e con il modo in cui costi ed esecuzione sono rappresentati. Per questo motivo, un singolo backtest raramente dovrebbe essere considerato una risposta definitiva.
Controlli di verifica (neutrali e autonomi)
Usa controlli neutrali per verificare se un risultato di backtest è robusto piuttosto che accidentale.
- Specifica esplicitamente le assunzioni: documenta come modelli spread, slippage, commissioni ed esecuzione degli ordini.
- Mantieni i parametri fissi per la valutazione: ottimizza solo in una fase separata, quindi valuta senza ulteriori modifiche.
- Testa su più segmenti temporali: confronta le prestazioni in diversi regimi storici.
- Esegui test di stress su costi ed esecuzione: varia le assunzioni di slippage in intervalli plausibili per vedere se la conclusione cambia.
- Usa valutazioni fuori dal campione (out-of-sample) o di riserva (holdout): verifica che il miglioramento non sia presente solo nei dati usati per creare la regola.
Se questi controlli mostrano grande instabilità, ciò rappresenta un risultato utile: suggerisce che la logica della strategia potrebbe essere sensibile alle scelte di modellazione o alle condizioni di mercato. Il “fallimento” è informazione sulla robustezza, non un vicolo cieco.