Nell’analisi dell’andamento di un portafoglio di strategie, una delle maggiori complessità da affrontare è legata al calcolo del drawdown. Questo articolo è un pò più tecnico del solito, e alcuni passaggi potrebbero non risultare subito così immediati, ma serve a mostrare come certe metriche, quando calcolate su un portafoglio e non più sulla singola strategia, debbano essere ripensate (e a comprendere più a fondo le differenze che ci sono fra queste diverse valorizzazioni del drawdown di portafoglio). 

La complessità del calcolo del Drawdown di Portafoglio ha una radice comune: i differenti time frame e sottostanti su cui i trade di ogni strategia, da aggregare nel portafoglio, sono stati generati.

Se tutte le strategie fossero applicate allo stesso dataset (per esempio Mini S&P500 Future a 60m), sarebbe possibile assumere le stesse ipotesi che rendono possibile un calcolo preciso e realistico del drawdown come avviene nel caso del backtest di una strategia singola.

Se la serie storica su cui opera ogni singola strategia è la stessa, allora è ovvio dare per garantita la simultaneità dei massimi e dei minimi interni ad ogni barra.

In caso di sottostanti diversi, anche a parità di time frame (ad es. 60 min), questo purtroppo non è più possibile farlo. Il minimo interno a una barra di uno strumento potrebbe essere stato eseguito nel momento in cui l’altro strumento, nella stessa barra, toccava il massimo, oppure mentre era anch’esso al minimo o in una qualsiasi altra zona del range.

E questo ha 2 implicazioni non di poco conto:

  1. Se si vuole eseguire un calcolo del drawdown che non sia figlio di assunzioni forti e non verificabili, l’unico prezzo utilizzabile per valorizzare l’open P/L di ogni trade è quello di chiusura di ogni barra, in quanto l’orario in cui quel dato è stato registrato è un’informazione nota.
    Questo ci permette di valorizzare correttamente l’open P/L di portafoglio in quel preciso orario di chiusura di barra. Il risultato sarà però una misura tendenzialmente non conservativa, in quanto non viene tenuto conto dei massimi e dei minimi verificatisi da una chiusura di barra all’altra, che, nella realtà, avrebbero potuto amplificare (o ridurre) il drawdown.
  2. Per avere una misura più conservativa del rischio diventa necessario fare alcune ipotesi sulla collocazione temporale dei massimi e dei minimi interni ad ogni barra (ma si tratta, appunto, di ipotesi).

Per queste ragioni, esistono diverse maniere per calcolare il Drawdown di Portafoglio senza appiattire l’analisi sulla semplice valorizzazione a fine giornata degli open P/L delle singole strategie (che non terrebbe conto di ciò che è successo durante quella giornata). In Portfolio Builder effettuiamo 5 diverse valorizzazioni del drawdown del portafoglio (il cui risultato spesso converge su valori simili, ma in situazioni un pò particolari, alcune di queste modalità di calcolo possono metterci davvero in guardia su cosa dovremmo aspettarci):

1) Max DD (Deterministic)

2) Max DD (Peak to Valley)

3) Max DD (Daily) 

4) Max DD (IntraDay MAE – Maximum Adverse Excursion)

5) Max DD (Close To Close)

Ora vediamo come questi valori vengono calcolati, e perché possono portare a differenti valorizzazioni del Drawdown di Portafoglio.

1. Max DD (Det)

Il Max DD Detailed è calcolando aggregando i trade del portafoglio utilizzando la loro evoluzione interna valorizzata sui prezzi di chiusura delle barre. Se un trade, per esempio, ha avuto una vita di 15 barre, qui consideriamo i 15 valori di Open Profit calcolati sui 15 prezzi di chiusura delle barre.

Generalmente i trade su sottostanti diversi non saranno stati eseguiti su barre dello stesso time frame. E anche se il time frame fosse lo stesso le barre potrebbero non essere sincronizzate.

Di seguito spieghiamo il modello di aggregazione di trade temporalmente sovrapposti che abbiamo utilizzato su Portfolio Builder.

Si assuma di dover aggregare due trade su due sottostanti differenti, il primo con time frame a 20 minuti, il secondo con timeframe a 30 minuti. Si assuma inoltre che le sessioni di entrambi gli strumenti comincino con l’ora tonda.

Questo è un esempio dell’evoluzione dei due trade, calcolata alle chiusure di barra e rappresentati in un grafico:

