Historyczny drawdown
Rynek akcji ma tendencję do wzrostu w długim okresie, ale nie oznacza to, że unikniesz okresów drawdownu.
Drawdown można zmierzyć jako procentową stratę od najwyższego skumulowanego punktu historycznego.
W Pythonie możesz użyć funkcji .accumulate() i .maximum(), aby obliczyć bieżące maksimum, oraz poniższego wzoru, aby obliczyć drawdown:
$$ \text{Drawdown} = \frac{r_t}{RM} - 1$$
- \(r_t\): Skumulowany zwrot w czasie t
- \(RM\): Bieżące maksimum
Skumulowane zwroty USO – funduszu ETF śledzącego ceny ropy – są dostępne w zmiennej cum_rets.
To ćwiczenie jest częścią kursu
Wprowadzenie do zarządzania ryzykiem portfela w Pythonie
Instrukcje do ćwiczenia
- Oblicz bieżące maksimum skumulowanych zwrotów funduszu ETF USO (
cum_rets), używającnp.maximum.accumulate(). - W miejscach, gdzie bieżące maksimum (
running_max) spada poniżej 1, ustaw je równe 1. - Oblicz
drawdown, korzystając z powyższego wzoru z użyciemcum_retsirunning_max. - Przejrzyj wykres.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
# 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()