Constraints hinzufügen
Constraints werden mit der Funktion add.constraint() zum Portfolio-Spezifikationsobjekt hinzugefügt. Jeder hinzugefügte Constraint ist ein eigenes Objekt und wird im Slot constraints des Portfolio-Objekts gespeichert. So bleiben die Constraints modular und du kannst sie im Portfolio-Objekt leicht hinzufügen, entfernen oder anpassen. Die erforderlichen Argumente für add.constraint() sind das portfolio, zu dem der Constraint hinzugefügt wird, der Constraint-type sowie benannte Argumente, die über ... an den Konstruktor des jeweiligen Constraint-Typs übergeben werden.
Grundlegende Constraint-Typen:
- Constraint für die Summe der Gewichte festlegen
weight_sum,weight,leveragefull_investmentist ein Sonderfall, dermin_sum = max_sum = 1setztdollar_neutralist ein Sonderfall, dermin_sum = max_sum = 0setzt
- Constraints für einzelne Asset-Gewichte festlegen
boxlong_onlyist ein Sonderfall, dermin = 0undmax = 1setzt
- Constraint für die Summe der Gewichte von Assets nach Gruppe (Sektor, Region, Assetklasse usw.) festlegen
group
- Constraint auf die Ziel-Mean-Return festlegen
return
In dieser Übung fügst du einige der gängigeren Constraint-Typen hinzu. Zusätzlich zu den oben aufgeführten grundlegenden Typen unterstützt PortfolioAnalytics auch Constraints für Positionslimits, Turnover, Diversifikation, Faktor-Exposures und Leverage-Exposures. Wenn dich die anderen Typen interessieren, sieh dir die Hilfedateien zu den Constraint-Konstruktoren an. Die Hilfen enthalten eine Beschreibung des Constraint-Typs sowie Beispielcode.
Diese Übung ist Teil des Kurses
Fortgeschrittene Portfolioanalyse in R
Anleitung zur Übung
- Füge einen
weight_sum-Constraint hinzu, sodass die minimale Summe der Gewichte 1 und die maximale Summe der Gewichte 1 ist. - Füge einen
box-Constraint hinzu, sodass die ersten fünf Assets ein Mindestgewicht von 10 % und die übrigen Assets ein Mindestgewicht von 5 % haben. Alle Assets haben ein Höchstgewicht von 40 %. - Füge einen
group-Constraint hinzu, sodass die Assets 1, 5, 7, 9, 10 und 11 die erste Gruppe bilden und die Assets 2, 3, 4, 6, 8 und 12 die zweite Gruppe. Setze das Mindestgewicht für jede Gruppe auf 40 % und das Höchstgewicht auf 60 %.
Interaktive Übung
Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.
# Add the weight sum constraint
port_spec <- add.constraint(portfolio = ___, type = ___, min_sum = ___, max_sum = ___)
# Add the box constraint
port_spec <- add.constraint(portfolio = ___, type = ___, min = c(___), max = ___)
# Add the group constraint
port_spec <- add.constraint(portfolio = ___, type = ___, groups = list(c(___), c(___)), group_min = ___, group_max = ___)
# Print the portfolio specification object