Minimizando CVaR
Este exercício permitirá que você pratique as ferramentas do PyPortfolioOpt para CVa minimização do risco como um objetivo de gerenciamento de risco.
Você carregará o módulo pypfopt.efficient_frontier
e recuperará a classe EfficientCVaR
, criando uma instância da classe usando os ativos do banco de investimento no período de 2005 a 2010.
Em seguida, você usará o método min_cvar()
da instância para encontrar os pesos ideais do portfólio que minimizem 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 riscos em Python
Instruções de exercício
- Importe a classe
EfficientCVaR
depypfopt.efficient_frontier
. - Crie a instância de classe
EfficientCVaR
ec
usandoreturns
; observe que você não precisa deexpected_returns
, pois a função objetivo é diferente da otimização de média-variância. - Encontre e exiba o portfólio ideal usando o método
ec
'.min_cvar()
.
Exercício interativo prático
Experimente este exercício preenchendo 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)