ComeçarComece de graça

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, leverage
    • full_investment é um caso especial que define min_sum = max_sum = 1
    • dollar_neutral é um caso especial que define min_sum = max_sum = 0
  • Especificar restrições para os pesos individuais dos ativos
    • box
    • long_only é um caso especial que define min = 0 e max = 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

Ver curso

Instruções do exercício

  • Adicione uma restrição weight_sum de forma que a soma mínima dos pesos seja 1 e a soma máxima dos pesos seja 1.
  • Adicione uma restrição box de 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 group de 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

Editar e executar o código