微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用 R 中的 ROI 包对投资组合进行二次效用最大化,返回分配给一项资产的结果

如何解决使用 R 中的 ROI 包对投资组合进行二次效用最大化,返回分配给一项资产的结果

我专门浏览了 tutorial for the ROI package 部分 4:最大化二次效用。目标是找到一个由 4 种资产组成的最佳投资组合,在最大化预期回报的同时也惩罚增加投资组合风险的目标函数。求解器返回一个完全分配在资产中的投资组合,其方差最低,这不是我预期的结果。可能是我以某种方式错误地指定了问题?

library(PortfolioAnalytics)
library(foreach)
library(iterators)
library(ROI)
library(ROI.plugin.quadprog)
library(ROI.plugin.glpk)

# Create Initial Portfolio Object
init_portf <- portfolio.spec(assets=funds)

# Create Full investment constraint
fi_constr <- weight_sum_constraint(type="full_investment")

# Create Long only constraint
lo_constr <- Box_constraint(type="long_only",assets=init_portf$assets)

# Combine constraints into a list
qu_constr <- list(fi_constr,lo_constr)

# Create a return objective
ret_obj <- return_objective(name="mean")

# Create variance objective specifying a risk_aversion parameter which controls
# how much the variance is penalized
var_obj <- portfolio_risk_objective(name="var",risk_aversion=0.25)

# Combine the objectives into a list
qu_obj <- list(ret_obj,var_obj)

# Run optimization
opt_qu <- optimize.portfolio(R=returns,portfolio=init_portf,constraints=qu_constr,objectives=qu_obj,optimize_method="ROI",trace=TRUE)

print(opt_qu)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。