Ich versuche mit solve.QP ein Problem der Portfoliooptimierung zu lösen (quadratisches Problem)
Insgesamt 3 Assets
Es gibt 4 Einschränkungen:
Dmat ist die Kovarianzmatrix
%Vor%dvec ist die erwartete Rendite jedes Assets
%Vor%Amat ist die Constraint-Matrix
%Vor%Einschränkung A ^ T b & gt; = b_0, b Vektor
%Vor%meq = 2, da es zwei Gleichheitsbedingungen gibt, sind die erste und die zweite Bedingung die Gleichheit
Dann führe ich die Funktion solve.QP
aus %Vor%Aber es gibt den Fehler
%Vor%Ich bin mir nicht sicher, wo ich falsch gemacht habe.
Es gab zwei Probleme mit dem von Ihnen geposteten Code:
Dmat
ist nicht wirklich symmetrisch; Sie hatten versehentlich den Wert 212.31581 statt 12.31581 meq=2
-Option bedeutet, dass Ihre ersten beiden Bedingungen auf Gleichheit gesetzt sind, was bedeutet, dass Ihre Gewichte 1 ergeben und Ihre Rendite genau 5,2% beträgt. Die zweite Einschränkung ist anscheinend diejenige, die die Unmöglichkeit verursacht; Es scheint, dass es keine gültigen Portfolios gibt, die genau 5,2% entsprechen, wenn Sie andere Einschränkungen beachten. In der Tat, da nicht mehr als die Hälfte des Portfolios eine Rendite von 3,33% haben kann und der Rest eine Rendite von mindestens 9,07% haben muss, muss die Rendite 6,2% oder höher betragen. Daher sollten Sie dies auf eine & gt; = Einschränkung reduzieren, indem Sie meq=1
. Hier ist der Arbeitscode:
%Vor%Die optimale Lösung ist tatsächlich mit einer Rendite von 6,3% verbunden.
Tags und Links r mathematical-optimization portfolio quadratic