Volatilidade e quebras estruturais
Visualizar mudanças na volatilidade ajuda a revelar possíveis pontos de quebra estrutural em séries temporais. Ao identificar quando a volatilidade parece mudar, você pode escolher um ponto de quebra de forma informada e usá-lo em análises estatísticas posteriores (como o teste de Chow).
Você vai explorar duas visualizações de volatilidade para o portfólio de bancos de investimento de 2008 a 2009, com dois pesos disponíveis: weights_with_citi e weights_without_citi. Eles correspondem, respectivamente, a portfólios igualmente ponderados com e sem o Citibank, que apresentou (como você viu no Capítulo 1) a maior volatilidade dos quatro ativos no período.
Os preços do portfólio para 2008–2009 com o Citibank estão disponíveis como prices_with_citi, e sem o Citibank como prices_without_citi.
Este exercício faz parte do curso
Gerenciamento Quantitativo de Risco em Python
Instruções do exercício
- Encontre as séries de retornos para os dois portfólios usando
weights_with_citieweights_without_citi. - Calcule o desvio padrão em janela móvel de 30 dias para ambos os portfólios.
- Combine os dois objetos
Seriesdo Pandas em um únicoDataFramechamado "vol". - Plote o conteúdo do objeto
volpara comparar as duas volatilidades do portfólio ao longo do tempo.
Exercício interativo prático
Experimente este exercício completando 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()