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. Ainsi, les contraintes sont modulaires et il est facile d'ajouter, de retirer ou de modifier des 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 transmis via ... au constructeur du type de contrainte.
Types de contraintes de base :
- Préciser la contrainte sur la somme des pondérations
weight_sum,weight,leveragefull_investmentest un cas particulier qui fixemin_sum = max_sum = 1dollar_neutralest un cas particulier qui fixemin_sum = max_sum = 0
- Préciser des contraintes pour les pondérations individuelles des actifs
boxlong_onlyest un cas particulier qui fixemin = 0etmax = 1
- Préciser la contrainte sur la somme des pondérations des actifs par groupe (secteur, région, catégorie d'actifs, etc.)
group
- Préciser 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 énumérés ci-dessus, PortfolioAnalytics prend aussi en charge les contraintes de limite de position, de rotation de portefeuille (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 fichiers d'aide des constructeurs de contraintes. Les fichiers d'aide incluent une description du type de contrainte ainsi que du code d'exemple.
Cette activité fait partie du cours
Analyse de portefeuille intermédiaire en R
Instructions de l’exercice
- 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 que les actifs restants aient 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 que les actifs 2, 3, 4, 6, 8 et 12 forment le deuxième groupe. Fixez la pondération minimale à 40 % et la pondération maximale à 60 % pour chaque groupe.
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
# 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