調整條件與目標
在這裡我們假設:進一步調整限制條件與/或目標函式,能提升績效。讓我們加入一個風險預算目標,為每一個資產設定其對總風險的最小與最大百分比貢獻。我們會延續先前建立的投資組合規格。這是一個更複雜的最佳化問題,需要全域解算器,因此我們將使用隨機投資組合作為最佳化方法。
本練習屬於課程
R 中級投資組合分析
練習說明
- 在
port_spec中加入風險預算目標risk_budget,並以標準差作為風險定義。將最小風險百分比設為 5%,最大風險百分比設為 10%。 - 以季調整(quarterly rebalancing)執行最佳化。將訓練期間與滾動視窗都設為使用 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"