Benutzerdefinierte Zielfunktion
Ein zentrales Merkmal von PortfolioAnalytics ist, dass der Name einer Zielgröße eine gültige R-Funktion ist. Das Paket wurde flexibel und modular entwickelt, und benutzerdefinierte Zielfunktionen sind ein gutes Beispiel dafür. Beim Definieren einer benutzerdefinierten Momentenfunktion solltest du ein paar Richtlinien beachten:
- Die Zielfunktion muss einen einzelnen Wert zurückgeben, den der Optimierer minimiert oder maximiert.
- Es wird nachdrücklich empfohlen,
Rfür die Asset-Renditen undweightsfür die Portfoliogewichte zu verwenden.
Diese Argumentnamen werden automatisch erkannt und effizient verarbeitet. Alle weiteren Argumente für die Zielfunktion kannst du als benannte Liste über arguments in der Funktion add.objective() übergeben.
Diese Übung ist Teil des Kurses
<Kurs>Fortgeschrittene Portfolioanalyse in R</Kurs>Übungsanweisungen
- Definiere eine benutzerdefinierte Zielfunktion, die die annualisierte Standardabweichung des Portfolios berechnet.
Interaktive praktische Übung
Versuche dich an dieser Übung, indem du diesen Beispielcode vervollständigst.
# Custom annualized portfolio standard deviation
pasd <- function(___, ___, sigma, scale = 12){
sqrt(as.numeric(t(___) %*% ___ %*% ___)) * sqrt(scale)
}