| 

Predire il DrawDown – Un Modello di Machine Learning per Misurare il Rischio (Parte 1)

Le recenti tecnologie informatiche hanno dato un nuovo impulso all’Analisi Tecnica, rendendo le metodologie di Machine Learning facilmente accessibili anche ai trader e agli investitori.

In questo blog pubblico un articolo che ho scritto per partecipare al concorso “SIAT Technical Analyst of the Year 2021“. Vista la lunghezza e la quantità degli argomenti trattati, ho ritenuto utile dividerlo in quattro parti. In questa prima parte, vedremo come misurare il rischio con il Drawdown.

Abstract

Negli ultimi decenni, abbiamo assistito ad un uso sempre più esteso dei metodi statistici e informatici asserviti all’Analisi Tecnica dei mercati finanziari, dei veri volani nella crescita delle capacità di studio e di decisione sia di trader sia di investitori. I fattori che hanno giocato un ruolo principale in questa rivoluzione sono stati la disponibilità di numerose ed ampie serie storiche, di una buona potenza di calcolo e di piattaforme software di Analisi Tecnica. Purtroppo non sono mancati degli aspetti negativi, per stare al passo è stato necessario disporre di software proprietari e infrastrutture informatiche adeguate, che a loro volta hanno richiesto risorse economiche e temporali per l’apprendimento.

Oggi è in corso un nuovo impulso a questa rivoluzione informatica, che sta rendendo le nuove tecnologie più accessibili. Adeguate prestazioni dei moderni Personal Computer, la disponibilità di linguaggi di programmazione di alto livello e il libero accesso alle informazioni, unito ad una politica open source che ne abbatte i costi, permette ad un’ampia platea di analisti tecnici di realizzare in proprio scenari complessi di analisi.

Il seguente articolo ha come obiettivo quello di impostare un’analisi a basso costo che faccia ricorso alle più recenti tecnologie informatiche, ricorrendo a simulazioni numeriche e a modelli di Machine Learning. Come caso studio, effettueremo delle analisi sul Massimo DrawDown e proporremo un modello per predirne il valore. La struttura dell’articolo è come segue:

  • Nella prima parte assumeremo un gruppo di dodici serie storiche che siano rappresentative dei principali asset finanziari, analizzeremo la loro distribuzione di probabilità dei Massimi DrawDown per poi inferire i risultati ottenuti a casi più generali.
  • Nella seconda parte vedremo come costruire un gruppo di serie storiche sintetiche, che avrà sia una dimensione sia una accuratezza statistica grande a sufficienza per soddisfare le esigenze di addestramento del Machine Learning.
  • Nella terza parte presenteremo un algoritmo di Machine Learning, il quale sarà addestrato per realizzare un modello per predire il Massimo DrawDown di una generica serie storica.
  • Nella quarta parte, le prestazioni del modello saranno valutate tramite un confronto diretto con le serie storiche della prima parte.

Le analisi e tutta la parte di calcolo numerico saranno realizzate con il codice di programmazione Python e le sue librerie Numpy, Pandas, Matplotlib, Sci-Kit Learn e SQLite. Questa combinazione software è la più potente ed usata nel mondo del Data Science, accessibile a chiunque grazie alla distribuzione libera, ha un costo praticamente nullo e dispone di molti corsi on-line gratuiti per imparare ad usarlo.

Misurare il Rischio con il Drawdown

Il Massimo DrawDown (MDD) di una serie storica è definito come la massima flessione da un massimo relativo ad un successivo minimo relativo, che si può riscontrare in una specifica finestra temporale. Nell’ambito delle strategie di Trading e di Investing, il MDD è una misura del rischio ed è frequentemente utilizzato per valutare le performance dei portafogli e dei Trading Systems. L’importanza del MDD risiede nel fatto che rappresenta la perdita massima che un trader / investitore può incorrere se dovesse entrare a mercato ed uscirne nei momenti peggiori (ingresso sui massimi, uscita sui minimi).

Figura 1: rappresentazione grafica del MDD

Il MDD può essere calcolato nel seguente modo, partendo dai valori Yu delle serie storica (linea blu, figura 1). Si definisce il massimo relativo dell’istante t (linea rossa) come:

St = max( Yu , u ≤ t )

Successivamente, per ogni punto della Serie Storica, si calcola il DrawDown come differenza tra il massimo relativo e la Serie Storica:

DD_t = St – Yt

Mentre il MDD di un periodo [ 0, T ] vale:

max u ∈ [ 0, T ] ( DDu )

