LoslegenKostenlos loslegen

Nebenbedingungen und Ziele verfeinern

Wir vermuten hier, dass das Verfeinern von Nebenbedingungen und/oder Zielen die Performance verbessert. Füge eine Risk-Budget-Objective hinzu, um einen minimalen und maximalen prozentualen Risikobeitrag für jedes Asset festzulegen. Wir bauen auf der zuvor erstellten Portfoliospezifikation auf. Das ist ein komplexeres Optimierungsproblem und erfordert einen globalen Solver, daher verwenden wir Zufallsportfolios als Optimierungsmethode.

Diese Übung ist Teil des Kurses

Fortgeschrittene Portfolioanalyse in R

Kurs anzeigen

Anleitung zur Übung

  • Füge port_spec eine Risk-Budget-Objective risk_budget hinzu, wobei Risiko als Standardabweichung definiert ist. Setze den minimalen prozentualen Risikobeitrag auf 5 % und den maximalen auf 10 %.
  • Führe die Optimierung mit quartalsweiser Umschichtung durch. Setze Trainingszeitraum und Rolling Window auf 5 Jahre Daten. Weisen die Ergebnisse einer Variablen namens opt_rebal_rb zu.
  • Stelle die Gewichte grafisch dar.
  • Stelle den prozentualen Komponentenbeitrag zum Risiko grafisch dar.
  • Berechne die Portfoliorenditen mit Return.portfolio(). Weise die Renditen einer Variablen namens returns_rb zu.

Interaktive Übung

Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.


# Add a risk budge objective
port_spec <- add.objective(portfolio = ___, 
                           type = ___, 
                           name = ___, 
                           min_prisk = ___, 
                           max_prisk = ___)

# Run the optimization
opt_rebal_rb <- optimize.portfolio.rebalancing(R = ___, 
                                               portfolio = ___, 
                                               optimize_method = "random", rp = rp,
                                               trace = TRUE,
                                               rebalance_on = ___, 
                                               training_period = ___,
                                               rolling_window = ___)

# Chart the weights


# Chart the percentage contribution to risk
chart.RiskBudget(___, match.col = "StdDev", risk.type = ___)

# Compute the portfolio returns
returns_rb <- Return.portfolio(R = ___, weights = ___)
colnames(returns_rb) <- "risk_budget"
Code bearbeiten und ausführen