Come calcolare l’Ulcer Index su excel

A cura di Daniele Bernardi, Ad Diaman Scf
Uno dei principali indicatori di rischio che da anni stiamo spingendo molto affinché diventi patrimonio culturale degli investitori Italiani è l’ulcer index, in italiano l’indice dell’ulcera inventato da Peter Martin nel 1987 e descritto nel libro “the Investors Guide to Fidelity Fund”.
Ne ho parlato ampiamente nei post Ulcer Index – questo sconosciuto e Peter Martin: genio incompreso o sconosciuto?  invitando a leggerli tutti coloro che non conoscessero tale indicatore.
L’Ulcer Index ha la grande particolarità di calcolare la volatilità solo dei rendimenti negativi e contemporaneamente stimare il tempo di recupero; Come potete vedere nell’immagine del blog praticamente calcola l’area in cui una serie storica rimane “sott’acqua” prima di superare un massimo precedente.
Come sapete la Volatilità invece stima in egual misura sia i rendimenti positivi che i rendimenti negativi, quindi è un indicatore di rischio simmetrico, mentre l’ulcer index è un indicatore asimmetrico e quindi a nostro avviso molto più utile ed interessante.

In questa immagine presa dal sito di Peter Martin si può comprendere intuitivamente come funziona l’Ulcer Index e si intuisce che più piccolo è il suo valore (essendo il calcolo dell’area tra un massimo precedente ed un successivo) migliore è il comportamento della serie storica.
Anche il massimo drawdown è un indicatore di rischio importante per comprendere qual’è il reale rischio di un investitore, perché se la serie storica è sufficientemente lunga permette di comprendere quale può essere la perdita attesa in caso di eventi particolarmente negativi, cosa che la volatilità non è in grado di indicare in alcun modo.
Anche sul drawdown ho scritto il post Alcune considerazioni sul Drawdown per chi volesse approfondire.
E’ giunto quindi il momento di condividere entrambi questi due indicatori di rischio con i nostri lettori dando in omaggio i file che noi utilizziamo quotidianamente in excel per stimare sia il Massimo drawdown che l’ulcer index.
Esistono due modi per inserire queste funzioni su Excel:
1) la più facile ma che necessita di inserirla in ogni file in cui volete calcolare questi indicatori è la seguente:
a) copiare il testo di seguito riportato:
Public Function MAXDD(serie_storica As Range)
‘ DESCRIZIONE: La funzione riceve come input la serie storica e ne calcola il massimo drawdown.
‘ serie_storica: Ë l’intervallo di celle che contengono la serie storica, a date crescenti.

‘ Diaman SCF S.r.l.
‘ Autore: Francesco Canella
‘ Data: 18/05/2011
 
n = Application.WorksheetFunction.Count(serie_storica)
ReDim maxpr(1 To n) As Variant
ReDim maxddr(1 To n) As Variant
maxpr(1) = serie_storica(1)
maxddr(1) = 0
For i = 2 To n
maxpr(i) = Application.WorksheetFunction.Max(serie_storica(i), maxpr(i – 1))
maxddr(i) = serie_storica(i) / maxpr(i) – 1
Next
MAXDD = Application.WorksheetFunction.Min(maxddr)
End Function
b) aprire il file EXCEL desiderato e premere contemporaneamente i tasti ALT+F11 e apparirà la finestra di VBA (Visual Basic for Application)

c) cliccare con il tasto destro del mouse sopra VABProject(nomefile) e cliccare modulo come in figura qui sotto

d) nello spazio destro vuoto incollare il testo precedentemente copiato

e) il risultato sarà il seguente

f) a questo punto salvare il file ricordarsi di usare l’estensione xlsm

g) a questo punto ripetere l’operazione con il codice per la funzione Ulcer Index UI() di seguito riportato
Public Function UI(serie_storica As Range)
‘ DESCRIZIONE: La funzione riceve come input la serie storica e ne calcola l’ulcer index.
‘ serie_storica: Ë l’intervallo di celle che contengono la serie storica, a date crescenti.

‘ Diaman SCF S.r.l.
‘ Autore: Francesco Canella
‘ Data: 18/05/2011
 
n = Application.WorksheetFunction.Count(serie_storica)
ReDim maxpr(1 To n) As Variant
ReDim maxdd(1 To n) As Variant
ReDim maxdd2(1 To n) As Variant
maxpr(1) = serie_storica(1)
maxdd(1) = 0
maxdd2(1) = 0
For i = 2 To n
maxpr(i) = Application.WorksheetFunction.Max(serie_storica(i), maxpr(i – 1))
maxdd(i) = serie_storica(i) / maxpr(i) – 1
maxdd2(i) = maxdd(i) ^ 2
Next
temp = Application.WorksheetFunction.Average(maxdd2)
UI = temp ^ (1 / 2)
End Function
2) il secondo modo è richiedere lasciando un commento con la propria mail i due file MaxDrawdown.xla e UI.xla che vi verranno spediti via mail con il dettaglio di come istallarle in modo definitivo come componente aggiuntivo di EXCEL visto che questa modalità è troppo lunga da descrivere in questo post.
Come si usano poi? molto semplice, prendete una serie storica e in una cella a fianco scrivete =maxdd(serie storica) e in un’altra cella =ui(serie storica) dove la serie storica è una serie di celle (verticali) che descrivono l’andamento dello strumento finanziario.

Certo che ne farete un gran uso e che questi indicatori di rischio verranno realmente utilizzati per analizzare e selezionare soprattutto fondi e strumenti finanziari volatili vi invito a condividere e divulgare questo post affinché più persone possibile possano utilizzarlo e beneficiarne.

Vuoi ricevere le notizie di Bluerating direttamente nella tua Inbox? Iscriviti alla nostra newsletter!