繁体   English   中英

投资组合优化约束矩阵/ 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)

上面的示例具有以下约束( 此处为示例)

有4个约束:

  • 权重之和等于1
  • 投资组合的预期收益等于5.2%
  • 每项资产权重均大于0
  • 每个资产的权重小于.5

我目前正在尝试刷新矩阵/矢量数学,如果有人能告诉我如何在aMat和bvec以及基本代数背景中将各个约束加在一起,我将不胜感激。 另一个问题是权重<0(短路)的约束看起来如何。

提前致谢

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

在此处输入图片说明

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

在此处输入图片说明

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM