javascript - 在 JavaScript 中使用quadprog 进行投资组合优化约束错误

标签 javascript optimization linear-algebra quantitative-finance quadratic-programming

我无法弄清楚我在 numeric.js 中使用quadprog进行投资组合优化(找到最佳权重)时做错了什么

我的投资组合限制很简单:权重总和应为 1,所有权重(3 种 Assets 中的每一种)应介于 0 和 1 之间(无卖空、无杠杆)。约束无法被识别,权重变得非常高(而且也是负值)。

    var constraintsmatrix = [[0,0,0,0], [1,0,1,0], [1,0,0,0]]; 
    var covmatrix = [[0.00020817,0.00016281,0.00009747],[0.00016281,0.00026680,0.00009912],[0.00009747,0.00009912,0.00019958]]; 
    var returnsmatrix = [0.1,0.05,0.1];
    var bvec = 1; // [1,0,0,0,0,0,0,1,1,1];
    var result = numeric.solveQP(covmatrix, returnsmatrix, constraintsmatrix, bvec);

任何提示表示赞赏。谢谢

最佳答案

我相信您的约束没有正确指定,并且 rhs 没有传递。我们想要以下约束(平等第一):

x1+x2+x3 = 1
x1 >= 0
x2 >= 0
x3 >= 0

这对应于

A=[[1,1,0,0],[1,0,1,0],[1,0,0,1]]
b=[1,0,0,0]

这是我得到的:

enter image description here

请注意,此模型的目标是 0.5*x'Dx-d'x。另请注意,我向 solveQP 传递了 5 个参数。

关于javascript - 在 JavaScript 中使用quadprog 进行投资组合优化约束错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35641188/

相关文章:

javascript - jQuery .post 在完成和失败时不返回数据

javascript - 如何解决 JavaScript 中 eslinter 的无限制语法?

optimization - 检查 TI-Basic 列表中的每个值

c# - 优化 C#/.NET 程序的技巧

c++ - Eigen middleCols() 惩罚

c++ - 在 C/C++ 中使用 GSL 将多边形投影到平面上

javascript - 如何在javascript中过滤和添加剩余的obj

javascript - JavaScript 中的输入范围不移动

matrix - J 中的对角矩阵

python - 找到适合给定起点的一组点的最大圆(numpy)