1
私はquadprog
linkを使用して、最適な重みのポートフォリオを見つけます。Aeq * X <= Beqでのみ負の制約を定義する方法
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);
が、私は今、すなわち、すべての短期のみ制約セットアップにトリングています:以下のように
これまでのところ、私は長いだけの制約を実装するために管理している(つまり、重みがゼロより小さいw >= 0 and w1 + w2 + ... wN = 1)
をすることはできません重みは-1まで追加する必要があり、彼らがする必要があり、すべての小さな厳格またはゼロに等しい。これはあなたがどんな不平等≥bの「より大きい」に書き換えることができますか?
完璧に動作します! – JohnAndrews
フォローアップをお願いします。肯定と否定の両方を許すためには、どう書き直しますか?ここに私の考えがあります:Aeq = ones(1、NumAssets); beq = 1; A = []; b = []; – JohnAndrews
あなたは間違いなく 'A = []; b = []; '部分。ただし、重みが1と-1の両方に同時に加算されることはありません。あなたの 'Aeq = ones(1、NumAssets); beq = 1;は、1に加算する必要があることを意味します。 – Lumen