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
Instruções do exercício
- Importe a classe
EfficientCVaRdepypfopt.efficient_frontier. - Crie a instância
ecda classeEfficientCVaRusandoreturns; note que você não precisa deexpected_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()deec.
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)