Quadprog-Optimierung

8

Hier ist ein interessantes Puzzle.

Im Folgenden finden Sie ein R-Snippet , das den Tangentenpunkt einer quadratischen Funktion in Bezug auf eine von diesem Punkt gezogene Linie angibt (0, rf) auf der y-Achse.

Für diejenigen, die mit der Portfoliotheorie vertraut sind, ist dieser Punkt im Gegenzug und Risiko-Raum und die Lösung besteht aus Gewichten, die das Tangential-Portfolio definieren (max sharpe ratio). Der Ausschnitt ermöglicht negative Gewichtungen (d. H. Kurzschlüsse), und es gibt eine Gleichheitsgewichtsbeschränkung, die die Summe der Gewichtungen = 1 erfordert.

%Vor%

Meine Frage - wie man den Code so anpasst, dass er nach dem optimalen Satz von Gewichtungen so berechnet wird, dass die Summe der Gewichte zu einer beliebigen Zahl addiert wird (einschließlich des Eckfalls eines selbstfinanzierenden Portfolios, wo die Summe der Gewichte = 0 ist) im Gegensatz zur Einheit?

Alternativ könnten Sie in Betracht ziehen, der Kovarianzmatrix mit der Varianz-Kovarianz von 0 ein Element "Cash" hinzuzufügen und eine Gleichheitsbedingung hinzuzufügen, die das Gewicht auf Cash = 1 erfordert. Diese Matrix wäre jedoch nicht positiv semi-definit. Ich vermute auch, dass die Non-Cash-Gewichte trivial Null sein könnten.

    
Ram Ahluwalia 10.05.2012, 01:05
quelle

3 Antworten

8

Lassen Sie uns zuerst erklären, warum dies produziert tatsächlich das maximale Sharpe-Ratio-Portfolio.

Wir möchten, dass w w' mu / sqrt( w' V w ) maximiert. Aber diese Menge ist unverändert, wenn wir w mit einer Zahl multiplizieren (es ist "homogen von Grad 0"): Wir können daher w' mu = 1 und das Problem auferlegen Maximierung von 1 / sqrt( w' V w ) ist äquivalent um w' V w zu minimieren. Das maximale Sharpe-Ratio-Portfolio ist nicht einzigartig: Sie bilden eine Linie. Wenn wir wollen, dass die Gewichte 1 (oder eine andere Zahl ungleich Null) ergeben, wir müssen sie nur neu skalieren.

Wenn wir wollen, dass die Gewichte zu 0 summieren, Wir können diese Einschränkung dem Problem hinzufügen - Es funktioniert nur, weil die Einschränkung auch von Grad 0 homogen ist. Sie müssen die Gewichte immer noch neu skalieren, z. B. 100% lang und 100% kurz.

%Vor%     
Vincent Zoonekynd 10.05.2012, 03:33
quelle
1

Betrachten Sie den Link, den Sie enthalten haben. Offensichtlich ist die Rolle von aMat , bVec , meq = 1 innerhalb des solve.QP Aufrufs, den Wert des Zählers (Ihre Rückkehr) in der Sharpe Ratio Formel zu fixieren, so dass die Optimierung auf Minimierung des Nenners konzentriert ist. In gewissem Sinne ist es vollkommen legal, den Zähler zu reparieren, es ist, als würde man die Gesamtgröße Ihres Portfolios festlegen. Ihr Portfolio kann später nach oben oder unten skaliert werden, es behält die gleiche Sharpe-Ratio bei. Um Ihnen dabei zu helfen, können Sie Ihren Code oben für jeden Wert von bVec ausführen (gewährt, nicht Null) und Sie erhalten dasselbe Ergebnis für die Gewichtung w und die Sharpe-Ratio SR .

Ich denke also, dass Sie die Vorstellung von "Portfoliogewichtungen" falsch interpretieren könnten. Sie sind Verhältnisse, die darstellen, aus was dein Portfolio besteht, und sie sollten zu einem summieren. Sobald Sie die optimale Gewichtung gefunden haben, die Sie bereits getan haben, können Sie Ihr Portfolio beliebig skalieren. Multiplizieren Sie einfach w mit dem aktuellen Wert, den Sie für Ihr Portfolio haben möchten.

    
flodel 10.05.2012 03:33
quelle
0

Dies ist keine gute Technik für lange Portfolios. Selbst Portfolios, die Leerverkäufe tätigen können, haben nach der Normalisierung Gewichtungen des falschen Vorzeichens durch die Summe der Gewichte.

Diese Situationen entstehen mit negativen Überschussrenditen. Das Erzwingen von w'mu = 1 setzt die Lösung in diesen Fällen links vom Ursprung (negatives Risiko).

%Vor%     
rcurry 03.12.2015 18:28
quelle