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
Instructions de l’exercice
- Attribuez à
cur_volatilityles volatilités des portefeuilles pour la dernièredate. - 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
datedepuismax_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()