投资组合优化约束 Matrix/bvec 解释

Portfolio Optimization constraints Matrix/bvec explanation

我最近对投资组合优化非常感兴趣并开始使用 R 来创建最小方差投资组合,

library(quadprog)
Dmat <- matrix(c(356.25808, 12.31581, 261.88302, 12.31581, 27.24840,
18.50515,261.88302, 18.50515,535.45960), nrow=3, ncol=3)
dvec <- matrix(c(9.33, 3.33, 9.07), nrow=3, ncol=1)
A.Equality <- matrix(c(1,1,1), ncol=1)
Amat <- cbind(A.Equality, dvec, diag(3), -diag(3))
bvec <- c(1, 5.2, rep(0, 3), rep(-0.5, 3))
qp <- solve.QP(Dmat, dvec, Amat, bvec, meq=1)

上面的示例具有以下约束(来自 here 的示例)

有 4 个限制条件:

我目前正在尝试复习我的 matrix/vector 数学,如果有人能告诉我如何将单独的约束添加到 aMat 和 bvec 中以及它的基本代数背景,我将不胜感激。作为另一个问题,权重 <0(做空)的约束会是什么样子。

提前致谢

第一步是写下数学模型。这可能看起来像:

下一部分是在 R 的 quadprog 中实现它。这可能看起来像:

  • 在代码中添加注释可能有助于以后理解它
  • Quadprog 不允许对变量设置简单的下限和上限,因此我们需要将这些转换为 >= 不等式。
  • 请注意 Quadprog 最小化 0.5*x'Qx。这与最小化 x'Qx 的结果相同。
  • 可以通过在 x 上使用其他下限来允许做空。
  • 您的数据使模型不可行。我将分配上限从 0.5 放宽到 0.8。