Comece agoraComece grátis

Calcular covariâncias para volatilidade

Em MPT, quantificamos o risco pela volatilidade. A matemática para calcular a volatilidade de uma carteira é complexa e requer covariâncias dos retornos diários. Agora vamos percorrer cada mês no DataFrame returns_monthly e calcular a covariância dos retornos diários.

Com índices de data/hora do pandas, dá para acessar o mês e o ano com df.index.month e df.index.year. Vamos usar isso para criar uma máscara para returns_daily que traga os retornos diários do mês e ano atuais no loop. Em seguida, usamos a máscara para filtrar o DataFrame assim: df[mask]. Isso retorna as entradas em returns_daily que estão no mês e ano atuais em cada iteração do loop. Por fim, vamos usar o método .cov() do pandas para obter a covariância dos retornos diários.

Este exercicio faz parte do curso

Machine Learning para Finanças em Python

Ver curso

Instruções do exercicio

  • Faça um loop pelo índice de returns_monthly.
  • Crie uma máscara para returns_daily que use o mês e o ano atuais de returns_monthly e combine isso com o mês e o ano atuais de i no loop.
  • Use a máscara em returns_daily e calcule as covariâncias usando .cov().

exercicio interativo prático

Tente este exercicio completando este código de exemplo.

# Daily covariance of stocks (for each monthly period)
covariances = {}
rtd_idx = returns_daily.index
for i in returns_monthly.____:    
    # Mask daily returns for each month and year, and calculate covariance
    mask = (rtd_idx.month == i.month) & (rtd_idx.____ == i.____)
    
    # Use the mask to get daily returns for the current month and year of monthy returns index
    covariances[i] = returns_daily[____].cov()

print(covariances[i])
Editar e Executar Código