Zacznij terazZacznij za darmo

Zmienność i przełomy strukturalne

Wizualizacja zmian zmienności pomaga ujawnić potencjalne punkty przełomu strukturalnego w szeregach czasowych. Identyfikując momenty, w których zmienność wydaje się zmieniać, można świadomie wybrać punkt przełomu – a następnie wykorzystać go do dalszej analizy statystycznej (np. testu Chowa).

Przeanalizujesz dwie wizualizacje zmienności portfela banku inwestycyjnego z lat 2008–2009, dla dwóch dostępnych wag portfela: weights_with_citi i weights_without_citi. Odpowiadają one kolejno portfelom z równymi wagami – z Citibankiem i bez niego. Citibank wykazywał (jak widać w rozdziale 1.) najwyższą zmienność spośród czterech aktywów w tym okresie.

Ceny portfela z lat 2008–2009 z Citibankiem są dostępne jako prices_with_citi, a bez Citibanku jako prices_without_citi.

To ćwiczenie jest częścią kursu

Ilościowe zarządzanie ryzykiem w Pythonie

Zobacz kurs

Instrukcje do ćwiczenia

  • Wyznacz szeregi zwrotów dla obu portfeli, korzystając z weights_with_citi i weights_without_citi.
  • Oblicz 30-dniowe kroczące odchylenia standardowe dla obu portfeli.
  • Połącz oba obiekty Series biblioteki Pandas w jeden obiekt DataFrame o nazwie "vol".
  • Zwizualizuj zawartość obiektu vol, aby porównać zmienność obu portfeli w czasie.

Interaktywne ćwiczenie praktyczne

Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.

# 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()
Edytuj i uruchom kod