ComeçarComece de graça

Retornos e risco com ponderação exponencial

Neste exercício, você vai realizar a otimização de portfólio usando uma forma um pouco diferente de estimar risco e retorno: vamos dar mais peso aos dados recentes na otimização.

Essa é uma forma inteligente de lidar com dados de ações que geralmente são não estacionários, ou seja, quando a distribuição muda ao longo do tempo. A implementação pode ser feita rapidamente alterando o modelo de risco usado para calcular Sigma e o cálculo de retornos usado para obter mu. O conjunto de dados de preços das ações está disponível como stock_prices. Vamos lá!

Este exercício faz parte do curso

Introdução à Análise de Portfólios em Python

Ver curso

Instruções do exercício

  • Use a matriz de covariância com ponderação exponencial de risk_models e a função de retornos históricos com ponderação exponencial de expected_returns para calcular Sigma e mu. Defina o span como 180 e a frequência (isto é, os dias de negociação) como 252.
  • Calcule a fronteira eficiente com os novos mu e Sigma.
  • Calcule os pesos para o portfólio de Sharpe máximo.
  • Obtenha o relatório de performance.

Exercício interativo prático

Experimente este exercício completando este código de exemplo.

# Define exponentially weightedSigma and mu using stock_prices
Sigma = risk_models.____(____, span=____, frequency=____)
mu = expected_returns.____(____, frequency=____, span=____)

# Calculate the efficient frontier
ef = ____(____, ____)

# Calculate weights for the maximum sharpe ratio optimization
raw_weights_maxsharpe = ____.____()

# Show portfolio performance 
ef.____(verbose=True)
Editar e executar o código