ÎncepețiÎncepe gratuit

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

Vezi cursul

Instrucțiuni pentru exercițiu

  • Calculează seriile de randamente pentru cele două portofolii folosind weights_with_citi și weights_without_citi.
  • Calculează abaterile standard pe o fereastră mobilă de 30 de zile pentru ambele portofolii.
  • Combină ambele obiecte Series Pandas într-un singur obiect DataFrame numit "vol".
  • Reprezintă grafic conținutul obiectului vol pentru 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()
Editează și rulează codul