LoslegenKostenlos loslegen

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

Kurs anzeigen

Anleitung zur Übung

  • Erstelle ein Portfolio-Spezifikationsobjekt mit den Asset-Namen aus dem Datensatz index_returns und nenne das Objekt port_spec.
  • Füge dem Objekt port_spec eine Nebenbedingung für vollständige Investition hinzu, sodass die Gewichte zu 1 summieren.
  • Füge dem Objekt port_spec eine Long-only-Nebenbedingung hinzu, sodass das Gewicht eines Assets zwischen 0 und 1 liegt.
  • Füge dem Objekt port_spec ein 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 namens opt zu.

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 = "___")
Code bearbeiten und ausführen