CommencerCommencer gratuitement

Le portefeuille à variance minimale et à ratio de Sharpe maximal

Dans les exercices précédents, vous avez calculé la frontière efficiente à l’aide d’une grille de rendements cibles. Le résultat de ce calcul était constitué de deux vecteurs, vpm (vecteur des rendements moyens du portefeuille) et vpsd (vecteur des écarts types, ou volatilités), ainsi que d’une matrice de pondérations appelée mweights. Vous allez utiliser ces résultats pour identifier les portefeuilles ayant la plus faible volatilité et le plus grand ratio de Sharpe, puis représenter la répartition de leurs pondérations.

Pour rappel, le ratio de Sharpe se calcule en prenant les rendements en excès par rapport au taux sans risque, divisés par la volatilité du portefeuille.

Cet exercice fait partie du cours

Introduction à l’analyse de portefeuille en R

Afficher le cours

Instructions

  • Créez weights_minvar, qui correspond à la ligne de mweights où l’écart type est minimisé (vpsd == min(vpsd)).
  • Calculez le ratio de Sharpe des rendements du portefeuille lorsque le taux sans risque est de 0,75 %. Nommez-le vsr.
  • Créez weights_max_sr comme la ligne de mweights correspondant au portefeuille ayant le ratio de Sharpe maximal dans vsr. Cela se résout de la même manière que dans la première instruction.
  • Créez un diagramme en barres des pondérations supérieures à 1 % dans le portefeuille weights_minvar, puis créez un diagramme en barres des pondérations supérieures à 1 % dans le portefeuille weights_max_sr.

Exercice interactif pratique

Essayez cet exercice en complétant cet exemple de code.

# Create weights_minvar as the portfolio with the least risk
weights_minvar <- mweights[___ == min(___), ]

# Calculate the Sharpe ratio
vsr <- (___ - ___) / vpsd

# Create weights_max_sr as the portfolio with the maximum Sharpe ratio
weights_max_sr <- mweights[___ == max(___)]

# Create bar plot of weights_minvar and weights_max_sr
par(mfrow = c(2, 1), mar = c(3, 2, 2, 1))
barplot(weights_minvar[weights_minvar > 0.01])
barplot(___[___ > 0.01])
 
Modifier et exécuter le code