Ajouter des contraintes
Les contraintes sont ajoutées à l’objet de spécification de portefeuille avec la fonction add.constraint(). Chaque contrainte ajoutée est un objet distinct et est stockée dans l’emplacement constraints de l’objet portefeuille. De cette façon, les contraintes sont modulaires et vous pouvez facilement ajouter, supprimer ou modifier les contraintes dans l’objet portefeuille. Les arguments requis pour add.constraint() sont le portfolio auquel la contrainte est ajoutée, le type de contrainte, ainsi que des arguments nommés passés via ... au constructeur du type de contrainte.
Types de contraintes de base :
- Spécifier la contrainte sur la somme des pondérations
weight_sum,weight,leveragefull_investmentest un cas particulier qui définitmin_sum = max_sum = 1dollar_neutralest un cas particulier qui définitmin_sum = max_sum = 0
- Spécifier des contraintes pour les pondérations individuelles des actifs
boxlong_onlyest un cas particulier qui définitmin = 0etmax = 1
- Spécifier la contrainte sur la somme des pondérations d’actifs par groupe (secteur, région, classe d’actifs, etc.)
group
- Spécifier une contrainte sur le rendement moyen cible
return
Dans cet exercice, vous allez ajouter quelques-uns des types de contraintes les plus courants. En plus des types de contraintes de base listés ci-dessus, PortfolioAnalytics prend également en charge les contraintes de limite de position, de rotation (turnover), de diversification, d’exposition aux facteurs et d’exposition à l’effet de levier. Si les autres types de contraintes vous intéressent, consultez les pages d’aide des constructeurs de contraintes. Les pages d’aide incluent une description du type de contrainte ainsi que du code d’exemple.
Cet exercice fait partie du cours
Analyse de portefeuille intermédiaire en R
Instructions
- Ajoutez une contrainte
weight_sumtelle que la somme minimale des pondérations soit 1 et la somme maximale des pondérations soit 1. - Ajoutez une contrainte
boxtelle que les cinq premiers actifs aient une pondération minimale de 10 % et les actifs restants une pondération minimale de 5 %. Tous les actifs ont une pondération maximale de 40 %. - Ajoutez une contrainte
grouptelle que les actifs 1, 5, 7, 9, 10 et 11 forment le premier groupe et les actifs 2, 3, 4, 6, 8 et 12 le second groupe. Définissez la pondération minimale à 40 % et la pondération maximale à 60 % pour chaque groupe.
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
# Add the weight sum constraint
port_spec <- add.constraint(portfolio = ___, type = ___, min_sum = ___, max_sum = ___)
# Add the box constraint
port_spec <- add.constraint(portfolio = ___, type = ___, min = c(___), max = ___)
# Add the group constraint
port_spec <- add.constraint(portfolio = ___, type = ___, groups = list(c(___), c(___)), group_min = ___, group_max = ___)
# Print the portfolio specification object