Cos’è il backtesting (e cosa non è)
Il backtesting è il processo di applicare una regola di trading predefinita o un framework decisionale a dati storici di mercato per vedere come potrebbe aver funzionato. La parola chiave è predefinita: un backtest è significativo solo quando la logica, gli input e il metodo di calcolo sono impostati prima di eseguirlo.
Un backtest non è una garanzia di risultati futuri. Le relazioni storiche possono cambiare e i tuoi risultati sono realistici solo quanto lo sono le tue assunzioni su esecuzione e condizioni di trading. Se il tuo obiettivo è imparare, considera il backtesting come un esercizio di misurazione: test i una specifica ipotesi in condizioni modellate specifiche.
Errori comuni e perché contano
-
Non separare le assunzioni dall’esito Un fraintendimento frequente è trattare l’esito del backtest come la verità del mercato. Nella pratica, l’esito dipende dalle tue assunzioni: come vengono modellati i riempimenti (fills), 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 dei parametri L’overfitting avviene quando la regola viene regolata in modo così stretto sui dati passati da catturare rumore invece di un comportamento ripetibile. Un segnale è il miglioramento dei risultati ripetutamente sullo stesso dataset mentre altrove si perde performance. Anche senza “barare”, un affinamento iterativo guidato dal backtest può trasformare il processo in un curve-fitting.
-
Cherry-picking di periodi temporali Un altro errore è testare solo su una storia favorevole. A volte è accidentale (per esempio, usare un periodo che per caso coincide con un determinato regime). La conseguenza è un backtest che può sembrare convincente, ma riflette un effetto di selezione invece di un effetto applicabile in modo più ampio.
-
Usare modelli di esecuzione non realistici Molti backtest semplificano i fills: possono assumere un’esecuzione perfetta a un prezzo ideale, ignorare la latenza o trattare lo slippage come costante quando non lo è. Questo può far sembrare i risultati più forti di quanto sarebbero sotto vincoli reali. Anche se la logica è corretta, la misurazione della performance può risultare distorta.
-
Ignorare costi e vincoli pratici I costi includono commissioni, spread e qualsiasi altra spesa di trading coerente. I vincoli includono limiti sul collocamento degli ordini e se la regola può effettivamente generare posizioni nei momenti che il backtest assume. Se vengono omessi o approssimati in modo troppo libero, i rendimenti possono essere sovrastimati.
-
Confondere esiti simili alla correlazione con qualità decisionale Il backtesting può produrre risultati che sembrano attraenti grazie al dataset più che alla regola. Per esempio, una regola che scatta in un regime di trend può funzionare bene in sample ma fallire quando le condizioni cambiano. Una modalità di fallimento comune è scambiare “una buona esecuzione” per “un processo decisionale stabile”.
Limitazioni e rischi che dovresti aspettarti
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 tra ambienti diversi. Inoltre, i dati storici possono essere incompleti o incoerenti (per esempio, mancanti di alcuni comportamenti intraday), il che può distorcere le misurazioni.
Una seconda limitazione è che le metriche di performance dipendono dal design del test. Cambiare la frequenza dei dati, il calcolo dei rendimenti, l’ordine delle operazioni o il modo in cui le operazioni vengono allineate può alterare gli esiti. Pertanto, anche se il tuo codice di 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 vengono rappresentati. Per questo motivo, un singolo backtest dovrebbe raramente essere trattato come una risposta finale.
Verifiche di controllo (neutrali e autosufficienti)
Usa verifiche neutrali per confermare se un risultato di backtest è robusto o se è solo un caso.
- Specifica le assunzioni in modo esplicito: documenta come modelli spread, slippage, commissioni ed esecuzione degli ordini.
- Mantieni i parametri fissi per la valutazione: sintonizza solo in una fase separata, poi valuta senza ulteriori modifiche.
- Testa su più segmenti temporali: confronta la performance in diversi regimi storici.
- Esegui stress test su costi ed esecuzione: varia le assunzioni sullo slippage entro intervalli plausibili per vedere se la conclusione cambia.
- Usa valutazioni fuori campione o holdout: verifica che il miglioramento non sia presente solo nei dati usati per costruire la regola.
Se queste verifiche mostrano una grande instabilità, è un risultato prezioso: 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.
DOCUMENT END