Уточнення обмежень та цілей
Тут ми припускаємо, що уточнення обмежень та/або цілей покращить ефективність. Додаймо ціль бюджетування ризику, щоб задати мінімальний і максимальний відсотковий внесок у ризик для кожного активу. Ми продовжимо роботу зі створеною специфікацією портфеля. Це складніша задача оптимізації й потребує глобального розв'язувача, тож як метод оптимізації ми використаємо випадкові портфелі.
Ця вправа є частиною курсу
Середній рівень аналізу портфеля в R
Інструкції до вправи
- Додайте ціль бюджетування ризику
risk_budgetдоport_spec, де ризик визначений як стандартне відхилення. Встановіть мінімальний відсоток ризику 5% і максимальний 10%. - Запустіть оптимізацію з щоквартальним ребалансуванням. Встановіть тренувальний період і ковзне вікно на 5 років даних. Присвойте результати змінній
opt_rebal_rb. - Побудуйте графік ваг.
- Побудуйте графік компонентного відсоткового внеску в ризик.
- Обчисліть доходність портфеля за допомогою
Return.portfolio(). Присвойте доходність зміннійreturns_rb.
Інтерактивна практична вправа
Спробуйте виконати цю вправу, доповнивши цей зразок коду.
# 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"