使用 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 (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...