Resolva um problema simples de otimização de portfólio
Neste primeiro exercício, você vai aprender a resolver um problema simples de otimização de portfólio usando PortfolioAnalytics. Você vai aprender a criar um objeto de especificação de portfólio, adicionar restrições e objetivos e resolver o problema de otimização. O problema é formar um portfólio de variância mínima, sujeito às restrições de investimento total e somente posições compradas (long only). O objetivo é minimizar a variância do portfólio. Há duas restrições neste problema: a restrição de investimento total significa que os pesos devem somar 1, e a restrição de somente posições compradas significa que todos os pesos devem ser maiores ou iguais a 0 (ou seja, não são permitidas posições vendidas).
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 ao objeto
port_specuma restrição de investimento total de modo que os pesos somem 1. - Adicione ao objeto
port_specuma restrição de somente posições compradas (long only) de modo que o peso de um ativo fique entre 0 e 1. - Adicione ao objeto
port_specum objetivo para minimizar o desvio padrão do portfólio. - Resolva o problema de otimização do portfólio usando
optimize_method = "ROI". Atribua os resultados da otimização a um objeto chamadoopt.
Exercício interativo prático
Experimente este exercício completando este código de exemplo.
# Create the portfolio specification
port_spec <- portfolio.spec(colnames(___))
# 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 minimize portfolio standard deviation
port_spec <- add.objective(portfolio = ___, type = "___", name = "___")
# Solve the optimization problem
opt <- optimize.portfolio(___, portfolio = ___, optimize_method = "___")