Začněte nyníZačněte zdarma

Zpřesnění omezení a cílů

Předpokládáme, že zpřesnění omezení a/nebo cílů výkonnost portfolia zlepší. Přidáme cíl rizikového rozpočtu, který nastaví minimální a maximální procentuální příspěvek každého aktiva k celkovému riziku. Budeme stavět na specifikaci portfolia, kterou jsme již vytvořili. Jde o složitější optimalizační úlohu, která vyžaduje globální řešič – jako metodu optimalizace proto použijeme náhodná portfolia.

Toto cvičení je součástí kurzu

Intermediate Portfolio Analysis in R

Zobrazit kurz

Pokyny k cvičení

  • Přidej do port_spec cíl rizikového rozpočtu risk_budget, kde je riziko definováno jako směrodatná odchylka. Nastav minimální procentuální příspěvek k riziku na 5 % a maximální na 10 %.
  • Spusť optimalizaci s čtvrtletním rebalancováním. Nastav tréninkové období a klouzavé okno na 5 let dat. Výsledky ulož do proměnné opt_rebal_rb.
  • Zobraz graf vah.
  • Zobraz graf procentuálního příspěvku jednotlivých složek k riziku.
  • Vypočítej výnosy portfolia pomocí Return.portfolio(). Výnosy ulož do proměnné returns_rb.

Interaktivní cvičení na vyzkoušení si v praxi

Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.


# 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"
Upravit a spustit kód