ComeçarComece de graça

Minimizando o CVaR

Neste exercício, você vai praticar o uso das ferramentas do PyPortfolioOpt para minimizar o CVaR como objetivo de gerenciamento de risco.

Você vai carregar o módulo pypfopt.efficient_frontier e obter a classe EfficientCVaR, criando uma instância da classe usando os ativos de bancos de investimento no período de 2005 a 2010.

Depois, você usará o método min_cvar() dessa instância para encontrar os pesos ideais do portfólio que minimizam o CVaR.

Os retornos dos ativos do portfólio estão no vetor returns — este exercício também usa um dicionário names para mapear os pesos do portfólio para os nomes dos bancos.

Este exercício faz parte do curso

Gerenciamento Quantitativo de Risco em Python

Ver curso

Instruções do exercício

  • Importe a classe EfficientCVaR de pypfopt.efficient_frontier.
  • Crie a instância ec da classe EfficientCVaR usando returns; note que você não precisa de expected_returns, já que a função objetivo é diferente da otimização média-variância.
  • Encontre e exiba o portfólio ótimo usando o método .min_cvar() de ec.

Exercício interativo prático

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

# Import the EfficientCVaR class
from pypfopt.____ import EfficientCVaR

# Create the efficient frontier for CVaR minimization
ec = ____(None, ____)

# Find the cVaR-minimizing portfolio weights at the default 95% confidence level
optimal_weights = ec.____()

# Map the values in optimal_weights to the bank names
optimal_weights = { names[i] : optimal_weights[i] for i in optimal_weights}

# Display the optimal weights
print(optimal_weights)
Editar e executar o código