Волатильність і структурні злами
Візуалізація змін волатильності допомагає виявити можливі точки структурного зламу в часових рядах. Визначивши момент, коли волатильність, імовірно, змінюється, можна обґрунтовано вибрати точку зламу, яку далі застосовують у статистичному аналізі (наприклад, у тесті Чоу).
Ви розглянете дві візуалізації волатильності для портфеля інвестбанків за 2008–2009 роки для двох доступних наборів ваг портфеля: weights_with_citi і weights_without_citi. Вони відповідають, відповідно, рівноважним портфелям із Citibank і без нього. Як ви бачили в Розділі 1, Citibank мав найвищу волатильність серед чотирьох активів за цей період.
Ціни портфеля за 2008–2009 роки з Citibank доступні як prices_with_citi, а без Citibank — як prices_without_citi.
Ця вправа є частиною курсу
Кількісне управління ризиками в Python
Інструкції до вправи
- Знайдіть ряди дохідностей для двох портфелів, використовуючи
weights_with_citiіweights_without_citi. - Обчисліть 30-денні стандартні відхилення у рухомому вікні для обох портфелів.
- Об'єднайте обидва об'єкти
Seriesв один датафрейм "vol". - Побудуйте графік об'єкта
vol, щоб порівняти волатильність двох портфелів у часі.
Інтерактивна практична вправа
Спробуйте виконати цю вправу, доповнивши цей зразок коду.
# 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()