Objectives hinzufügen
Objectives werden mit der Funktion add.objective() zum Portfolio-Objekt hinzugefügt. Jedes hinzugefügte Objective ist ein eigenes Objekt und wird im Slot objectives der Portfolio-Spezifikation gespeichert. So bleiben die Objectives modular und du kannst sie leicht hinzufügen, entfernen oder anpassen. Das Argument name muss eine gültige R-Funktion sein. Im Paket PerformanceAnalytics stehen mehrere Funktionen bereit, aber auch selbst definierte Funktionen können als Objective-Funktionen verwendet werden. Pflichtargumente für add.objective() sind das portfolio, zu dem das Objective hinzugefügt wird, der Objective-type, der Objective-name sowie benannte Argumente, die über ... an den Konstruktor des jeweiligen Objective-Typs übergeben werden. Argumente für die Objective-Funktion werden als benannte Liste über arguments angegeben.
Grundlegende Objective-Typen:
return: Dieser Objective-Typ soll das Ziel maximieren.risk: Dieser Objective-Typ soll das Ziel minimieren.risk_budget: Dieser Objective-Typ soll Risikokonzentration minimieren oder Beiträge zum Risiko sanktionieren, die den minimalen oder maximal zulässigen prozentualen Risikoanteil überschreiten.
Zusätzlich zu den oben aufgeführten Objective-Typen unterstützt PortfolioAnalytics auch quadratische Nutzen- und Gewichtskonzentrations-Objectives. Wenn du dich für die anderen Constraint-Typen interessierst, sieh dir die Hilfedateien der Constraint-Konstruktoren an. Die Hilfedateien enthalten eine Beschreibung des Constraint-Typs sowie Beispielcode.
Diese Übung ist Teil des Kurses
Fortgeschrittene Portfolioanalyse in R
Anleitung zur Übung
- Füge der Portfolio-Spezifikation
port_spec, die du in einer vorherigen Übung erstellt hast, ein Rendite-Objective hinzu. - Füge
port_specein Risiko-Objective hinzu, das die Portfoliostandardabweichung minimiert. - Füge
port_specein Risk-Budget-Objective hinzu, bei dem das Risiko als Komponenten-Standardabweichung definiert ist. Setze den minimalen prozentualen Risikoanteil auf 5 % und den maximalen auf 10 %. - Gib das Objekt
port_specaus.
Interaktive Übung
Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.
# Add a return objective to maximize mean return
port_spec <- add.objective(portfolio = ___, type = ___, name = ___)
# Add a risk objective to minimize portfolio standard deviation
port_spec <- add.objective(portfolio = ___, type = ___, name = ___)
# Add a risk budget objective
port_spec <- add.objective(portfolio = ___, type = ___, name = ___, min_prisk = ___, max_prisk = ___)
# Print the portfolio specification object