Oggi desidero trattare tre argomenti legati a doppio filo tra di loro, che rappresentano, a mio avviso, il 90% di ciò che è necessario conoscere per sopravvivere sui mercati. Qualcuno potrebbe obiettare che appellarsi ad una percentuale così netta ed elevata possa, di per sé, essere opinabile, io rispondo che nulla nella mia esperienza di trader e di studioso dei mercati finanziari ha avuto un impatto anche lontanamente paragonabile sui risultati, rispetto a questi elementi.
La Persistenza
Quando abbiamo introdotto questo concetto (leggi anche questo articolo) abbiamo dato una definizione di base: la capacità, da parte di un sistema di trading o di investing, di durare nel tempo conservando le proprie caratteristiche metriche. In inglese tale attributo di un trading system viene detto “Persistence” ed esistono numerosi modi per valutarne numericamente la portata.
Una prima misura può essere del tipo ON-OFF: se un sistema continua a guadagnare secondo le attese (verificato mediante il confronto tra le metriche ottenute nel periodo di “addestramento”, dato dall’insieme di “in sample” ed “out of sample”, rispetto a quelle registrate nel periodo “real money”) si definisce tale sistema “persistente”, viceversa no. A tale scopo possiamo decidere di tener conto o meno di una soglia di tolleranza adattata su ciascuna metrica di valutazione.
Poi esiste una pletora di metodi statistici per cristallizzare in un numero (o in un insieme di essi) tale proprietà, ma tutti devono fare obbligatoriamente i conti con un fattore probabilistico: se sono padrone di una filiera che produce regole da cui partire per la realizzazione di trading system evoluti, diventa fondamentale conoscere la percentuale attesa di tali sistemi che si dimostreranno “persistenti” rispetto al totale di essi. Il tutto può essere ulteriormente complicato raggruppando tali prodotti in distribuzioni statistiche, ma quello che realmente ci interessa capire, senza addentrarci in ulteriori sofismi, è come elevare la probabilità di persistenza di un nucleo base (sistema grezzo).

Preso un sistema, infatti, all’aumentare delle performance di addestramento (nell’area temporale cioè, in cui è avvenuta la progettazione a prescindere dal fatto che la macchina conoscesse o meno i dati), assistiamo dapprima al fallimento nel periodo di trading reale, successivamente le performance si stabilizzano e, se abbiamo lavorato bene, risultano invariate durante il periodo di transizione tra addestramento e real money. Infine, all’aumentare ulteriore di tali metriche nella zona di addestramento, assistiamo ad un possibile, quanto inesorabile declino delle performance future. Abbiamo chiamato la zona in cui le performance risultano persistenti, “Fascia di Persistenza”. L’unica arma che abbiamo per muoverci opportunamente all’interno di tale fascia, o sarebbe meglio dire per accrescere la probabilità di trovarsi dentro tale fascia, è una corretta validazione.
La Validazione
Possiamo idealmente raggruppare le modalità di validazione di una tecnica di trading in due macro categorie: criteri statici e criteri dinamici. I primi sono quelli che si vedono più spesso in letteratura e fanno capo all’architettura a blocchi “in sample” – “out of sample”.

Data a disposizione una serie di dati possiamo segmentarla in vari blocchi:
A) Utilizziamo l’intera serie storica per affinare il nostro sistema. Di contro non avremo a disposizione alcun metro per giudicare la bontà della nostra scelta.
B) La zona di in sample precede la zona di out of sample: in questo caso le tecniche intercettate risulteranno “datate” al termine del periodo di in sample, ma avranno il vantaggio di essere state validate nel periodo più vicino ai giorni nostri.
C) La zona di out of sample precede la zona di in sample: in questo caso le tecniche intercettate saranno più fedeli all’ultimo periodo registrato, ma avranno lo svantaggio di essere state validate in un periodo remoto che potrebbe avere pochi o nessun legame con le caratteristiche di mercato attuali.
D) Utilizziamo un doppio periodo di out of sample, un primo al principio della serie ed un secondo vicino ai giorni nostri. Al centro il periodo di addestramento che risulterà ridotto rispetto ai casi precedenti.
E) Se estendiamo questa architettura modulare e restringiamo i periodi di in sample ed out of sample fino a poche barre, otteniamo una struttura continua ad intervalli periodici (simmetrici o asimmetrici) che ci svincolano completamente dal problema di aver intercettato aree a particolare trend o volatilità. Tale architettura è stata da noi presentata per la prima volta durante lo speach che ho tenuto ad IFTA 2018 a Milano nell’ottobre del 2017 e prende il nome di GSA (Gandalf Segmented Architecture).
Tutti i casi enumerati (ad eccezione dell’ultimo che potrebbe far parte di una categoria a sé stante) sono statici, nel senso che l’architettura selezionata per la validazione viene utilizzata e mai variata.
Normalmente, durante il processo di validazione può capitare di “sbirciare” sul periodo out of sample, per comprendere se effettivamente il sistema tenga o meno, da un punto di vista metrico, su dati su cui non abbiamo lavorato. Di fatto, questo comportamento, andrà a sporcare l’essenza stessa dell’out of sample, nel senso che lo abbiamo in qualche modo utilizzato in maniera retroattiva per dare un giudizio sulle varie soluzioni ottenute in in sample. Sarebbe quindi opportuno attendere ancora un periodo ulteriore (“Incubation”) per essere certi di non aver commesso errori di sorta.

