Volatilita a strukturální zlomy
Vizualizace změn volatility pomáhá odhalit možné body strukturálních zlomů v časových řadách. Když identifikuješ, kdy se volatilita mění, můžeš informovaně zvolit bod zlomu, který pak poslouží k dalším statistickým analýzám (například Chowovu testu).
Prohlédneš si dvě vizualizace volatility portfolia investiční banky za roky 2008–2009, a to pro dvě dostupné váhy portfolia: weights_with_citi a weights_without_citi. Ty odpovídají portfoliím s rovnoměrným vážením – s Citibank a bez ní. Citibank vykazovala (jak jsi viděl/a v kapitole 1) nejvyšší volatilitu ze čtyř aktiv za dané období.
Ceny portfolia za roky 2008–2009 s Citibank jsou k dispozici jako prices_with_citi, bez Citibank jako prices_without_citi.
Toto cvičení je součástí kurzu
Kvantitativní řízení rizik v Pythonu
Pokyny k cvičení
- Pomocí
weights_with_citiaweights_without_citinajdi série výnosů pro obě portfolia. - Vypočítej 30denní klouzavé směrodatné odchylky pro obě portfolia.
- Oba objekty
Seriesz Pandas zkombinuj do jediného objektuDataFrames názvem "vol". - Vykresli obsah objektu
vola porovnej volatility obou portfolií v čase.
Interaktivní cvičení na vyzkoušení si v praxi
Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.
# Find the time series of returns with and without Citibank
ret_with_citi = prices_with_citi.____.dot(weights_with_citi)
ret_without_citi = prices_without_citi.pct_change().____(____)
# Find the average 30-day rolling window volatility as the standard deviation
vol_with_citi = ret_with_citi.____.std().dropna().rename("With Citi")
vol_without_citi = ret_without_citi.rolling(30).____.dropna().rename("Without Citi")
# Combine two volatilities into one Pandas DataFrame
vol = pd.concat([____, ____], axis=1)
# Plot volatilities over time
vol.____().set_ylabel("Losses")
plt.show()