新增目標
使用 add.objective() 函式將目標加入投資組合物件。每個加入的目標都是一個獨立物件,並儲存在投資組合規格物件的 objectives 欄位。這種設計讓目標具備模組化特性,你可以輕鬆加入、移除或修改目標物件。name 參數必須是有效的 R 函式。PerformanceAnalytics 套件提供了多個可用函式,但你也可以使用自訂函式作為目標函式。add.objective() 的必要參數包含要加入目標的 portfolio、目標的 type、目標的 name,以及透過 ... 傳給該目標型別建構子的具名參數。目標函式所需的參數,請以具名清單指定給 arguments。
基本目標型別:
return:此型別會最大化目標值。risk:此型別會最小化目標值。risk_budget:此型別會最小化風險集中度,或對超過允許的最低或最高百分比風險貢獻進行懲罰。
除了上述目標型別外,PortfolioAnalytics 也支援二次效用與權重集中度等目標型別。若你對其他約束型別有興趣,請參考各約束建構子的說明文件。說明文件包含該約束型別的描述與範例程式碼。
本練習屬於課程
R 中級投資組合分析
練習說明
- 將報酬目標加入你在前一個練習建立的投資組合規格物件
port_spec。 - 將最小化投資組合標準差的風險目標加入
port_spec。 - 將風險定義為組件標準差的風險預算目標加入
port_spec。將最低百分比風險設為 5%,最高百分比風險設為 10%。 - 印出
port_spec物件。
動手互動練習
試著完成這個範例程式碼,體驗一下這個練習。
# Add a return objective to maximize mean return
port_spec <- add.objective(portfolio = ___, type = ___, name = ___)
# Add a risk objective to minimize portfolio standard deviation
port_spec <- add.objective(portfolio = ___, type = ___, name = ___)
# Add a risk budget objective
port_spec <- add.objective(portfolio = ___, type = ___, name = ___, min_prisk = ___, max_prisk = ___)
# Print the portfolio specification object