Dobbiamo dunque attendere un ulteriore periodo temporale prima di poter eventualmente andare a mercato?
Fortunatamente possiamo simulare tale periodo dividendo in tre parti la nostra serie storica (rinominando l’incubation in out of sample 2):

A questo punto il procedimento è chiaro: determiniamo il nostro sistema sull’in sample, lo validiamo sull’out of sample 1 (il vecchio in sample), poi accettiamo soluzioni che tengano anche in out of sample 2 (l’incubation). Questo è il massimo che possiamo ottenere con una metodologia statica.
Poi esistono i metodi dinamici e tra questi spicca la Walk Forward Analysis.
La Walk Forward Analysis
Tale tecnica, spesso sottovalutata e mal compresa, rappresenta, a mio avviso, un elemento insostituibile per effettuare due fondamentali operazioni: l’analisi di stabilità dei parametri di ottimizzazione e la validazione di trading system auto adattivi.
Lo strumento principe per effettuare tali analisi è Tradestation che, a giugno 2010 ha acquistato il motore software di “The Grail” (dedicato alla WFA e all’Ottimizzazione Genetica) inserendo entrambe le utility all’interno della propria piattaforma di servizi (oggi fortunatamente è possibile eseguire questo tipo di analisi anche con altre piattaforme come Multicharts).
>>> Walk Forward per analisi di stabilità dei parametri <<<
Supponiamo di voler testare l’efficacia e quindi la persistenza di una semplice tecnica ad incrocio di medie mobili sul grafico a 15 minuti del Gold Future Continuos rettificato dal 01/01/2007 al 31/12/2013 (ticker @GC). Per cominciare approcciamoci al problema con la modalità di valutazione statica B e apriamo un grafico dal 01/01/2007 fino al 31/12/2013. Come idea di base partiamo da un incrocio tra media veloce a 20 periodi (classica media di Bollinger) e media lenta a 92 periodi (la sessione è di 23 ore che, a barre di 15 minuti significa 92 barre a sessione = 23*60/15). Questi i risultati sull’intero periodo:

Se adesso operiamo un’ottimizzazione statica con in sample 70% ed out of sample 30%, comprendiamo come tale coppia di valori si trovi in un intorno di stabilità. Non ci resta che allungare il periodo storico fino ai giorni nostri per vedere se la dinamica tenga o meno alla prova del tempo:

La risposta è decisamente positiva, ma è figlia di una particolare architettura di validazione, quella, per intenderci, del caso B.
E’ possibile cambiare approccio slegandosi dalla staticità di tale architettura?
La risposta è affermativa e si chiama Walk Forward Analysis.
Ne esistono due versioni: la WFA Rolling e la WFA Anchored.
La prima consiste in una segmentazione periodica della serie storica totale, in coppie di in sample ed out of sample che si susseguano nel tempo, slittando di volta in volta di una quantità di dati equivalente all’out of sample. Questa soluzione risulta la più adatta per eseguire analisi di stabilità dei parametri di ottimizzazione, consentendo una naturale variazione degli stessi, di periodo in periodo.

La seconda modalità (WFA Anchored) impone sempre il medesimo principio dei dati dello slot in sample, “ancorato” per l’appunto al principio dello storico. Questo ha un impatto sulle auto-soluzioni che verranno associate ad ogni slot (sempre più lungo temporalmente), che non saranno più libere di fluttuare adattandosi alle condizioni di mercato, zona per zona, ma dovranno tenere conto (media temporale) dell’intero storico da cui provengono.

Ma qual è, delle due, la modalità più corretta per effettuare un analisi di stabilità dei parametri? Senza dubbio la WFA Rolling, proprio grazie alla maggiore libertà di variazione che lascia ai parametri di progetto. In altre parole, la WFA Anchored ci permette di vedere come si sposta la dinamica dei singoli parametri allungando la media temporale, ma costringendoci a pesare ogni slot allo stesso modo (si media appunto sull’intero periodo a disposizione per ogni run), mentre la WFA Rolling ci consente di osservare se e di quanto si allontanino da tale media gli stessi parametri, liberi di fluttuare numericamente. Riterremo stabile una copia di parametri le cui soluzioni, osservate su tutti i run, non si discostino troppo in positivo o in negativo. Va detto che, in generale, non è detto che soluzioni più “stabili” risulteranno per forza più “persistenti” e questo è legato al periodo prescelto per effettuare l’in sample di ogni singolo run della WFA Rolling (fortunatamente ci viene incontro una modalità dinamica a Cluster già implementata anche in Tradestation, di cui parlerò tra breve).
Procediamo dunque con la nostra scelta di progetto: l’architettura WFA Rolling (per approfondimenti vedere anche Kevin Davey). Di default ogni segmento cuba il 10% del totale ed in sample ed out of sample si trovano nella proporzione di 80%-20% di ogni segmento rispettivamente. Se ora accumuliamo i soli risultati di ogni simulazione nei soli periodi out of sample, otterremo un unico grafico delle performance che simula molto bene cosa è accaduto in passato ri-ottimizzando di periodo in periodo le lunghezze delle due medie.

