Adicionar restrições
As restrições são adicionadas ao objeto de especificação de portfólio com a função add.constraint(). Cada restrição adicionada é um objeto separado e fica armazenada no slot constraints do objeto de portfólio. Assim, as restrições são modulares e você pode facilmente adicionar, remover ou modificar as restrições no objeto de portfólio. Os argumentos obrigatórios para add.constraint() são o portfolio ao qual a restrição será adicionada, o type da restrição e os argumentos nomeados passados via ... para o construtor do tipo de restrição.
Tipos básicos de restrição:
- Especificar a restrição sobre a soma dos pesos
weight_sum,weight,leveragefull_investmenté um caso especial que definemin_sum = max_sum = 1dollar_neutralé um caso especial que definemin_sum = max_sum = 0
- Especificar restrições para os pesos individuais dos ativos
boxlong_onlyé um caso especial que definemin = 0emax = 1
- Especificar a restrição para a soma dos pesos dos ativos por grupo (setor, região, classe de ativos etc.)
group
- Especificar uma restrição para o retorno médio alvo
return
Neste exercício, você vai adicionar alguns dos tipos de restrição mais comuns. Além dos tipos básicos listados acima, o PortfolioAnalytics também oferece restrições de limite de posição, giro (turnover), diversificação, exposição a fatores e exposição a alavancagem. Se tiver interesse nos outros tipos de restrição, consulte os arquivos de ajuda dos construtores de restrição. Os arquivos de ajuda incluem uma descrição do tipo de restrição e exemplos de código.
Este exercício faz parte do curso
Análise Intermediária de Portfólio em R
Instruções do exercício
- Adicione uma restrição
weight_sumde forma que a soma mínima dos pesos seja 1 e a soma máxima dos pesos seja 1. - Adicione uma restrição
boxde forma que os cinco primeiros ativos tenham peso mínimo de 10% e os demais ativos tenham peso mínimo de 5%. Todos os ativos têm peso máximo de 40%. - Adicione uma restrição
groupde forma que os ativos 1, 5, 7, 9, 10 e 11 sejam o primeiro grupo e os ativos 2, 3, 4, 6, 8 e 12 sejam o segundo grupo. Defina o peso mínimo em 40% e o peso máximo em 60% para cada grupo.
Exercício interativo prático
Experimente este exercício completando este código de exemplo.
# Add the weight sum constraint
port_spec <- add.constraint(portfolio = ___, type = ___, min_sum = ___, max_sum = ___)
# Add the box constraint
port_spec <- add.constraint(portfolio = ___, type = ___, min = c(___), max = ___)
# Add the group constraint
port_spec <- add.constraint(portfolio = ___, type = ___, groups = list(c(___), c(___)), group_min = ___, group_max = ___)
# Print the portfolio specification object