LoslegenKostenlos starten

Die Effizienzlinie mit einem Raster von Zielrenditen berechnen

Wie du gesehen hast, besteht ein Ansatz zur Berechnung der Effizienzlinie darin, zuerst ein Raster von Zielrenditen zu definieren und dann für jede Zielrendite das Portfolio zu finden, dessen erwartete Rendite der Zielrendite entspricht – bei möglichst geringer Varianz.

Doch was ist ein sinnvolles Raster von Zielrenditen? Du setzt die maximale Zielrendite auf die maximale durchschnittliche Rendite der Aktien. Ideal wäre es, die minimale Zielrendite auf die Rendite des Minimalvarianzportfolios zu setzen. Da du diese Rendite noch nicht kennst, erstellst du ein Raster, das beim Minimum der durchschnittlichen Renditen aller Aktien beginnt.

In dieser Übung verwendest du eine for-Schleife, um dein Raster potenzieller Portfoliomittelwerte, Standardabweichungen und Gewichte zu berechnen.

Diese Übung ist Teil des Kurses

<Kurs>Einführung in die Portfolioanalyse in R</Kurs>
Kurs ansehen

Übungsanweisungen

  • Berechne die Spaltenmittel von returns (mit colMeans()) und nenne das Ergebnis stockmu.
  • Erstelle eine Sequenz (seq()) der Länge 50, die bei einem risikofreien Zinssatz von 1 % beginnt und bei dem Maximalwert von stockmu endet; nenne sie grid.
  • Initialisiere zwei leere Vektoren mit derselben Länge wie grid mit rep(), in denen du die Portfoliomittelwerte und Standardabweichungen speicherst. Nenne sie vpm und vpsd.
  • Initialisiere eine leere Matrix mit 50 Zeilen und 30 Spalten. Nenne sie mweights. Verwende dazu die Funktion matrix().
  • Erstelle eine for-Schleife, die beim ersten Wert von grid beginnt und beim letzten endet. Die for-Schleife soll ein Portfolio opt mit returns und einer Zielrendite von grid erstellen.
  • In jeder Iteration soll die for-Schleife die Vektoren vpm ($pm) und vpsd ($ps) mit den jeweiligen Werten aus opt füllen.
  • Speichere die Portfoliogewichte zeilenweise in mweights ($pw).

Interaktive praktische Übung

Versuche dich an dieser Übung, indem du diesen Beispielcode vervollständigst.

# Calculate each stocks mean returns


# Create a grid of target values
grid <- seq(from = ___, to = ___, length.out = ___)

# Create empty vectors to store means and deviations
vpm <- vpsd <- 

# Create an empty matrix to store weights
mweights <- matrix(NA, 50, 30)

# Create your for loop
for(i in 1:length(grid)) {
  opt <- portfolio.optim(x = ___, pm = ___[i])
  vpm[i] <- ___$__
  vpsd[i] <- ___$__
  mweights[i, ] <- ___$__
}
Code bearbeiten und ausführen