Löse ein einfaches Portfolio-Optimierungsproblem
In dieser ersten Übung lernst du, wie du ein einfaches Portfolio-Optimierungsproblem mit PortfolioAnalytics löst. Du erfährst, wie du ein Portfolio-Spezifikationsobjekt erstellst, Nebenbedingungen und Ziele hinzufügst und das Optimierungsproblem löst. Das Problem besteht darin, ein Minimum-Varianz-Portfolio unter den Nebenbedingungen vollständige Investition und nur Long-Positionen zu bilden. Das Ziel ist, die Portfoliovarianz zu minimieren. Es gibt zwei Nebenbedingungen: Die Nebenbedingung der vollständigen Investition bedeutet, dass die Gewichte zu 1 summieren müssen, und die Long-only-Bedingung bedeutet, dass alle Gewichte größer oder gleich 0 sein müssen (d. h. es sind keine Short-Positionen erlaubt).
Diese Übung ist Teil des Kurses
Fortgeschrittene Portfolioanalyse in R
Anleitung zur Übung
- Erstelle ein Portfolio-Spezifikationsobjekt mit den Asset-Namen aus dem Datensatz
index_returnsund nenne das Objektport_spec. - Füge dem Objekt
port_speceine Nebenbedingung für vollständige Investition hinzu, sodass die Gewichte zu 1 summieren. - Füge dem Objekt
port_speceine Long-only-Nebenbedingung hinzu, sodass das Gewicht eines Assets zwischen 0 und 1 liegt. - Füge dem Objekt
port_specein Ziel hinzu, um die Standardabweichung des Portfolios zu minimieren. - Löse das Portfolio-Optimierungsproblem mit
optimize_method = "ROI". Weise die Ergebnisse der Optimierung einem Objekt namensoptzu.
Interaktive Übung
Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.
# Create the portfolio specification
port_spec <- portfolio.spec(colnames(___))
# Add a full investment constraint such that the weights sum to 1
port_spec <- add.constraint(portfolio = ___, type = "___")
# Add a long only constraint such that the weight of an asset is between 0 and 1
port_spec <- add.constraint(portfolio = ___, type = "___")
# Add an objective to minimize portfolio standard deviation
port_spec <- add.objective(portfolio = ___, type = "___", name = "___")
# Solve the optimization problem
opt <- optimize.portfolio(___, portfolio = ___, optimize_method = "___")