ПочатиПочніть безкоштовно

Уточнення обмежень та цілей

Тут ми припускаємо, що уточнення обмежень та/або цілей покращить ефективність. Додаймо ціль бюджетування ризику, щоб задати мінімальний і максимальний відсотковий внесок у ризик для кожного активу. Ми продовжимо роботу зі створеною специфікацією портфеля. Це складніша задача оптимізації й потребує глобального розв'язувача, тож як метод оптимізації ми використаємо випадкові портфелі.

Ця вправа є частиною курсу

Середній рівень аналізу портфеля в 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"
Редагувати та запускати код