Verfijn constraints en doelstellingen
We veronderstellen hier dat het verfijnen van constraints en/of doelstellingen de prestaties zal verbeteren. Voeg een risicobudget-doelstelling toe om een minimale en maximale procentuele bijdrage aan het risico voor elk activum vast te leggen. We bouwen voort op de eerder gemaakte portefeuillespecificatie. Dit is een complexer optimalisatieprobleem en vereist een globale oplosser, dus we gebruiken willekeurige portfolio’s als optimalisatiemethode.
Deze oefening maakt deel uit van de cursus
Gevorderde portefeuilleanalyse in R
Oefeninstructies
- Voeg een risicobudget-doelstelling
risk_budgettoe aanport_specwaarbij risico is gedefinieerd als standaarddeviatie. Stel het minimale procentuele risico in op 5% en het maximale op 10%. - Voer de optimalisatie uit met kwartaalherweging. Gebruik een trainingsperiode en rolling window met 5 jaar aan data. Sla de resultaten op in een variabele
opt_rebal_rb. - Visualiseer de gewichten.
- Visualiseer de procentuele componentbijdrage aan het risico.
- Bereken de portefeuillerendementen met
Return.portfolio(). Sla de rendementen op in een variabelereturns_rb.
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
# 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"