Optimierung mit benutzerdefinierter Zielfunktion
Diese Übung baut auf der vorherigen auf. Wir führen die Optimierung mit der benutzerdefinierten Zielfunktion aus, die die annualisierte Standardabweichung des Portfolios berechnet. Da eine Zielfunktion jede gültige R-Funktion sein kann, fügen wir eine Risiko-Objective für die Funktion pasd() hinzu. Die Funktion set.portfolio.moments() erkennt den Objective-Namen pasd() nicht, daher müssen wir eine benutzerdefinierte Momentfunktion erstellen, um das zweite Moment, sigma, zu berechnen. Wir lösen das Problem mithilfe zufälliger Portfolios als Optimierungsmethode.
Diese Übung ist Teil des Kurses
Fortgeschrittene Portfolioanalyse in R
Anleitung zur Übung
- Füge die benutzerdefinierte Zielfunktion aus der vorherigen Übung dem Portfolio-Spezifikationsobjekt hinzu.
- Gib das Portfolio-Spezifikationsobjekt aus, um die Nebenbedingungen und die Objective zu sehen.
- Führe die Optimierung aus. Der Name der benutzerdefinierten Momentfunktion ist
set_sigma. - Gib die Ergebnisse der Optimierung aus.
Interaktive Übung
Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.
# Add custom objective to portfolio specification
port_spec <- add.objective(portfolio = ___, type = ___, name = ___)
# Print the portfolio specificaton object
# Run the optimization
opt <- optimize.portfolio(R = ___, portfolio = ___, momentFUN = ___, optimize_method = "random", rp = rp)
# Print the results of the optimization