Come si poteva intuire dalla tabella dei valori, e come si vede dal grafico successivo, solo alcune delle quotazioni sono temporalmente allineate. Nell’aggregare questi due trade, la prima cosa di cui bisogna rendersi conto è che andrà creata una stima del valore del portafoglio per ognuno degli orari disponibili: sia in quelli in cui quotano entrambi i trade, ma anche in quelli in cui solo uno dei due trade presenta una valorizzazione dell’open profit.

In poche parole, sebbene non accada per le singole strategie, il portafoglio dovrà avere una valorizzazione che tenga conto dei singoli orari disponibili per i due trade.

Per mettere in risalto questo fatto, nella seguente tabella si vede sulla sinistra l’unione degli orari disponibili con le relative quote dove presenti. Nel grafico abbiamo messo in risalto la collocazione temporale delle quote. Sia nella tabella che nel grafico le quote temporalmente allineate sono mostrate in nero.

La scelta da noi adottata è stata quella di utilizzare l’ultima quota disponibile. Una volta collocato un valore da utilizzare dove non originariamente presente, eseguire l’aggregazione di portafoglio diventa un semplice esercizio di somme orizzontali. Segue una tabella con il risultato, e i relativi grafici: uno con, e uno senza il portafoglio risultante.

Il caso preso in esame è un caso piuttosto particolare, infatti i due trade risultavano avere un periodo sincrono di 2 a 3. Un caso più generale potrebbe presentare centinaia di trade aperti contemporaneamente, con nemmeno una valorizzazione contemporanea. Un caso molto particolare sarebbe quello di trade eseguiti su strumenti con identica sessione e identico timeframe.

Questo metodo di aggregazione permette di estrarre il portafoglio somma da un’insieme qualsiasi di trade senza che l’utente sia vincolato all’utilizzo di particolari timeframe o sessioni.

Si noti come sia presente una valorizzazione del portafoglio per ogni barra in cui ognuno dei trade è stato quotato.
Una volta estratta l’equity line di portafoglio così generata (Da noi chiamata Detailed per distizione dall’Equity Line Daily che presenta una sola quotazione a fine giornata, tenendo conto degli open P/L), ne viene calcolato il Maximum Draw Down, che sarà quindi il Max DD Detailed.

La principale criticità di questo metodo di aggregazione è che vengono ignorati i massimi e i minimi interni alla singola barra. Tralasciare queste informazioni potrebbe (non sempre – e vedremo nel prossimo paragrafo perché) generare una sottostima del Max DD effettivo che, seguendo quel portafoglio, si sarebbe verificato in passato.

Questo ci ha indotto a costruire stime più conservative del Max DD storico. Ora, nella prossima sezione, vedremo come abbiamo introdotto nel calcolo del portafoglio i massimi e i minimi intrabarra.

2. Max DD (Peak to Valley)

Prima di vedere con quale modalità abbiamo introdotto i massimi e i minimi intrabarra nel calcolo del drawdown vale la pena fare una premessa.

Nel caso di una strategia singola, l’introduzione di massimi e minimi non può che alzare il maximum draw down. Lo stesso non vale nel caso di una simulazione di portafoglio a causa della presenza di più trade aperti contemporaneamente su strumenti diversi.

L’introduzione di un massimo interno a un trade, infatti, potrebbe compensare la perdita di un altro trade che andava a registrare il Max DD nello stesso momento. Introdurre l’informazione su quel massimo, dunque, ha, di fatto, ridotto il drawdown di portafoglio.

E’ evidente che si tratterà di un numero minoritario di casi, ma non c’è da stupirsi se, in qualche occasione, capitasse di leggere un DrawDown Peak to Valley inferiore al Draw Down Detailed.

Introdurre i massimi e i minimi intrabarra è un’operazione che, per poter essere eseguita con successo, richiede un’informazione non disponibile. Tale informazione, in quanto non disponibile, andrà sostituita con delle ipotesi.
L’informazione mancante è quella relativa al collocamento temporale dei massimi e dei minimi: noi non sappiamo quando, e neppure in che ordine, essi si sono verificati.

Prendiamo il trade della Strategia 1 dell’esempio precedente, e aggiungiamo l’informazione sulla valorizzazione del trade ai minimi e ai massimo delle barre barre che ne compongono l’evoluzione.

Ora vediamone una rappresentazione grafica utilizzando un grafico a candele. Attenzione, qui non è rappresentato l’andamento di uno strumento finanziario (che è ciò a cui di solito associamo un grafico a candele): qui è rappresentato l’andamento di un trade (quindi il suo open P/L).

