Cos’è l’Overfitting nel Trading Sistematico?
L’overfitting è uno degli elementi principali a cui fare attenzione nel momento in cui vengono sviluppate strategie di trading.
È un termine che per alcuni sarà già noto e per altri probabilmente no.
Ma se dovessi dare una definizione a questa parola, possiamo dire che si tratta di un errore di modellazione, in questo caso di sviluppo di strategie nel quale ci si adatta troppo ai dati del passato.
E commettere questo errore porta a degli ottimi risultati nella fase di test, ma ad una scarsa capacità di interpretare i dati futuri e di conseguenza ottenere profitti sui dati non noti.
All’interno di questo video sicuramente entreremo più nel dettaglio su questo aspetto, ma una cosa fondamentale da capire è che dobbiamo mettere da parte l’ego e invece di pensare “Guarda quanto sono stato bravo e intelligente a creare questa strategia sul passato”, dobbiamo costringerci a creare un qualcosa che possa funzionare in futuro.
Magari non sarà una equity line bellissima da vedere, ma l’importante è che abbia, passatemi il termine, una sorta di valore predittivo sul futuro.
A questo punto direi che possiamo passare allo schermo e andare più nel dettaglio su questi concetti, analizzando ovviamente anche degli esempi.
Quindi entriamo un po’ più nel dettaglio sul concetto dell’overfitting e facciamolo partendo da una semplice domanda.
Backtest Trading: perché i risultati possono ingannare
Supponiamo innanzitutto di aver sviluppato una strategia utilizzando la nostra MultiCharts su uno degli strumenti che più preferiamo.
E abbiamo utilizzato uno storico di diversi anni, per esempio, come solitamente facciamo a partire dal 2010, per la maggior parte delle strategie.
E quello che notiamo lanciando un’ottimizzazione… Cioè, mi spiego meglio.
Supponiamo di stare utilizzando un indicatore, lanciando un’ottimizzazione, io mi rendo conto che ci sono alcuni valori che sono meglio di altri per poter utilizzare quell’indicatore e i risultati migliori si ottengono utilizzando appunto il valore X, un valore qualunque.
Bene, tale valore X sarà effettivamente il migliore anche in futuro?
Beh, vi porto un esempio di quello che tendenzialmente succede nella vita di tutti i giorni.
Qui sono andato a prendere i risultati del Real Madrid in campionato.
Sì, mi rendo conto che un esempio che magari ad alcuni non piacerà, soprattutto ai tifosi del Barcellona, però quello che possiamo notare è che a partire dalla stagione del 2006-2007 fino alla stagione più recente, il Real Madrid in campionato si è posizionato al primo posto.
Poi ogni tanto al secondo posto, ogni tanto al terzo posto, di nuovo al primo posto e così via.
Cioè, quello che ci viene naturale pensare è che essendo una buona squadra, molto probabilmente anche l’anno prossimo si posizionerà al primo, secondo o terzo posto.
O comunque una posizione non troppo lontana da quella.
Io qui, come dicevo, vi ho portato un esempio calcistico, ma si potrebbe applicare esattamente lo stesso esempio a qualunque altro tipo di sport.
Prendiamo per esempio i piloti di Formula uno, le scuderie di Formula uno.
Tendenzialmente la miglior scuderia di quest’anno non farà malissimo l’anno prossimo.
Il Mister Olimpia, succede che magari dominino il Mister Olimpia per vari anni e così via.
Perché i mercati finanziari sono diversi dal mondo reale
Ma a questo punto vi pongo un’altra domanda. Cioè vale lo stesso concetto per i mercati finanziari?
E quello che ho provato a fare è rispondere con questa slide.
Qui abbiamo testato il Donchian Channel, quindi un indicatore di trading, a partire dal 2010 al 2025 e praticamente sono andato a valutare, ottimizzando il periodo da 5 a 20, e scegliendo il migliore di net profit su drawdown, quale sarebbe stato il miglior periodo da utilizzare per il Duncan Channel ogni anno.
Beh, fatemi dire che quello che già qui notiamo e che c’è una sorta di variabilità.
Per esempio, nel 2010 il miglior risultato in termini di net profit su drawdown si sarebbe ottenuto utilizzando il Donchian Channel a 13 periodi.
Nel 2016 il Donchian Channel a periodi, nel 2019 a 17 periodi, e così via.
Non c’è un valore standard che bene o male funziona anno dopo anno.
E qual è il concetto chiave che noi riusciamo a trarre da questo?
Che come dicevo prima, noi siamo abituati a pensare che il top performer di oggi sia il top performer di domani.
Ed effettivamente questo si verifica spesso nelle situazioni della vita quotidiana, a meno di cambiamenti o eventi che condizionano il risultato.
Pensiamo per esempio ad un atleta ammalato, a uno scudetto rubato o qualcosa di questo tipo, ma nei mercati finanziari non succede esattamente lo stesso, perché esistono tantissime variabili che possono influenzare il mercato.
Basti pensare ai tassi, alle guerre, all’inflazione, a nuove normative e chi più ne ha più ne metta.
Il concetto è che i mercati finanziari di per sé sono dominati da una sorta di randomicità che purtroppo non possiamo intercettare.
Come evitare l’Overfitting nei Trading System
E a questo punto quale può essere una possibile soluzione?
Beh, una possibile soluzione può essere quella di vincolarsi il meno possibile ai parametri, o comunque agli input, di quella determinata strategia, ma dare più importanza al concetto che stiamo tradando.
Adesso lo vediamo meglio con un esempio, perché detta così sembra più un concetto filosofico che altro, ma quello che sto cercando di spiegarvi è che se la strategia funziona con il Donchian Channel a 20 periodi, funziona anche con il Donchian Channel a 22 periodi e anche con il Donchian Channel a 18 periodi, io sto dando importanza al fatto che tendenzialmente magari funziona il trend following su quel determinato strumento, non il fatto che la strategia funzioni perché ho utilizzato quel preciso parametro per utilizzare il Donchian Channel, e questo è molto importante e come dicevo prima, vediamone un esempio.
Esempio pratico di strategia trading su MultiCharts
Allora eccoci qui come al solito sul Power Language Editor di MultiCharts e qui vi propongo una semplice strategia.
Questa strategia utilizza un pattern su un timeframe giornaliero ed entra su un timeframe intraday più basso, per esempio cinque minuti, sulla base di questo pattern.
Nello specifico, se abbiamo avuto una candela di indecisione o comunque incertezza, che in questo caso ho spiegato in questa maniera qui: il body della candela giornaliera è minore del 25% del range totale di quella determinata candela, allora probabilmente mi sto trovando in una condizione di indecisione.
Cioè immaginatevi che il prezzo magari si è mosso durante tutta la sessione, però la differenza effettiva tra apertura e chiusura è relativamente piccola.
Ecco, se si verifica questa condizione sul timeframe giornaliero, allora il giorno successivo aprirò una posizione long alla rottura del massimo della sessione precedente, e aprirò una posizione short alla rottura del minimo della sessione precedente.
Qui non ho impostato uno stop loss o un take profit, ma semplicemente usciamo, per quanto riguarda la posizione long, se il prezzo ritorna sui livelli di apertura di sessione.
Quindi fondamentalmente c’è stato breakout, ma il breakout non sta andando molto lontano e il prezzo sta rintracciando, allora io chiudo la posizione long.
Viceversa, per quanto riguarda la posizione short, se torniamo sui livelli di apertura chiudo anche la posizione short.
Per quanto riguarda altri livelli di uscita sono andato ad impostare un set exit on close, quindi usciremo all’ultimo prezzo battuto della sessione.
Andiamo a questo punto a vedere come performa la strategia su un portafoglio abbastanza diversificato.
Test di una strategia su un portafoglio diversificato
Ho cercato di inserire un po’ di strumenti diversi tra loro.
Per esempio c’è il future del mini S&P500, il DAX, il rame, il Gold. In questo caso ho inserito questi due metalli perché tendenzialmente il gold ha avuto un andamento piuttosto marcato in trend following negli ultimi anni.
Viceversa il rame un po’ possiamo dire che ha compensato, dato che abbiamo visto più un andamento mean reverting con dei prezzi che tornano sui livelli medi una volta raggiunti determinati eccessi.
Poi c’è il Crude Oil, il Natural Gas per avere un po’ di energetici, e altre materie prime come la soia, il Lean Hogs, e il future sull’euro-dollaro per avere anche un future valutario che ancora, ripeto, ci serve soltanto per una questione di diversificazione del portafoglio.
Bene, vediamo allora come performa questa strategia. Ed ecco qua i risultati su tutto il portafoglio.
Ci tengo innanzitutto a sottolineare due cose.
La prima è che sono risultati che non tengono in considerazione le commissioni e lo slippage e quant’altro, ma non è un qualcosa che mi interessa fare in questo momento.
Molto probabilmente su tutti gli strumenti si otterrebbe un average trade che non sarebbe abbastanza capiente per poter mettere queste strategie live.
Soprattutto considerando che si tratta di una strategia intraday che di conseguenza stando poco mercato mediamente guadagna poco.
Ma quello che mi interessa è valutare se questo semplice concetto possa funzionare su un portafoglio abbastanza diversificato.
L’altra cosa importante da notare è che noi vediamo che nell’ultimo periodo questo portafoglio ha performato molto, molto bene, e ci tengo anche qui a sottolineare che in realtà queste performance molto probabilmente sono dovute al future del Gold, che ha avuto questo andamento particolarmente esplosivo.
E quindi non è che la strategia ha fatto scintille su tutti gli strumenti.
Detto questo, andiamo a vedere qualche risultato.
Per esempio noi già qui vediamo che senza considerare slippage e commissioni, su tutti gli strumenti questa strategia avrebbe generato profitto.
Prendiamo per esempio il Crude Oil da analizzare e noi vediamo che qui sì, si tratta di una curva meno bella rispetto a quella curva totale di portafoglio.
Questo noi lo sappiamo perché tendenzialmente l’obiettivo del portafoglio è quello di smussare un po’ i drawdown, però si tratta tutto sommato di un equity crescente, nonostante la semplicità della strategia.
Vediamo per esempio il Natural Gas.
Anche sul Natural Gas abbiamo una curva abbastanza buona.
Prendiamo magari un altro esempio come il future dell’euro-dollaro.
Che il future dell’euro-dollaro tendenzialmente uno strumento più mean reverting che anche negli ultimi anni ha fatto molta fatica da un punto di vista proprio di operatività lato trading sistematico.
Invece qui vediamo che questa strategia tutto sommato non performa così male, nonostante ripeto sia uno strumento magari più adatto a logiche mean reverting.
Questa strategia è davvero Overfitting?
Quindi a questo punto che cosa possiamo dire di questa strategia che abbiamo appena analizzato?
Si tratta di overfitting? Beh, in realtà mi viene anche difficile trovare un parametro qui da poter essere overfittato.
Qualcuno potrebbe dire lo 0,25 come percentuale del range.
Vi assicuro che se mettete lo 0,20, se mettete lo 0,30, la strategia performa bene uguale.
Anzi io qui come vedete neanche l’ho inserito come input da poter essere ottimizzato, ho semplicemente preso il concetto che vuole che sia minore di un quarto del range totale.
E come vedete mi sto concentrando più sul concetto, cioè che cosa sto cercando di catturare effettivamente?
Una fase di indecisione, di incertezza dettata da questo pattern, dopo la quale mi aspetto un movimento rialzista o ribassista di una certa entità.
La strategia non sta in piedi perché ho utilizzato il valore 78,26 del Donchian Channel, al quale ho sottratto una media mobile calcolata su 8 periodi fa a 16 periodi, con un’esponenziale che si incrociava o altre cose strane di questo tipo.
Idee semplici che devono catturare la logica del mercato.
Torniamo a questo punto sulle slide perché c’è un altro esempio interessante da vedere.
Ed eccoci qua.
La regola più importante per creare strategie robuste
Allora un’altra cosa importantissima, oltre a quello che abbiamo appena visto, è quella di usare sempre il buon senso nello sviluppo di una strategia.
L’ho detto all’inizio del video, è fondamentale mettere da parte l’ego.
Non mi interessa tirare fuori una strategia che sia stata il più bella possibile sui dati passati.
Voglio creare un qualcosa che abbia la maggior probabilità di durare in futuro.
Il mio obiettivo non è tirare fuori dieci strategie spettacolari, ma se sviluppo dieci strategie, voglio che la maggior parte di queste possa darmi risultati in futuro, anche se magari non saranno risultati ottimi o bellissimi o tutto quello che volete, ma deve sopravvivere in futuro, se no, fondamentalmente stiamo solo qui a giocare con i dati.
Detto questo, analizziamo questo esempio.
Test Trend Following su S&P500 e Nasdaq
Qui ho preso un’altra strategia trend following, una delle mie, giusto per portarvi come esempio.
Perché secondo me anche questo è un concetto che molto spesso viene dato per scontato e non si approfondisce, ma secondo me è un’ottima prova del nove per capire se si tratta di overfitting oppure no.
Qui vedete, ripeto, una strategia trend following.
E la vedete applicata sul future dell’S&P 500 e sul future del Nasdaq.
Ho impostato come capitale per il backtest 1.000.000 di dollari per entrambi, giusto per confrontarli in maniera un po’ più uniforme, ma questo poco importa da questo punto di vista.
Ma che cosa possiamo dire di questa strategia?
Beh, possiamo dire che funziona sul future del S&P 500 e forse sul future del Nasdaq funziona ancora meglio.
Ovviamente io mi aspetto che ci siano delle differenze, perché questi due strumenti tra di loro sono abbastanza diversi.
Cioè noi sappiamo che il Nasdaq tendenzialmente è più esplosivo ed è composto da 100 aziende tech, mentre l’S&P500 è un po’ più sostanzioso da questo punto di vista, composto da 500 aziende tra le più capitalizzate.
Quindi è normale che ci siano delle differenze, per esempio come quella che vediamo qui nell’ultimo periodo, dove entrambe calano la testa, anche se questa sull’S&P cala la testa un po’ di più.
E qui magari c’è una fase laterale con un po’ di drawdown che per quanto riguarda il Nasdaq si vede meno.
Come riconoscere un vero vantaggio statistico nei mercati
Ma il concetto importante è il seguente, cioè se la strategia funziona su uno strumento e non sull’altro, ecco che probabilmente in quel caso io non sto catturando un vantaggio che funziona sulle azioni, ma ho adattato le mie regole ad una delle serie storiche.
Cioè ripeto, se le strategie bene o male funzionano su entrambi gli strumenti, bene vuol dire che sto catturando un qualcosa che funziona mediamente sugli indici azionari.
Ma se ho un’ottima equity line, magari sulle future della S&P 500 e una strategia piatta o addirittura perdente sul future del Nasdaq, che cosa significa proprio per la definizione che abbiamo dato a inizio video?
Che probabilmente ho fatto overfitting, perché appunto se la mia strategia non funziona generalmente sugli indici azionari, ma si adatta soltanto ad una delle due serie storiche, è proprio la definizione nuda e cruda di fitting di una serie storica.
Come capire se una strategia trading è troppo complessa
In conclusione, come già detto in precedenza, ci tengo a sottolineare che le strategie devono essere il più semplici possibile.
E che l’obiettivo è principalmente quello di comprendere i mercati in linea generale, in modo che le strategie possano funzionare anche in futuro.
Il modo che personalmente utilizzo per capire se la strategia è troppo complessa oppure no è quello di pormi la seguente domanda: se dovessi solo guardare il grafico del prezzo, riuscirei a capire se e quando la strategia entra in posizione?
Se la risposta è sì, vuol dire che si tratta di un sistema molto semplice, con evidentemente poche regole.
Se la risposta è no, perché la strategia prende l’incrocio di sei indicatori con otto pattern diversi e altre condizioni che probabilmente non so neanche perché le ho inserite, beh, potrebbe essere un sistema un po’ troppo complesso che probabilmente durerà poco in live trading.
Ovviamente così facendo non svilupperemo un sistema al minuto, ma dovremmo essere più selettivi e comprendere più a fondo i mercati.
Ma se si vuole fare trading in maniera professionale, questa è la strada migliore.





