自訂目標函式
PortfolioAnalytics 的一大特色是:目標的名稱本身就是一個有效的 R 函式。此套件的設計強調彈性與模組化,而自訂目標函式正是很好的例子。定義自訂動差(moment)函式時,請遵循以下幾點:
- 目標函式必須回傳單一數值,供最佳化器進行極小化或極大化。
- 強烈建議使用
R代表資產報酬,並使用weights代表投資組合權重。
這些引數名稱會被自動偵測並以高效率方式處理。其他任何目標函式需要的引數,都可以以具名清單的形式,透過 add.objective() 函式的 arguments 參數傳入。
本練習屬於課程
R 中級投資組合分析
練習說明
- 定義一個自訂目標函式,用來計算投資組合的年化標準差。
動手互動練習
試著完成這個範例程式碼,體驗一下這個練習。
# Custom annualized portfolio standard deviation
pasd <- function(___, ___, sigma, scale = 12){
sqrt(as.numeric(t(___) %*% ___ %*% ___)) * sqrt(scale)
}