Volatilidade e quebras estruturais
A visualização das mudanças na volatilidade ajuda a revelar possíveis pontos de ruptura estrutural nas séries temporais. Ao identificar quando a volatilidade parece mudar, você pode fazer uma escolha informada do ponto de interrupção que, por sua vez, pode ser usado para outras análises estatísticas (como o teste de Chow).
Você examinará duas visualizações da volatilidade da carteira do banco de investimento de 2008 a 2009, para dois pesos de carteira disponíveis: weights_with_citi
e weights_without_citi
. Elas correspondem, respectivamente, a carteiras ponderadas por igual com e sem o Citibank, que apresentou (como você viu no Capítulo 1) a maior volatilidade dos quatro ativos durante o período.
Os preços da carteira para 2008-2009 com o Citibank estão disponíveis em prices_with_citi
, e sem o Citibank em prices_without_citi
.
Este exercício faz parte do curso
Gerenciamento quantitativo de riscos em Python
Instruções de exercício
- Encontre a série de retornos para os dois portfólios usando
weights_with_citi
eweights_without_citi
. - Calcule os desvios padrão da janela de rolagem de 30 dias para ambas as carteiras.
- Combine os dois objetos Pandas
Series
em um único objeto DataFrame "vol
". - Trace o conteúdo do objeto
vol
para comparar as duas volatilidades do portfólio ao longo do tempo.
Exercício interativo prático
Experimente este exercício preenchendo este código de exemplo.
# 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()