CommencezCommencez gratuitement

Peaufiner les contraintes et les objectifs

Nous faisons l'hypothèse qu'en raffinant les contraintes et/ou les objectifs, la performance s'en trouvera améliorée. Ajoutez un objectif de budget de risque afin de fixer un pourcentage minimal et maximal de contribution au risque pour chaque actif. Nous allons nous appuyer sur la spécification de portefeuille que nous avons créée. Il s'agit d'un problème d'optimisation plus complexe qui nécessite un solveur global; nous utiliserons donc des portefeuilles aléatoires comme méthode d'optimisation.

Cette activité fait partie du cours

Analyse de portefeuille intermédiaire en R

Voir le cours

Instructions de l’exercice

  • Ajoutez un objectif de budget de risque risk_budget à port_spec où le risque est défini comme l'écart-type. Fixez le pourcentage minimal de risque à 5 % et le maximal à 10 %.
  • Exécutez l'optimisation avec un rééquilibrage trimestriel. Réglez la période d'entraînement et la fenêtre roulante pour utiliser 5 ans de données. Assignez les résultats à une variable nommée opt_rebal_rb.
  • Tracez les pondérations.
  • Tracez la contribution en pourcentage des composantes au risque.
  • Calculez les rendements du portefeuille avec Return.portfolio(). Assignez les rendements à une variable nommée returns_rb.

Exercice interactif pratique

Essayez cet exercice en complétant ce code d’exemple.


# 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"
Modifier et exécuter le code