ComeçarComece gratuitamente

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

Ver Curso

Instruções de exercício

  • Encontre a série de retornos para os dois portfólios usando weights_with_citi e weights_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()
Editar e executar código