Come si vede dalla tabella, ai massimi e ai minimi è associato l’orario di chiusura di barra. Questo rende necessario fare delle ipotesi sulla loro collocazione nel tempo, altrimenti questa informazione non risulterebbe utilizzabile ai fini di un’aggregazione tra più trade.

In poche parole dobbiamo trasformare una barra composta da massimo, minimo e chiusura associati a uno stesso orario, in una serie di punti successivi associati a orari diversi.

Le assunzioni da noi utilizzate sono le stesse effettuate da piattaforme come Multicharts e TradeStation (in assenza di queste informazioni), e sono le seguenti

1)  Se la chiusura di questa barra è superiore alla chiusura della barra precedente (barra verde), il minimo ha preceduto il massimo. Se la chiusura di questa barra è inferiore alla chiusura della barra precedente (barra rossa) il massimo ha preceduto il minimo. In poche parole consideriamo il percorso più efficiente:

2) la spaziatura temporale è suddivisa in 3/3. In questo modo il massimo e il minimo si pongono a 1/3 e a 2/3 della vita temporale del trade, sulla base dell’ordine stabilito dall’assunzione 1.

Utilizzando queste due ipotesi è possibile ricreare la storia del trade in modo che comprenda anche massimi e minimi. Vediamo il risultato che si ottiene applicando questa metodologia al trade dell’esempio e confrontiamolo con il trade valorizzato alle sole chiusure. Nella tabella i dati sono incasellati a triplette. Ogni tripletta contiene i dati relativi a una barra, il colore della tripletta mostra la natura ascendente o discendente della barra.

Nel grafico le linee verticali rappresentano le chiusure di barra, ancora una volta il colore della barra codifica la direzione della stessa.

Come si vede il risultato è un discreto arricchimento dell’informazione disponibile. Chiaramente questo arricchimento non è gratis, e il suo costo è quello di aver dovuto fare assunzioni per poter introdurlo, assunzioni che, soprattutto nel caso di trade della durata di poche barre, potrebbero generare una serie storica non aderente alla realtà.

Il vantaggio risiede nel fatto che, in questa nuova serie, compaiono sia il MAE (Maximum Adverse Excursion) che l’MFE (Maximum Favorable Excursion), due dati importanti per il calcolo del Max DD.

Quando l’evoluzione interna di ogni trade è stata arricchita dei massimi e minimi con la procedura appena mostrata, essi vengono aggregati in modo analogo a come mostrato alla sezione 1. Max DD (Det). Terminata l’aggregazione viene calcolato il Max DD del portafoglio risultante, il Max DD (Peak to Valley).

3. Max Daily DD

Il Max Daily DD non è mostrato nel pannello Metrics di Portfolio Builder (una delle macro aree d’analisi della piattaforma Strategy Lab), ma direttamente nel grafico in basso nel pannello Equity.

L’equity line mostrata in questo pannello è ricavata attraverso un processo di aggregazione differente rispetto a quello illustrato alla sezione 1. Max DD (Det).

In questo caso viene prima ricavata un’equity daily per ognuna delle strategie, ovvero una valorizzazione alla mezzanotte di ogni giorno del periodo della simulazione. Avendo già rettificato i risultati di ogni strategia caricata in portafoglio per tenere conto dei diversi fusi orari (oltre che delle diverse valute), ci ritroviamo già con serie composte da valorizzazioni a orari identici e la loro aggregazione si ottiene ora con una semplice somma.

La risultante è il portafoglio mostrato al pannello Equity. Il DD nel grafico inferiore sarà quindi una valorizzazione daily del DD. Il valore del Max Daily DD è mostrato direttamente sul grafico all’altezza della linea rossa orizzontale.

4. Max DD (IntraDay MAE)

Il Max DD IntraDay MAE (Maximum Adverse Excursion) è elaborato ipotizzando che, in un dato giorno, i trade aperti dalle diverse strategie raggiungano il punto peggiore (MAE) contemporaneamente.

All’inizio di giornata il portafoglio parte da una situazione di draw down ereditata dallo storico di portafoglio valorizzato fino a quel punto. La domanda che ci si pone è la seguente: quanto è il rischio assumendo che tutti i trade aperti oggi perdano denaro contemporaneamente?

Per eseguire la stima di questo rischio vengono sommati i MAE di tutti i trade che aprono e chiudono posizioni in giornata. Se una strategia apre e chiude più di un trade nell’arco della giornata, essendo che è impossibile che questi siano aperti contemporaneamente, si prende solo quello con il MAE più negativo.

