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
Instruções do exercicio
- Faça um loop pelo índice de
returns_monthly. - Crie uma máscara para
returns_dailyque use o mês e o ano atuais dereturns_monthlye combine isso com o mês e o ano atuais deino loop. - Use a máscara em
returns_dailye 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])