Il Backtest nel Trading
Con Backtest nel trading si indica un procedimento volto a ottimizzare una strategia di trading. Il Backtest ha il compito di stimare il rendimento di una strategia di investimento in base ai dati passati. Si tratta di una simulazione statistica del comportamento che avrebbe avuto una strategia se fosse stata utilizzata nel passato. È una componente fondamentale per valutare la validità di una strategia.
Ecco alcuni punti importanti per l’utilizzo del backtest:
• L’idea di fondo del backtest è che se la strategia ha funzionato in passato, dovrebbe portare ritorni anche in futuro. Attraverso il backtest un trader può simulare la sua strategia sui dati passati invece di applicarla su incognite future e concludere se la strategia è accurata o meno.
• Il backtest è il primo passo per verificare l’efficacia di una strategia e ci consente inserire diverse variabili per migliorare il suo ritorno.
• Un backtest è più accurato se testato su lunghi periodi e se il rendimento è costante su ciascun periodo. Per esempio una strategia sviluppata durante il 2020, periodo post Covid-19 potrebbe funzionare in quel periodo, ma non farlo se analizzata coi dati passati.
Una nota molto importante però è che la performance passata non garantisce i rendimenti futuri, ma il backtest ci può aiutare ad ottimizzare la nostra strategia.
Ecco alcuni punti importanti per l’utilizzo del backtest:
• L’idea di fondo del backtest è che se la strategia ha funzionato in passato, dovrebbe portare ritorni anche in futuro. Attraverso il backtest un trader può simulare la sua strategia sui dati passati invece di applicarla su incognite future e concludere se la strategia è accurata o meno.
• Il backtest è il primo passo per verificare l’efficacia di una strategia e ci consente inserire diverse variabili per migliorare il suo ritorno.
• Un backtest è più accurato se testato su lunghi periodi e se il rendimento è costante su ciascun periodo. Per esempio una strategia sviluppata durante il 2020, periodo post Covid-19 potrebbe funzionare in quel periodo, ma non farlo se analizzata coi dati passati.
Una nota molto importante però è che la performance passata non garantisce i rendimenti futuri, ma il backtest ci può aiutare ad ottimizzare la nostra strategia.
Gli Strumenti per fare il backtesting di una strategia
Per fare backtesting il trader ha a disposizione diversi strumenti in base ai tipi di asset sui quali sta operando. È possibile fare backtest in due modi:
• Utilizzare software o piattaforme di ricerca presenti sul mercato. Esistono tantissimi strumenti gratuiti o a pagamento che ci permettono di fare il backtest di una strategia. Tra questi i più famosi sono Bloomberg, Factset o Refinitiv che però hanno costi alti per l’investitore retail. Ci sono poi strumenti gratuiti come TradingView che ci permettono di fare semplici backtest di strategie utilizzando prezzi e volumi.
• Costruzione di strumenti di backtest attraverso linguaggi di programmazione come Python o R. È possibile infatti creare backtesting utilizzando librerie già disponibili attraverso Python o altri linguaggi di programmazione. Nel nostro percorso di Python avete accesso a questi strumenti e codice.
• Utilizzare software o piattaforme di ricerca presenti sul mercato. Esistono tantissimi strumenti gratuiti o a pagamento che ci permettono di fare il backtest di una strategia. Tra questi i più famosi sono Bloomberg, Factset o Refinitiv che però hanno costi alti per l’investitore retail. Ci sono poi strumenti gratuiti come TradingView che ci permettono di fare semplici backtest di strategie utilizzando prezzi e volumi.
• Costruzione di strumenti di backtest attraverso linguaggi di programmazione come Python o R. È possibile infatti creare backtesting utilizzando librerie già disponibili attraverso Python o altri linguaggi di programmazione. Nel nostro percorso di Python avete accesso a questi strumenti e codice.
Le regole per un backtesting di successo
L’output del backtest si basa sul concetto di “Garbage in – Garbage out”. Gli input del backtest sono fondamentali per avere output accurati.
Per un backtesting di successo è necessario seguire alcune linee guida:
• Il periodo di tempo considerato deve contenere diverse condizioni di mercato. Per esempio svolgere un esercizio di backtesting su un periodo di Bull Market senza considerare periodi di Bear market può far si che la strategia non funzioni nel caso le condizioni di mercato cambiano.
• Il backtest deve considerare i costi di commissione e quello che viene chiamato slippage. Infatti non sempre riusciamo ad eseguire al prezzo che vediamo sullo schermo a causa di questo slippage.
Il test di una strategia in un periodo Out of Sample esteso ci dà la possibilità di confermare la validità della nostra strategia. Se il Backtesting da buoni risultati sui dati storici, la strategia verrà poi applicata su dati nuovi per verificare se i risultati sono costanti.
Per un backtesting di successo è necessario seguire alcune linee guida:
• Il periodo di tempo considerato deve contenere diverse condizioni di mercato. Per esempio svolgere un esercizio di backtesting su un periodo di Bull Market senza considerare periodi di Bear market può far si che la strategia non funzioni nel caso le condizioni di mercato cambiano.
• Il backtest deve considerare i costi di commissione e quello che viene chiamato slippage. Infatti non sempre riusciamo ad eseguire al prezzo che vediamo sullo schermo a causa di questo slippage.
Il test di una strategia in un periodo Out of Sample esteso ci dà la possibilità di confermare la validità della nostra strategia. Se il Backtesting da buoni risultati sui dati storici, la strategia verrà poi applicata su dati nuovi per verificare se i risultati sono costanti.
In Sample Out of Sample e il concetto di Lookahead Bias
L’output del backtest si basa sul concetto di “Garbage in – Garbage out”. Gli input del backtest sono fondamentali per avere output accurati.
Per un backtesting di successo è necessario seguire alcune linee guida:
• Il periodo di tempo considerato deve contenere diverse condizioni di mercato. Per esempio svolgere un esercizio di backtesting su un periodo di Bull Market senza considerare periodi di Bear market può far si che la strategia non funzioni nel caso le condizioni di mercato cambiano.
• Il backtest deve considerare i costi di commissione e quello che viene chiamato slippage. Infatti non sempre riusciamo ad eseguire al prezzo che vediamo sullo schermo a causa di questo slippage.
Il test di una strategia in un periodo Out of Sample esteso ci dà la possibilità di confermare la validità della nostra strategia. Se il Backtesting da buoni risultati sui dati storici, la strategia verrà poi applicata su dati nuovi per verificare se i risultati sono costanti. In Sample Out of Sample e il concetto di Lookahead Bias Per effettuare un esercizio di backtesting dobbiamo conoscere i seguenti termini:
• In Sample e Out of Sample. Il campione di dati utilizzato per il backtesting va diviso in due parti:
– Il Campione In Sample rappresenta la serie di dati (tipicamente storici) su cui vengono definite le regole del test. Rappresenta i dati utilizzati per la formulazione della nostra ipotesi e strategia di trading.
– Il Campione Out of Sample rappresenta una serie di dati non conosciuti una volta formulata la strategia. Se utilizziamo dati storici possiamo dividere la serie in due parti. Per esempio se la nostra strategia si basa su 10 anni di storia dal 2011 al 2021 possiamo utilizzare il campione 2011-2017 come serie In Sample e il campione 2018-2021 come serie Out of Sample. I risultati ottenuti facendo backtest sulle due serie devono essere correlati per far si che la strategia potrà essere applicata ai dati futuri.
È poi importante capire il concetto di “Look ahead bias”. Un backtest non sarà accurato se utilizziamo informazioni o dati in una simulazione che non sarebbero stati conosciuti o disponibili durante il periodo analizzato.
Un esempio classico di Look ahead bias è l’utilizzo delle trimestrali delle azioni americane e il prezzo. Per esempio se scarichiamo i dati trimestrali delle azioni avremmo come data di riferimento della fine del trimestre i mesi di Marzo, Giugno, Settembre e Dicembre.
Potremmo quindi commettere l’errore di utilizzare queste date come input del backtest e guardare al prezzo delle azioni successivamente a queste date. In realtà i risultati trimestrali delle aziende non vengono rilasciati alla fine del trimestre ma tipicamente diverse settimane dopo.
Potete vedere che questo backtest sta utilizzando dati e informazioni che non sarebbero stati presenti alla data utilizzata e quindi il risultato di questo esercizio non appare corretto.
Per un backtesting di successo è necessario seguire alcune linee guida:
• Il periodo di tempo considerato deve contenere diverse condizioni di mercato. Per esempio svolgere un esercizio di backtesting su un periodo di Bull Market senza considerare periodi di Bear market può far si che la strategia non funzioni nel caso le condizioni di mercato cambiano.
• Il backtest deve considerare i costi di commissione e quello che viene chiamato slippage. Infatti non sempre riusciamo ad eseguire al prezzo che vediamo sullo schermo a causa di questo slippage.
Il test di una strategia in un periodo Out of Sample esteso ci dà la possibilità di confermare la validità della nostra strategia. Se il Backtesting da buoni risultati sui dati storici, la strategia verrà poi applicata su dati nuovi per verificare se i risultati sono costanti. In Sample Out of Sample e il concetto di Lookahead Bias Per effettuare un esercizio di backtesting dobbiamo conoscere i seguenti termini:
• In Sample e Out of Sample. Il campione di dati utilizzato per il backtesting va diviso in due parti:
– Il Campione In Sample rappresenta la serie di dati (tipicamente storici) su cui vengono definite le regole del test. Rappresenta i dati utilizzati per la formulazione della nostra ipotesi e strategia di trading.
– Il Campione Out of Sample rappresenta una serie di dati non conosciuti una volta formulata la strategia. Se utilizziamo dati storici possiamo dividere la serie in due parti. Per esempio se la nostra strategia si basa su 10 anni di storia dal 2011 al 2021 possiamo utilizzare il campione 2011-2017 come serie In Sample e il campione 2018-2021 come serie Out of Sample. I risultati ottenuti facendo backtest sulle due serie devono essere correlati per far si che la strategia potrà essere applicata ai dati futuri.
È poi importante capire il concetto di “Look ahead bias”. Un backtest non sarà accurato se utilizziamo informazioni o dati in una simulazione che non sarebbero stati conosciuti o disponibili durante il periodo analizzato.
Un esempio classico di Look ahead bias è l’utilizzo delle trimestrali delle azioni americane e il prezzo. Per esempio se scarichiamo i dati trimestrali delle azioni avremmo come data di riferimento della fine del trimestre i mesi di Marzo, Giugno, Settembre e Dicembre.
Potremmo quindi commettere l’errore di utilizzare queste date come input del backtest e guardare al prezzo delle azioni successivamente a queste date. In realtà i risultati trimestrali delle aziende non vengono rilasciati alla fine del trimestre ma tipicamente diverse settimane dopo.
Potete vedere che questo backtest sta utilizzando dati e informazioni che non sarebbero stati presenti alla data utilizzata e quindi il risultato di questo esercizio non appare corretto.
Il problema dell’Overfitting
Un altro degli errori più comuni sul backtesting è rappresentato dall’Overfitting. Si parla di overfitting quando cerchiamo di ottimizzare i risultati su un campione di dati limitato. Questo può ritornare risultati positivi su questo campione ma non necessariamente questi risultati risulteranno validi su altri campioni di dati o sui dati attuali.
Quindi per concludere esistono aspetti positivi e negativi del Backtesting e questo tipo di esercizio è molto importante per capire se una strategia di trading potrà funzionare anche in futuro.
Quindi per concludere esistono aspetti positivi e negativi del Backtesting e questo tipo di esercizio è molto importante per capire se una strategia di trading potrà funzionare anche in futuro.