【问题标题】:How to allow for weights between -1 and 1 using constraints in Aeq x <= beq如何使用 Aeq x <= beq 中的约束允许 -1 和 1 之间的权重
【发布时间】:2017-06-11 06:21:12
【问题描述】:

我正在使用quadprog 寻找最佳权重组合。

到目前为止,我已经成功实现了 long-onlyshort-only 约束,如下所示:

FirstDegree             = zeros(NumAssets,1);
SecondDegree            = Covariance;

只做多头

Aeq                     = ones(1,NumAssets);
beq                     = 1;
A                       = -eye(NumAssets);
b                       = zeros(NumAssets,1);

x0                      = 1/NumAssets*ones(NumAssets,1);
MinVol_Weights          = quadprog(SecondDegree,FirstDegree,A,b,Aeq,beq,[],[],x0, options);

短片

Aeq                     = ones(1,NumAssets);
beq                     = -1;
A                       = eye(NumAssets);
b                       = zeros(NumAssets,1);

x0                      = -1/NumAssets*ones(NumAssets,1);
MinVol_Weights          = quadprog(SecondDegree,FirstDegree,A,b,Aeq,beq,[],[],x0, options);

我现在正在寻找一种将这两者结合起来并允许长短权重的方法,因此 x 可以介于 -1 和 1 之间。我该如何实现?

我尝试了以下方法,但它只给了我相同的权重:

多头和空头(不起作用)

A                       = [eye(NumAssets); ones(1, NumAssets); -ones(1, NumAssets)]; 
b                       = [zeros(NumAssets, 1); 1; -1];
Aeq                     = [];
beq                     = [];
lb                      = [];
ub                      = [];

x0                      = 1/NumAssets*ones(NumAssets,1);
MinVol_Weights          = quadprog(SecondDegree,FirstDegree,A,b,Aeq,beq,lb,ub,x0, options);

【问题讨论】:

  • 最后一个组件中的 –1 也应该是 +1。表示–Σ w_i ≤ 1,与–1 ≤ Σ w_i相同。
  • 对不起,我想我不明白你想要达到什么目的。你能用你自己的话,或者甚至用数学来描述你想要的二次程序吗?您希望对变量进行哪些约束?
  • 只是它们介于 -1 和 1 之间。仅此而已。 IE。投资者可以做多或做空。 short之和加起来为-1,long之和加起来为1,但不一定是这样。

标签: matlab optimization constraints portfolio quadprog


【解决方案1】:

如果您想要的只是所有权重的总和在 –1 和 1 之间,那么 b 的最后一个分量中的 –1 也应该是 +1。 –Σw_i ≤ 1–1 ≤ Σw_i 相同。将它与 Σw_i ≤ 1 结合,您会得到 –1 ≤ Σw_i ≤ 1

A  = [ ones(1, NumAssets);
      -ones(1, NumAssets)]; 
b  = [1;
      1];
Aeq = [];
beq = [];
lb = [];
ub = [];

【讨论】:

    猜你喜欢
    • 2017-06-08
    • 1970-01-01
    • 1970-01-01
    • 2012-10-06
    • 2017-03-02
    • 2021-01-24
    • 2019-06-30
    • 1970-01-01
    • 2010-09-07
    相关资源
    最近更新 更多