【问题标题】:Constrained portfolio optimisation with quadratic solving使用二次求解的约束投资组合优化
【发布时间】:2018-03-17 14:52:42
【问题描述】:

我正在努力解决 R 中的投资组合优化问题,并且我正在努力就如何使用solve.QP 对约束等进行编码达成共识。

基本上我已经计算了 n 个资产收益的协方差矩阵,我理解为 Dmat,但是,我不确定其余的。我希望我的约束纯粹是所有权重总和为 1,并且它们的绝对值必须都低于某个大小(最大分配),即

|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)

但如果是这样的话,资产的平均收益在哪里会出现问题呢?

我要做的只是求解投资组合权重并最小化给定投资组合回报的投资组合标准差,而不是绘制有效边界。

我已经看到了economyatlarge 的帖子,它把我带到了现在的位置。道歉,因为我是这种解决技术的新手,但是任何有助于简化和清除我的参数需要的帮助都会有很大帮助。

谢谢。

【问题讨论】:

  • 我不熟悉这个包,所以这是暂定的,但是:我认为你需要将 matrix(1,nrow=n) 乘以 max.allocation 并在前面添加一列 [1, rep(-1,n)] 在 Amat 中。如果你想最小化投资组合的回报,我认为你需要使用平均回报来表达投资组合的分配回报,然后将其作为约束。此外,由于您使用的是线性方程,因此您可能必须最小化方差而不是 std(这是等效的,但设置会略有不同)。一个指向economicatlarge 帖子的链接可能会有所帮助。

标签: r optimization solver portfolio quadratic-programming


【解决方案1】:

如果要添加

|x(i)| <= U

那么在quadprog你需要把它拆分成:

-x(i) >= -U
 x(i) >= -U

所以你最终会在Amat 中得到 2 个额外的对角线结构。

【讨论】:

    猜你喜欢
    • 2016-03-12
    • 2016-08-18
    • 1970-01-01
    • 2016-07-19
    • 2021-12-18
    • 2014-07-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多