開始使用免費開始

使用自訂目標函式進行最佳化

這個練習延續上一題,將使用自訂目標函式來計算投組的年化標準差。由於目標函式可以是任何有效的 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

編輯並執行程式碼