Uno dei principali nemici dei trader sistematici è l’overfitting. In quest’articolo spiegheremo cos’è, quali sono le sue cause e come evitarlo quando si sviluppa un trading system.
Letteralmente “over-fitting” significa sovra-ottimizzazione.
Per capire cosa sia e in cosa consista l’overfitting è fondamentale, dunque, avere ben chiaro il concetto di “ottimizzazione”.
Come suggerisce il nome, l’ottimizzazione è un processo che tende ad “ottenere dei miglioramenti”.
Nel trading, ottimizzare un sistema significa modificare alcuni input, ossia alcuni parametri, per vedere quali miglioramenti si ottengono nei risultati.
L’ottimizzazione rappresenta una delle fasi più importanti nello sviluppo di un trading system. Il suo obiettivo principale è quello di verificare la stabilità e robustezza di un sistema in base all’inserimento di determinati input.
La scelta e variazione dei parametri, tuttavia, se fatta in modo eccessivo e strumentale, può alterare notevolmente l’esito di una strategia.
Facciamo un esempio.
Se volessimo valutare la velocità di scorrimento su una strada particolarmente trafficata e prendessimo come riferimento gli orari di punta, sicuramente avremmo dei valori negativi.
Ma se restringessimo l’analisi ai soli giorni festivi, inevitabilmente i dati diventerebbero molto più positivi. La strada è sempre quella, magari con le sue buche, i suoi restringimenti e il suo flusso quotidiano di traffico ma, semplicemente, manipolando alcuni parametri, abbiamo ottenuto il miglior risultato possibile.
L’overfitting consiste proprio nel forzare i parametri modificabili di un sistema con l’obiettivo di trovare la combinazione in grado di generare i profitti migliori.
Come abbiamo anticipato, l’overfitting è una procedura di sovra-ottimizzazione di una strategia al fine di ottenere la combinazione che offre i migliori risultati possibili.
L’esito di questo processo è un’equity line che appare generalmente molto performante.
Il problema, però, è che tali performance non sono il frutto di una strategia realmente solida e robusta ma derivano, come nell’esempio del traffico, da un’eccessiva manipolazione dei parametri.
Ciò significa che tali risultati possono essere ottenuti solo in quel modo e in quello specifico time frame e non sono significativi per valutare la reale efficacia e affidabilità del sistema nel futuro.
Oltre alla manipolazione dei parametri, l’overfitting può riguardare anche la scelta eccessivamente selettiva dei sottostanti da includere in un trading system.
Supponiamo, ad esempio, di voler operare sui titoli del Dow Jones o del S&P500.
In questi casi, l’atteggiamento più corretto sarebbe quello di inserire un paniere nella sua interezza e non limitarsi solo ai titoli che durante i backtest abbiano mostrato le performance migliori.
La selezione dei titoli con le equity migliori, infatti, rischia di produrre dei risultati falsati, difficili da ripetersi nel futuro.
Alcune volte, tuttavia, può capitare di essere costretti a fare delle riduzioni ad un paniere, magari per motivi di budget.
In questi casi, per evitare di cadere nell’overfitting o di sovraesporsi, è consigliabile procedere in maniera logica, aggiungendo o eliminando le diverse azioni sulla base di criteri oggettivi, come i volumi e la liquidità del sottostante.
In questo modo, è più facile ottenere dei risultati “veritieri”, che abbiano maggiori possibilità di ripetersi anche nel futuro.
Ricorda che fare previsioni sulla profittabilità di una strategia sovra-ottimizzata non solo è sbagliato ma è anche profondamente rischioso.
Il principale pericolo per un sistema iper-ottimizzato è quello di non riuscire ad adattarsi ai mercati reali, causando così gravi perdite al trader.
Generalmente tali perdite si manifestano appena il sistema viene messo live, tuttavia può capitare che, inizialmente, il sistema produca qualche guadagno per poi smettere di funzionare.
In questi casi si dice che il sistema “si è rotto”.
Oltre all’overfitting, però, i sistemi possono smettere di funzionare per altri motivi, ad esempio per l’esaurimento delle inefficienze trovate in fase di sviluppo.
Sono proprio le inefficienze dei mercati, infatti, che consentono ai trader di guadagnare.
Il problema, però, è che tali inefficienze possono esaurirsi, sia per il comportamento degli altri trader sia per i cambiamenti inevitabili dei mercati.
Di conseguenza, anche gli edge non saranno più sfruttabili come in passato.
Cosa fare, dunque, quando un sistema smette di funzionare?
Nel video seguente, Andrea Unger spiega come inserire delle regole logiche nel sistema senza forzare la mano e mostra, attraverso un esempio pratico, cosa fare quando i mercati annullano gradualmente i livelli di inefficienza scoperti in fase di sviluppo.
Come vedrai nel video, l’unico modo per evitare l’overfitting e per sfruttare più a lungo possibile le inefficienze dei mercati è quello di studiare e cercare costantemente nuovi spunti operativi e nuovi strumenti su cui operare.
Per evitare di cadere nell’overfitting è importante:
Procedere sempre in maniera logica e razionale seguendo un metodo scientifico
Evitare di introdurre eccessivi vincoli e regole nel sistema
Ottimizzare solo i parametri essenziali
Manipolare sapientemente gli input in fase di sviluppo (non focalizzarsi solo sull'ottenimento dei risultati migliori)
Seguendo questi consigli è possibile sviluppare dei sistemi che siano realmente affidabili e robusti.
Ricorda che l’obiettivo dell’ottimizzazione non deve essere quello di trovare la combinazione di parametri che nel passato ha prodotto le performance migliori, ma quella che dimostra la migliore stabilità e che è in grado di produrre un sistema robusto anche out of sample.
Vuoi imparare a capire quando un sistema è robusto oppure no? Clicca qui.
L’overfitting rappresenta uno dei pericoli maggiori in cui può cadere un trader, soprattutto agli inizi.
Esso consiste nella sovra-ottimizzazione di un sistema al fine di ottenere la combinazione di input in grado di restituire i risultati migliori.
Tuttavia, manipolare o scegliere discrezionalmente i parametri di un trading system per ottenere il net profit più alto è un errore molto grave.
In questo modo, infatti, si crea un sistema che si adatta perfettamente ai dati del passato ma che, difficilmente, è in grado di essere profittevole out of sample.
È bene ricordare che l’obiettivo di un’ottimizzazione dovrebbe essere quello di verificare l’affidabilità e stabilità di un sistema e la sua capacità di essere potenzialmente profittevole anche nel futuro.
Per questo, in fase di sviluppo di una strategia è fondamentale procedere in modo logico, seguendo un metodo scientifico senza cercare, a tutti i costi, le combinazioni di input che producono le equity più belle.
Manipolare i parametri di un trading system per ottenere il net profit migliore è, infatti, un errore che mina l’affidabilità futura del sistema.
Soltanto studiando e seguendo un metodo dai risultati dimostrati è possibile evitare l’overfitting e tutti gli altri errori in cui cade la maggior parte dei trader.