CommencezCommencez gratuitement

Trouver le portefeuille efficience moyenne-variance

Un portefeuille efficience moyenne-variance peut être obtenu en minimisant la variance du portefeuille sous la contrainte que le rendement espéré du portefeuille est égal à un rendement cible. Une fonction R pratique pour ce faire est portfolio.optim() du paquet R tseries. Son comportement par défaut calcule les pondérations du portefeuille efficience moyenne-variance sous la contrainte que le rendement du portefeuille est égal à celui du portefeuille équipondéré. Le seul argument requis est la série des rendements mensuels des composantes du portefeuille pour lesquelles il faut déterminer les pondérations.

La variable returns, qui contient les rendements mensuels des titres du DJIA, est déjà chargée dans la console.

Cette activité fait partie du cours

Introduction à l'analyse de portefeuille en R

Voir le cours

Instructions de l’exercice

  • Chargez la bibliothèque tseries.
  • Créez un portefeuille efficience moyenne-variance à partir des rendements mensuels en utilisant le comportement par défaut de portfolio.optim() visant le rendement du portefeuille équipondéré, et assignez le résultat à la variable opt.
  • Créez un vecteur de pondérations à partir de votre portefeuille optimisé. Les pondérations du portefeuille se trouvent dans opt$pw. Nommez ce vecteur pf_weights.
  • Assignez les noms aux actifs en utilisant le code fourni.
  • Sélectionnez, à partir de pf_weights, les pondérations optimales supérieures ou égales à 1 %, et nommez ce vecteur opt_weights.
  • Utilisez barplot() pour visualiser la répartition de opt_weights.
  • Affichez le rendement espéré (opt$pm) et la volatilité (opt$ps) du portefeuille optimisé.

Exercice interactif pratique

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

# Load tseries


# Create an optimized portfolio of returns
opt <- portfolio.optim(___)

# Create pf_weights
pf_weights <- ___$pw

# Assign asset names
names(pf_weights) <- colnames(returns)

# Select optimum weights opt_weights
opt_weights <- pf_weights[___ >= 0.01]

# Bar plot of opt_weights


# Print expected portfolio return and volatility
___$pm
___$ps
 
Modifier et exécuter le code