CommencezCommencez gratuitement

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

Traçons de nouveau la frontière efficiente, mais en ajoutant un repère pour le portefeuille ayant le meilleur indice de Sharpe. Visualiser nos données est toujours une bonne idée pour mieux les comprendre.

Rappel : la frontière efficiente se trace dans un nuage de points avec la volatilité du portefeuille sur l'axe des x et les rendements du portefeuille sur l'axe des y. Nous allons récupérer la date la plus récente présente dans nos données à partir de covariances.keys(), bien que n'importe lequel des dictionnaires portfolio_returns, etc., puisse aussi servir à obtenir la date. Ensuite, nous obtenons les volatilités et les rendements pour la date la plus récente à partir de portfolio_volatility et portfolio_returns. Enfin, nous récupérons l'indice du portefeuille avec le meilleur indice de Sharpe depuis max_sharpe_idxs[date], puis nous traçons le tout avec plt.scatter().

Cette activité fait partie du cours

Machine Learning pour la finance en Python

Voir le cours

Instructions de l’exercice

  • Attribuez à 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