Il MDD dipende da un lungo elenco di fattori, di cui i principali sono:

  • il rendimento medio;
  • la deviazione standard;
  • la frequenza di campionamento;
  • la sequenza assunta dai singoli valori della serie;
  • l’ampiezza della finestra temporale in uso.

Tutti questi fattori concorrono alla determinazione del MDD e non possono essere trascurati nel momento che si comparano due o più strategie che hanno lo stesso MDD.

Il MDD è molto popolare come misura del rischio in ambito finanziario, la sua interpretazione è molto intuitiva rispetto ad altre, ma purtroppo il MDD soffre della mancanza di un adeguato metodo analitico per determinare la soluzione partendo da una generica serie storica, lasciando al calcolo numerico l’onere del problema, inoltre la sua spiccata sensibilità alle condizioni iniziali porta ad un ampio errore nelle misurazioni.

Le serie storiche che impiegheremo sono scelte con i seguenti criteri:

  • Buona profondità dei dati, così da inglobare le principali fasi di mercato degli ultimi anni. In linea generale, è richiesto che inizino non più tardi del 2007;
  • Serie Total Return, per avere una maggiore uniformità e per evitare gap dovuti allo stacco dei dividendi o cedole;
  • Ampia diversificazione, così da coprire tutti i principali asset e di disporre della maggiore copertura geografica e di capitalizzazione.

La tabella 1 riporta gli strumenti selezionati, con alcune informazioni salienti. La presenza quasi esclusiva di prodotti della iShares non è casuale, in quanto l’emittente statunitense fornisce i dati degli propri ETF gratuitamente e con le maggiori profondità disponibili su Borsa Italiana, che in alcuni casi partono dal 2003-2004, con il vantaggio di inglobare importanti fasi critiche di mercato come la crisi dei mutui subprime del 2008-2009, la crisi dell’Euro del 2011-2012 e la recente pandemia del 2020-2021.

TickerAssetCategoriaInizio SerieValori disponibili
IBGS.MILiquiditàEuro Government Bond 1-3yr05.06.20063823
IBTS.MILiquiditàTreasury Bond 1-3yr05.06.20063819
IBGM.MIObbligazionarioEuro Government Bond 7-10yr08.12.20063691
IBGL.MIObbligazionarioEuro Government Bond 15-30yr08.12.20063687
IBCX.MIObbligazionarioEuro Corporate Bond17.03.20034647
IBTM.MIObbligazionarioTreasury Bond 7-10yr08.12.20063683
LQDE.MIObbligazionarioUSD Corporate Bond16.05.20034588
IEMB.MIObbligazionarioUSD Emerging Markets Bond15.02.20083386
EXSA.MIAzionarioStoxx Europe 60013.02.20044369
IUSA.MIAzionarioS&P 50015.03.20024883
IEEM.MIAzionarioMSCI Emerging Market18.11.20053970
GBS.MIMetalli PreziosiPhysical Gold29.03.20044386
Tabella 1: elenco degli strumenti scelti come set di dati reali

Utilizzare le serie storiche di ETF, piuttosto che direttamente di indici, è motivata dal rispetto dell’obiettivo di mantenere alto il livello di accessibilità dell’analisi oggetto di questo articolo. Gli emittenti di ETF / ETC forniscono gratuitamente le serie storiche dei NAV e sono facilmente reperibili nei loro siti internet, inoltre il NAV è un valore ufficiale dichiarato a Borsa Italiana, una soluzione più economica e più approntabile da tutti rispetto a quella di comprare le serie storiche dai provider di servizi finanziari. Non manca il rovescio della medaglia, il NAV ha un solo valore giornaliero e non dispone di informazioni intraday, limitando le analisi su lunghi periodi.

Le serie storiche riportate in tabella 1 sono state scaricate in formato Excel a fine aprile 2021 da internet e caricate all’interno di un database in formato SQLite, una libreria di pubblico dominio già incorporata in Python.

Per disporre di un numero adeguato di dati su cui lavorare, il MDD non sarà calcolato sull’intera ampiezza temporale bensì ognuna delle dodici serie temporali sarà suddivisa in tanti piccoli intervalli di pari lunghezza, così da disporre di un numero maggiore di MDD. Per il presente articolo, si è scelto un intervallo di 20 valori che corrispondono a circa un mese borsistico. La figura 2 chiarisce quale sia l’intento: suddividere per esempio una serie storica che ha 20 valori in due intervalli, permette di disporre di due MDD (linee verticali con frecce doppie). Ogni intervallo prenderà il nome di Epoca e per le nostre serie storiche abbiamo da un minimo di 169 a un massimo di 244 epoche per ogni serie, con altrettanti valori di MDD.

Figura 2: esempio di epoche e dei relativi MDD

