Волатильность и структурные разрывы
Визуализация изменений волатильности помогает выявить возможные точки структурного разрыва в временных рядах. Определив моменты изменения волатильности, можно осознанно выбрать точку разрыва и использовать её для дальнейшего статистического анализа (например, теста Чоу).
Вы изучите две визуализации волатильности портфеля инвестиционного банка за 2008–2009 годы для двух наборов весов: weights_with_citi и weights_without_citi. Они соответствуют равновзвешенным портфелям с включением Citibank и без него. Как вы видели в главе 1, Citibank демонстрировал наибольшую волатильность среди четырёх активов за рассматриваемый период.
Цены портфеля за 2008–2009 годы с включением Citibank доступны как prices_with_citi, а без него — как prices_without_citi.
Это упражнение является частью курса
Количественное управление рисками на Python
Инструкции к упражнению
- Найдите ряды доходностей для двух портфелей, используя
weights_with_citiиweights_without_citi. - Вычислите скользящие стандартные отклонения с окном 30 дней для обоих портфелей.
- Объедините оба объекта
Seriesтипа Pandas в единый объектDataFrameс именем "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()