CommencerCommencez gratuitement

Tracer la frontière efficiente avec le meilleur ratio de Sharpe

Traçons maintenant à nouveau la frontière efficiente, en ajoutant un repère pour le portefeuille ayant le meilleur indice de Sharpe. Visualiser vos données reste une excellente manière de mieux les comprendre.

Rappel : la frontière efficiente se représente par un nuage de points avec la volatilité du portefeuille en abscisse (axe x) et le rendement du portefeuille en ordonnée (axe y). Nous allons récupérer la date la plus récente disponible dans nos données via covariances.keys() — vous pourriez aussi utiliser n'importe lequel des dictionnaires portfolio_returns, etc., pour obtenir la date. Ensuite, nous récupérons les volatilités et les rendements pour cette date à partir de portfolio_volatility et portfolio_returns. Enfin, nous obtenons l'indice du portefeuille ayant le meilleur indice de Sharpe via max_sharpe_idxs[date], puis nous traçons le tout avec plt.scatter().

Cet exercice fait partie du cours

<cours>Machine Learning pour la finance en Python</cours>
Voir le cours

Instructions de l’exercice

  • Affectez à cur_volatility les volatilités des portefeuilles pour la dernière date.
  • Construisez le graphique de la « frontière efficiente » en traçant la volatilité sur l'axe des x et les rendements sur l'axe des y.
  • Récupérez l'indice du meilleur portefeuille pour la dernière date depuis max_sharpe_idxs.

Exercice interactif pratique

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

# Get most recent (current) returns and volatility
date = sorted(covariances.keys())[-1]
cur_returns = portfolio_returns[date]
cur_volatility = ____

# Plot efficient frontier with sharpe as point
plt.scatter(x=____, y=____, alpha=0.1, color='blue')
best_idx = max_sharpe_idxs[____]

# Place an orange "X" on the point with the best Sharpe ratio
plt.scatter(x=cur_volatility[best_idx], y=cur_returns[best_idx], marker='x', color='orange')
plt.xlabel('Volatility')
plt.ylabel('Returns')
plt.show()
Modifier et exécuter le code