Con l’ausilio della programmazione in Python, è possibile calcolare con estrema velocità tutte le epoche e i relativi MDD delle serie storiche, successivamente rappresentare, sotto forma di istogramma, le distribuzioni di probabilità degli MDD (figura 3). I grafici ottenuti mostrano come gli MDD tendano a concentrarsi intorno ad un intervallo molto ristretto per poi prolungarsi verso destra con una lunga coda, che si può interpretare come le epoche abbiano un MDD tendenzialmente costante anche se in molte occasioni registrino ampi MDD, un comportamento in linea con la natura del MDD e del rischio di incappare in grandi perdite se gli eventi sono sfavorevoli.

Da un punto di vista statistico, le distribuzioni di probabilità del MDD non sono approssimabili a quelle di una gaussiana, pertanto non è possibile usare le consuete media e deviazione standard per definirne le caratteristiche. Studi accademici hanno evidenziato che in presenza di serie storiche ideali come quelle generate da moti browniani, le distribuzioni di MDD sono riconducibili a log-normali, un tipo di distribuzione asimmetrica che si trova spesso con variabili aleatorie che assumono solo valori positivi, come appunto il MDD.

La figura 4 mostra un esempio di una ideale distribuzione di probabilità log-normale per il MDD. Tra tutti i valori, assumeremo come MDD di nostro interesse quello con il 90 percentile, inteso come il valore che comprende alla sua sinistra il 90% degli MDD osservati e lo indicheremo con l’abbreviazione 90MDD. L’interpretazione del percentile non è molto distante dal Value at Risk (VaR), il quale cerca di stimare la massima perdita probabile ad un fissato livello di fiducia e orizzonte temporale.

Figura 3: distribuzioni di probabilità dei MDD
Figura 4: esempio di distribuzione di probabilità log-normale per MDD e posizione del 90-percentile

Utilizzare un solo valore che sia rappresentativo di tutta la distribuzione di MDD, permette un confronto più immediato tra i vari risultati dell’analisi. Ricordiamo che usare 90MDD è arbitrario, si potrebbe assumere un qualsiasi altro punto della distribuzione, come la moda (il valore caratterizzato dalla frequenza maggiore) o anche la media aritmetica o la mediana.

Python è in grado di calcolare il percentile partendo da una qualsiasi distribuzione e di generare una tabella che riporta, per ogni serie storica, la media e la deviazione standard dei rendimenti logaritmici giornalieri, e il 90-esimo percentile del MDD su epoche da 20 valori.

Serie StoricaMedia dei
Rendimenti
Dev.St. dei
Rendimenti
90MDD
IBGS0,008%0,08%0,5%
IBGM0,019%0,29%1,9%
IBGL0,024%0,55%4,0%
IBCX0,014%0,18%1,3%
EXSA0,020%1,16%8,1%
IBTS0,008%0,08%0,4%
IBTM0,017%0,41%2,7%
LQDE0,019%0,39%2,5%
IUSA0,028%1,23%7,6%
IEMB0,021%0,47%3,0%
IEEM0,020%1,28%9,2%
GBS0,030%1,03%7,3%
Tabella 2: dataset dei dati reali

La tabella 2 è quella che chiameremo dataset dei dati reali, che sarà usata nei prossimi paragrafi per testare le capacità predittive del modello di Machine Learning. La figura 5 riporta in formato grafico la tabella 2, dove la dimensione dei cerchi è proporzionale a 90MDD. Si nota che il valore di 90MDD è proporzionale con la deviazione standard, un ottimo indizio dell’esistenza di una qualche relazione tra le due grandezze, che sarà esplorata con gli algoritmi di Machine Learning.

Figura 5: rappresentazione grafica del dataset dei dati reali

Un algoritmo di Machine Learning necessita di un gran numero di campioni per poter generare un modello predittivo affidabile. Anche se il dataset dei dati reali è rappresentativo di anni di mercati finanziari, dodici campioni generati su poche centinaia di epoche non sono sufficienti allo scopo. Si potrebbero aumentare gli asset da analizzare, ma vedremo nel capitolo successivo un metodo di gran lunga più efficace.



Se hai domande o curiosità da chiedermi, non esitare a scrivermi nel modulo qui in basso, oppure mi trovi su Facebook e su LinkedIn. Se vuoi rimanere sempre aggiornato e non perderti nessun articolo appena esce, iscriviti alla newsletter compilando il seguente modulo:

Se apprezzi i miei articoli e il progetto MP Investit, puoi sostenermi con un contributo libero tramite PayPal o con una ricompensa del browser Brave. Questo mi motiva e mi incentiva a produrre contenuti sempre migliori. Grazie!

Articoli simili

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *