開始使用免費開始

調整條件與目標

在這裡我們假設:進一步調整限制條件與/或目標函式,能提升績效。讓我們加入一個風險預算目標,為每一個資產設定其對總風險的最小與最大百分比貢獻。我們會延續先前建立的投資組合規格。這是一個更複雜的最佳化問題,需要全域解算器,因此我們將使用隨機投資組合作為最佳化方法。

本練習屬於課程

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"
編輯並執行程式碼