Rafinează constrângerile și obiectivele
Ipoteza noastră este că rafinarea constrângerilor și/sau a obiectivelor va îmbunătăți performanța. Vom adăuga un obiectiv de buget de risc pentru a stabili o contribuție minimă și maximă procentuală la risc pentru fiecare activ. Vom construi pe baza specificației de portofoliu pe care am creat-o. Aceasta este o problemă de optimizare mai complexă și va necesita un solver global, deci vom folosi portofoli aleatoare ca metodă de optimizare.
Acest exercițiu face parte din cursul
Analiză intermediară a portofoliului în R
Instrucțiuni pentru exercițiu
- Adaugă un obiectiv de buget de risc
risk_budgetlaport_spec, unde riscul este definit ca deviație standard. Setează procentul minim de risc la 5% și procentul maxim la 10%. - Rulează optimizarea cu reechilibrare trimestrială. Setează perioada de antrenament și fereastra glisantă pentru a folosi 5 ani de date. Atribuie rezultatele unei variabile numite
opt_rebal_rb. - Reprezintă grafic ponderile.
- Reprezintă grafic contribuția procentuală a componentelor la risc.
- Calculează randamentele portofoliului folosind
Return.portfolio(). Atribuie randamentele unei variabile numitereturns_rb.
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
# 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"