Come è possibile osservare in figura 8 la dinamica si è mantenuta quasi sempre positiva, continuando a portare profitto nel tempo (a cominciare dal 2010). Davanti ai nostri occhi abbiamo ben 8 anni di out of sample reale e questo, di per se, giustificherebbe l’utilizzo di un tale approccio. Ma diamo uno sguardo più da vicino ai risultati da un punto di vista numerico:

In figura 10 possiamo osservare i risultati registrati nella porzione in sample, facendo scorrere a finestra scorrevole per 10 volte la nostra struttura di in sample ed out of sample.

In figura 11, invece, osserviamo gli stessi risultati registrati nelle porzioni out of sample. Quello che si evince, a parte il caso fortuito che vede come periodi ideali delle medie di controllo proprio 20 e 92 nell’ultimo slittamento, è una sostanziale stabilità di tali parametri che, a parte alcune occorrenze, ci confermano una solidità di progetto proprio intorno a 20 e 90.
>>> Walk Forward per generazione di sistemi dinamici <<<
Ma esiste un secondo modo di utilizzare la WFA: quello di rendere davvero tutto parametrico e quindi dinamico in termini di architettura. Possiamo infatti permettere alla macchina di svincolarsi dalle proporzioni prescelte sulle coppie IS-OoS (80% in sample – 20% out of sample) e sul numero di slittamenti da effettuare per arrivare ai giorni nostri.
Utilizziamo la “Clustered WFA”.
Mediante questa tecnica la macchina procederà ad effettuare tante WFA, variando sia la percentuale di out of sample di ogni slot, che il numero di segmentazioni con cui percorrere l’intero storico fino ai giorni nostri. Questo darà evidenza di una eventuale stabilità o meno del nostro sistema di trading, anche al netto di differenti soluzioni di validazione dinamica. Decisamente un bel passo in avanti rispetto ai più tradizionali metodi di validazione.

Nel nostro esempio possiamo notare una matrice di architetture che nella maggior parte dei casi (se pur non in tutti) soddisfa i criteri di robustezza (che possono essere specificati nel setup di simulazione). Non solo: la soluzione a 15% di out of sample e 15 segmentazioni dello storico sembra garantire una certa stabilità anche in caso di spostamento della dinamica. Sarà dunque questa la soluzione prescelta per andare eventualmente a mercato con la strategia.



Quali sono i parametri da utilizzare dunque in real money? Li trovare in figura 14, e sono esattamente 22 e 58 da utilizzare per i prossimi 203 giorni (o per le prossime 13161 barre a 15 minuti).
Quello che si comprende è come la WFA possa costituire una delle armi più potenti per gestire la continua mutazione dei mercati e tutte le complessità che possono derivarne sulle varie classi di sistemi di trading. Personalmente propendo per un utilizzo integrato di queste tecniche con modelli tradizionali e con modelli Machine Learning, avendo ben presente che la sfida non avrà mai fine e che ogni metodologia applicata massivamente sui mercati avrà un impatto sui mercati stessi, che potrebbero variare a loro volta in un loop infinito.
Giovanni Trombetta
Head of Research & Development
Gandalf Project
AVVERTENZE: I contenuti di questo articolo (e degli altri contenuti in questo sito) e le opinioni espresse non devono in nessun caso essere considerati come un invito all’investimento.
Le analisi non costituiscono mai una sollecitazione all’acquisto o alla vendita di qualsivoglia strumento finanziario. Queste note hanno per oggetto analisi finanziarie e ricerca in materia di investimento. Qualora vengano espresse delle raccomandazioni, queste hanno carattere generale, sono rivolte ad un pubblico indistinto e mancano dell’elemento della personalizzazione.
Sebbene frutto di approfondite analisi, le informazioni contenute in questo e negli altri articoli possono contenere errori. Gli autori non possono in nessun caso essere ritenuti responsabili per eventuali scelte effettuate dai lettori sulla base di tali informazioni erronee. Chi decide di porre in essere una qualsiasi operazione finanziaria sulla base delle informazioni contenute nel sito lo fa assumendone la totale responsabilità.
DISCLAIMER: The contents of these notes and the opinions expressed should in no case be considered as an invitation to invest. The analyzes never constitute a solicitation to buy or sell any financial instrument.
These notes relate to financial analysis and investment research. If recommendations are made, these are of a general nature, are aimed at an indistinct audience and lack the element of personalization.
Although the result of in-depth analysis, the information contained in these notes may contain errors. The authors cannot under any circumstances be held responsible for any choices made by readers on the basis of such erroneous information. Anyone who decides to carry out any financial transaction on the basis of the information contained in the site does so assuming full responsibility.