Refinar restrições e objetivos
Aqui, partimos da hipótese de que refinar as restrições e/ou os objetivos melhora o desempenho. Vamos adicionar um objetivo de orçamento de risco para definir a contribuição mínima e máxima percentual para o risco de cada ativo. Vamos aproveitar a especificação do portfólio que criamos. Esse é um problema de otimização mais complexo e exigirá um solver global, então usaremos portfólios aleatórios como método de otimização.
Este exercício faz parte do curso
Análise Intermediária de Portfólio em R
Instruções do exercício
- Adicione um objetivo de orçamento de risco
risk_budgetaport_spec, em que o risco é definido como desvio padrão. Defina a porcentagem mínima de risco em 5% e a máxima em 10%. - Execute a otimização com rebalanceamento trimestral. Defina o período de treinamento e a janela móvel para usar 5 anos de dados. Atribua os resultados a uma variável chamada
opt_rebal_rb. - Faça o gráfico dos pesos.
- Faça o gráfico da contribuição percentual de cada componente para o risco.
- Calcule os retornos do portfólio usando
Return.portfolio(). Atribua os retornos a uma variável chamadareturns_rb.
Exercício interativo prático
Experimente este exercício completando este código de exemplo.
# Add a risk budge objective
port_spec <- add.objective(portfolio = ___,
type = ___,
name = ___,
min_prisk = ___,
max_prisk = ___)
# Run the optimization
opt_rebal_rb <- optimize.portfolio.rebalancing(R = ___,
portfolio = ___,
optimize_method = "random", rp = rp,
trace = TRUE,
rebalance_on = ___,
training_period = ___,
rolling_window = ___)
# Chart the weights
# Chart the percentage contribution to risk
chart.RiskBudget(___, match.col = "StdDev", risk.type = ___)
# Compute the portfolio returns
returns_rb <- Return.portfolio(R = ___, weights = ___)
colnames(returns_rb) <- "risk_budget"