定期再平衡的最佳化
透過定期再平衡執行最佳化,並分析回測的樣本外結果,是更深入了解並調整限制與目標的重要步驟。optimize.portfolio.rebalancing() 支援帶有定期再平衡(回測)的最佳化,用來檢視樣本外表現。除了 optimize.portfolio() 的引數之外,還必須透過 rebalance_on 指定再平衡頻率,使用 training_period 指定初始最佳化的訓練資料期數,並用 rolling_window 指定最佳化視窗的期數。如果將 rolling_window 設為 NULL,每次最佳化都會使用該期可取得的所有資料。
為了縮短本練習的計算時間,隨機投資組合集合 rp 以 50 次排列生成,並將要測試的投資組合數量 search_size 設為 1000。若你自己在做實際的投資組合最佳化,通常會想測試更多的投資組合(search_size 的預設值是 20,000)!
本練習屬於課程
R 中級投資組合分析
練習說明
- 以「每季再平衡」執行最佳化。將訓練期間與滾動視窗都設為 60 期。資料集為月資料,因此等同使用 5 年的歷史資料。把最佳化的輸出指定給變數
opt_rebal。 - 列印最佳化結果。
動手互動練習
試著完成這個範例程式碼,體驗一下這個練習。
# Run the optimization backtest with quarterly rebalancing
opt_rebal <- optimize.portfolio.rebalancing(R = ___, portfolio = ___, optimize_method = ___, rp = rp, trace = TRUE, search_size = 1000, rebalance_on = ___, training_period = ___, rolling_window = ___)
# Print the output of the optimization backtest