ÎncepețiÎncepe gratuit

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

Vezi cursul

Instrucțiuni pentru exercițiu

  • Adaugă un obiectiv de buget de risc risk_budget la port_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 numite returns_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"
Editează și rulează codul