CommencezCommencez gratuitement

Imposer des contraintes sur les pondérations

Les investisseurs sont souvent limités par des valeurs maximales permises pour les pondérations du portefeuille. Ces contraintes peuvent en fait constituer un avantage. L'avantage d'une contrainte de pondération maximale est que le portefeuille qui en résulte sera moins concentré dans certains actifs. Mais il y a aussi un inconvénient : le même rendement cible pourrait ne plus être atteignable ou ne l'être qu'au prix d'une volatilité plus élevée.

Rappelez-vous, à partir de l'exercice précédent, que la fonction portfolio.optim() vous permet de définir des contraintes sur les pondérations via l'argument reshigh. reshigh exige un vecteur de pondérations maximales pour chaque actif.

Dans cet exercice, vous créerez trois portefeuilles avec différentes contraintes de pondération maximale. Pour cet exercice, il est important de connaître la sortie de la fonction portfolio.optim(). Cette fonction renvoie une liste comportant quatre composantes : (i) $pw : les pondérations du portefeuille, (ii) $px : les rendements du portefeuille global, (iii) $pm : le rendement attendu du portefeuille, (iv) $ps : l'écart-type des rendements du portefeuille.

Cette activité fait partie du cours

Introduction à l'analyse de portefeuille en R

Voir le cours

Instructions de l’exercice

  • Créez trois vecteurs de pondérations maximales pour chaque actif (colonne) dans returns à l'aide de la fonction rep(). Le premier vecteur contiendra des pondérations maximales de 100 %, le deuxième de 10 % et le troisième de 5 %. Nommez-les respectivement max_weights1, max_weights2, max_weights3.
  • Créez un portefeuille optimal avec des pondérations maximales de 100 % nommé opt1.
  • Créez un portefeuille optimal avec des pondérations maximales de 10 % nommé opt2.
  • Créez un portefeuille optimal avec des pondérations maximales de 5 % nommé opt3.
  • Calculez combien d'actifs ont une pondération supérieure à 1 % pour chaque portefeuille. Accédez aux pondérations en utilisant $pw après le nom du portefeuille.
  • Affichez les volatilités (écarts-types $ps) des trois portefeuilles que vous avez créés.

Exercice interactif pratique

Essayez cet exercice en complétant ce code d’exemple.

# Create vectors of maximum weights
max_weights1 <- rep(1, ncol(returns))
max_weights2 <- ___
max_weights3 <- ___

# Create an optimum portfolio with max weights of 100%
opt1 <- portfolio.optim(___, reshigh = ___)

# Create an optimum portfolio with max weights of 10%


# Create an optimum portfolio with max weights of 5%


# Calculate how many assets have a weight that is greater than 1% for each portfolio
sum(opt1$pw > .01)
sum(___$pw > .01)
sum(___$pw > .01)

# Print portfolio volatilites 
opt1$ps
___$__
___$__

Modifier et exécuter le code