使用自訂目標函式進行最佳化
這個練習延續上一題,將使用自訂目標函式來計算投組的年化標準差。由於目標函式可以是任何有效的 R 函式,我們為 pasd() 函式加入風險目標。然而,set.portfolio.moments() 函式無法識別 pasd() 這個目標名稱,因此需要建立自訂的動差函式來計算第二動差 sigma。我們將使用隨機投組作為最佳化方法來求解此問題。
本練習屬於課程
R 中級投資組合分析
練習說明
- 將你在上一題建立的自訂目標函式加入投組規格物件。
- 列印投組規格物件,查看限制與目標。
- 執行最佳化。自訂動差函式的名稱是
set_sigma。 - 列印最佳化的結果。
動手互動練習
試著完成這個範例程式碼,體驗一下這個練習。
# Add custom objective to portfolio specification
port_spec <- add.objective(portfolio = ___, type = ___, name = ___)
# Print the portfolio specificaton object
# Run the optimization
opt <- optimize.portfolio(R = ___, portfolio = ___, momentFUN = ___, optimize_method = "random", rp = rp)
# Print the results of the optimization