我正在努力解决R中的投资组合优化问题,并且我正在努力寻找关于如何使用solve.QP编码约束等的共识。
基本上我已经计算了n个资产的回报的协方差矩阵,我理解为Dmat,但是,我不确定其余的。我希望我的约束纯粹是所有权重总和为1并且它们必须都是绝对值以下的特定大小(max.allocation),即
|x_i|<max.allocation<=1.
因此,我正确地想,我的Amat应该是:
Amat <- matrix(1,nrow=n)
Amat <- cbind(Amat, -diag(n))
另外,我的bvec应该是:
bvec <- 1
bvec <- c(bvec, rep(-max.allocation,n))
我是否有理由相信,因为只有一个约束是meq = 1的相等?最后,我的研究似乎指出:
dvec <- rep(0,n)
但如果是这种情况,那么资产的平均回报会在哪里产生问题?
我所要做的就是解决投资组合权重并最小化给定投资组合收益的投资组合标准差,而不是绘制有效边界。
我已经看过这位经济学家的帖子了,它让我到了现在的位置。抱歉,因为我对这种求解技术不熟悉,但任何帮助简化和清理我的参数需要的帮助都会有很大帮助。
感谢。
答案 0 :(得分:1)
如果你想添加
|x(i)| <= U
然后在quadprog
中您需要将其拆分为:
-x(i) >= -U
x(i) >= -U
所以你最终在Amat
中得到了2个额外的对角线结构。