最大化回报 - 投资组合优化

时间:2016-06-08 12:00:09

标签: r portfolio quadprog

另一个投资组合优化问题......

我尝试使用quadprog在限制sum(P)= 1,MaxW <= 0.55和MinW&gt; = 0.05的情况下最大化四个资产组合的回报。

该期间的平均回报为

covM <-  matrix(c(2.876044e-04, 6.758444e-05, 4.382673e-05, 1.167429e-04,
                6.758444e-05, 2.331315e-04, 5.797771e-05, 1.087006e-04,
                4.382673e-05, 5.797771e-05, 2.568974e-04, 8.544499e-05,
                1.167429e-04, 1.087006e-04, 8.544499e-05, 2.085108e-03), ncol=4)

而协方差矩阵

require(quadprog)

nAssets <- length(avgR)
Dmat <- 2 * covM

upperB <- 0.55
lowerB <- 0.05
ub <- rep(upperB, nAssets)
lb <- rep(lowerB, nAssets)

dvec <- avgR

Amat <- rbind(1, diag(nAssets), -diag(nAssets))

bvec <- c(1, lb, -ub)

solve <- solve.QP(Dmat = Dmat, dvec = dvec, Amat = t(Amat), bvec = bvec, meq = 1)
solve$solution

我到目前为止

0.55000000 0.33032755 0.06967245 0.05000000

返回

0.55 0.35 0.05 0.05

作为最佳分配。

在Excel中使用相同的数据我得到另一个解决方案(具有更高的回报);

0.65 0.25 0.05 0.05

但是,将R和Excel的上限设置为0.65会返回相同的解决方案;

{{1}}

我错过了什么?

1 个答案:

答案 0 :(得分:0)

我通过设置

解决了这个问题
dvec <- avgR * 100

因此似乎是一些舍入错误...