Maximizar função utilidade quadrática
No vídeo sobre desafios da otimização de portfólios, você viu como resolver um problema de otimização de utilidade quadrática com o pacote quadprog. Neste exercício, você vai ver como resolver um problema de utilidade quadrática usando o pacote PortfolioAnalytics. Lembre-se de que a formulação de utilidade quadrática tem dois termos: um para o retorno médio do portfólio e outro para a variância do portfólio, com um parâmetro de aversão ao risco, lambda.
Este exercício faz parte do curso
Análise Intermediária de Portfólio em R
Instruções do exercício
- Crie um objeto de especificação de portfólio usando os nomes dos ativos do conjunto de dados
index_returnse nomeie o objeto de especificação de portfólio comoport_spec. - Adicione uma restrição de investimento total, de forma que os pesos somem 1, ao objeto
port_spec. - Adicione uma restrição long only, de forma que o peso de um ativo fique entre 0 e 1, ao objeto
port_spec. - Adicione um objetivo para maximizar o retorno médio do portfólio ao objeto
port_spec. - Adicione um objetivo para minimizar a variância do portfólio ao objeto
port_spec. A aversão ao risco deve ser definida como 10. - Execute a otimização. Esse problema pode ser resolvido por um resolvedor de programação quadrática, portanto especifique
optimize_method = "ROI"
Exercício interativo prático
Experimente este exercício completando este código de exemplo.
# Create the portfolio specification
port_spec <- portfolio.spec(assets = ___)
# Add a full investment constraint such that the weights sum to 1
port_spec <- add.constraint(portfolio = ___, type = ___)
# Add a long only constraint such that the weight of an asset is between 0 and 1
port_spec <- add.constraint(portfolio = ___, type = ___)
# Add an objective to maximize portfolio mean return
port_spec <- add.objective(portfolio = ___, type = ___, name = ___)
# Add an objective to minimize portfolio variance
port_spec <- add.objective(portfolio = port_spec, type = ___, name = ___, risk_aversion = ___)
# Solve the optimization problem
opt <- optimize.portfolio(R = ___, portfolio = ___, optimize_method = "ROI")