CommencezCommencez gratuitement

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, leverage
    • full_investment est un cas particulier qui fixe min_sum = max_sum = 1
    • dollar_neutral est un cas particulier qui fixe min_sum = max_sum = 0
  • Préciser des contraintes pour les pondérations individuelles des actifs
    • box
    • long_only est un cas particulier qui fixe min = 0 et max = 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

Voir le cours

Instructions de l’exercice

  • Ajoutez une contrainte weight_sum telle que la somme minimale des pondérations soit 1 et la somme maximale des pondérations soit 1.
  • Ajoutez une contrainte box telle 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 group telle 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

Modifier et exécuter le code