Affiner les contraintes et les objectifs
Nous faisons l’hypothèse qu’affiner les contraintes et/ou les objectifs améliorera les performances. Ajoutons un objectif de budget de risque afin de fixer un pourcentage minimal et maximal de contribution au risque pour chaque actif. Nous allons repartir de 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.
Cet exercice fait partie du cours
Analyse de portefeuille intermédiaire en R
Instructions
- Ajoutez un objectif de budget de risque
risk_budgetàport_specoù le risque est défini comme l’écart-type. Fixez le pourcentage de risque minimal à 5 % et le pourcentage maximal à 10 %. - Exécutez l’optimisation avec un rééquilibrage trimestriel. Définissez 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éereturns_rb.
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
# 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"