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
Instructions de l’exercice
- Ajoutez un objectif de budget de risque
risk_budgetàport_specoù 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éereturns_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"