Drawdown storico
Il mercato azionario tende a crescere nel tempo, ma questo non significa che non attraverserai periodi di drawdown.
Il drawdown può essere misurato come la perdita percentuale rispetto al punto cumulato più alto raggiunto in passato.
In Python, puoi usare le funzioni .accumulate() e .maximum() per calcolare il massimo progressivo (running maximum) e la semplice formula qui sotto per calcolare il drawdown:
$$ \text{Drawdown} = \frac{r_t}{RM} - 1$$
- \(r_t\): Rendimento cumulato al tempo t
- \(RM\): Massimo progressivo
I rendimenti cumulati di USO, un ETF che replica il prezzo del petrolio, sono disponibili nella variabile cum_rets.
Questo esercizio fa parte del corso
Introduzione alla gestione del rischio di portafoglio in Python
Istruzioni dell'esercizio
- Calcola il massimo progressivo dei rendimenti cumulati dell’ETF sul petrolio USO (
cum_rets) usandonp.maximum.accumulate(). - Quando il massimo progressivo (
running_max) scende sotto 1, imposta il massimo progressivo uguale a 1. - Calcola
drawdownusando la semplice formula sopra concum_retserunning_max. - Esamina il grafico.
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
# Calculate the running maximum
running_max = ____(cum_rets)
# Ensure the value never drops below 1
running_max[____] = 1
# Calculate the percentage drawdown
drawdown = (____)/____ - 1
# Plot the results
drawdown.plot()
plt.show()