自定义目标函数
PortfolioAnalytics 的一个关键特性是:目标的名称必须是一个有效的 R 函数。该包的设计追求灵活与模块化,自定义目标函数正是一个很好的例子。定义自定义矩函数时应遵循以下准则:
- 目标函数必须返回一个单一值,以便优化器执行最小化或最大化。
- 强烈建议使用
R表示资产收益,使用weights表示投资组合权重。
这些参数名会被自动检测并高效处理。目标函数的其他参数可以作为具名列表,通过 add.objective() 函数中的 arguments 传入。
本练习是课程的一部分
R 中级投资组合分析
练习说明
- 定义一个自定义目标函数,用于计算投资组合的年化标准差。
交互式实操练习
通过完成这段示例代码来试试这个练习。
# Custom annualized portfolio standard deviation
pasd <- function(___, ___, sigma, scale = 12){
sqrt(as.numeric(t(___) %*% ___ %*% ___)) * sqrt(scale)
}