Per i trade che invece si estendono overnight viene considerata l’escursione peggiore possibile all’interno della giornata di riferimento. Tutti questi valori vengono poi sommati al drawdown daily registrato al giorno precedente.

Questa è probabilmente la modalità più conservativa di calcolo del drawdown di Portafoglio, ma non necessariamente la più precisa e veritiera (dato che le posizioni aperte in ogni giornata potrebbero non registrare tutte il peggior open loss nello stesso momento).

5. Max DD CtC

Il Max DD Close to Close è il massimo drawdown risultante dall’equity line prodotta a operazioni chiuse. I trade del portafoglio vengono riordinati per data di chiusura, e seguendo quest’ordine ne vengono progressivamente cumulati i net profit.

Si nota che in questo caso le dinamiche dovute alla contemporaneità dei trade vengono completamente perdute. Per questo motivo, sebbene impossibile nel caso di una strategia singola, e il Max DD CtC di portafoglio potrebbe risultare maggiore del Max DD (Peak to Valley) in quanto, nella valorizzazione barra per barra le dinamiche interne dei trade potrebbero generare compensazioni tra profitti e perdite e mitigare il massimo drawdown. Perdendo queste sinergie, il massimo drawdown close to close potrebbe risultare maggiore.

Per dare un’idea di ciò che potrebbe accadere, si immagini un trade della durata di un mese che chiude con un largo profitto. Si ponga poi che, prima della chiusura di questo trade, siano stati aperti e chiusi da un’altra strategia 5 trade della durata di un’ora, tutti negativi.

Ponendo i trade in ordine di data di chiusura, l’equity line CtC vedrebbe cinque segmenti calanti più uno crescente sul finale.

Un’aggregazione puntuale barra per barra, invece, seguirebbe un’andamento crescente della durata di un mese, con 5 sezioni in cui alla crescita del trade mensile si contrappone il calo dei trade orari.

Se il calo dei trade orari è compensato dalla crescita del trade mensile, l’equity line peak to valley potrebbe non mostrare draw down, ma solo periodi in cui è piatta. Mentre l’equity CtC mostrerà un draw down in prossimità delle 5 operazioni chiuse negative, prima della contabilizzazione dell’operazione mensile.

Nel grafico che segue è mostrata una situazione idealizzata a scopo esplicativo: la linea blu mostra l’andamento regolare crescente della strategia in cui è aperto il trade mensile.

Durante questo lungo trade vengono aperte 5 operazioni negative da un’altra strategia, mostrata in arancione. Si vede come il portafoglio risultante non è mai in draw down:

La seguente invece è l’equity line CtC, come si vede realizza un drawdown in quanto il contributo positivo del trade mensile viene registrato tutto in una volta alla sua chiusura. La perdita dell’informazione sulle sinergie interne ai trade contemporanei fa si che l’equity generi un drawdown.

Questo approfondimento sulle diverse modalità di calcolo del Draw Down di Portafoglio, andava nella direzione di sensibilizzare il lettore circa il cambio di prospettiva necessario quando si passa dall’analisi di una singola strategia all’analisi di un portafoglio di strategie. Una semplice valorizzazione degli open P/L a fine giornata (come potremmo effettuare rapidamente su Excel o MatLab o Python) restituirebbe una valorizzazione del drawdown di portafoglio un pò troppo semplificata e ottimistica, facendoci perdere di vista le interazioni, durante la giornata borsistica, fra più strategie che si trovano in posizione negli stessi momenti.

Luca Giusti è un trader sistematico su Opzioni e su Futures dal 2002. Laurea in Economia, Dottorato di Ricerca in Direzione Aziendale, fondatore del progetto QTLab (Quantitative Trading LAB) in Svizzera, dove sviluppa metodologie di trading quantitativo. E’ advisor di due istituzionali e collabora con una software house (Da Vinci Fintech) con cui sviluppa piattaforme di analisi di dati finanziari, di backtest di strategie in Opzioni e di analisi di Portafogli (StrategyLAB e OptionLAB). Autore del libro “Trading Meccanico”, edito da Hoepli, Socio Ordinario Professional e docente del Master SIAT, è al suo secondo mandato come membro del comitato scientifico di questa associazione. E’ il docente dei corsi di QTLab sui Trading System e sull’Operatività con le Opzioni. Dal 2008 è relatore all’ITForum e al Tol EXPO di Borsa Italiana, è stato speaker al convegno internazionale IFTA 2017, relatore per TradeStation a Dubai nel 2016 su dei corsi di Trading Sistematico, e speaker in un convegno del CME Group a Londra nel 2019.