Förfina restriktioner och målsättningar
Här antar vi att förfinade restriktioner och/eller målsättningar kan förbättra prestandan. Låt oss lägga till en riskbudgetmålsättning för att ange ett minimi- och maximiprocentuellt riskbidrag för varje tillgång. Vi bygger vidare på den portföljspecifikation vi skapade. Det här är ett mer komplext optimeringsproblem som kräver en global lösare, så vi använder slumpmässiga portföljer som optimeringsmetod.
Den här övningen är en del av kursen
Portföljanalys på avancerad nivå i R
Övningsinstruktioner
- Lägg till en riskbudgetmålsättning
risk_budgettillport_specdär risk definieras som standardavvikelse. Ange minsta procentuella risk till 5 % och högsta till 10 %. - Kör optimeringen med kvartalsvisa ombalanseringar. Ange träningsperioden och det rullande fönstret till 5 år av data. Tilldela resultaten till en variabel med namnet
opt_rebal_rb. - Visualisera vikterna.
- Visualisera komponenternas procentuella riskbidrag.
- Beräkna portföljavkastningen med
Return.portfolio(). Tilldela avkastningen till en variabel med namnetreturns_rb.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
# 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"