Volatilitate și rupturi structurale
Vizualizarea modificărilor de volatilitate ajută la identificarea posibilelor puncte de ruptură structurală în seriile de timp. Prin identificarea momentelor în care volatilitatea pare să se schimbe, se poate alege un punct de ruptură informat, care poate fi folosit ulterior pentru analize statistice suplimentare (cum ar fi testul Chow).
Vei examina două vizualizări ale volatilității pentru portofoliul băncilor de investiții din perioada 2008–2009, pentru două ponderi disponibile ale portofoliului: weights_with_citi și weights_without_citi. Acestea corespund, respectiv, portofoliilor ponderate egal cu și fără Citibank, care a prezentat (după cum ai văzut în Capitolul 1) cea mai ridicată volatilitate dintre cele patru active pe parcursul perioadei.
Prețurile portofoliului pentru 2008–2009 cu Citibank sunt disponibile ca prices_with_citi, iar fără Citibank ca prices_without_citi.
Acest exercițiu face parte din cursul
Managementul Cantitativ al Riscului în Python
Instrucțiuni pentru exercițiu
- Calculează seriile de randamente pentru cele două portofolii folosind
weights_with_citișiweights_without_citi. - Calculează abaterile standard pe o fereastră mobilă de 30 de zile pentru ambele portofolii.
- Combină ambele obiecte
SeriesPandas într-un singur obiect DataFrame numit "vol". - Reprezintă grafic conținutul obiectului
volpentru a compara volatilitatea celor două portofolii în timp.
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
# 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()