Efficiënte grens plotten met beste Sharpe-ratio
Laten we nu de efficiënte grens opnieuw plotten en een markering toevoegen voor het portfolio met de beste Sharpe-index. Data visualiseren is altijd een goed idee om het beter te begrijpen.
Onthoud: de efficiënte grens wordt geplot in een scatterplot met de volatiliteit van het portfolio op de x-as en de portfolio-rendementen op de y-as. We halen de meest recente datum in onze data op via covariances.keys(), al kun je ook een van de portfolio_returns- of andere woordenboeken gebruiken om de datum te krijgen. Daarna halen we de volatiliteiten en rendementen voor die laatste datum op uit portfolio_volatility en portfolio_returns. Tot slot halen we de index van het portfolio met de beste Sharpe-index uit max_sharpe_idxs[date], en plotten we alles met plt.scatter().
Deze oefening maakt deel uit van de cursus
Machine Learning voor finance in Python
Oefeninstructies
- Stel
cur_volatilityin op de portfolio-volatiliteiten voor de laatstedate. - Maak de plot van de "efficiënte grens" door de volatiliteit op de x-as en de rendementen op de y-as te zetten.
- Haal de index van het beste portfolio voor de laatste
dateop uitmax_sharpe_idxs.
Interactieve oefening met praktijkervaring
Probeer deze oefening door deze voorbeeldcode aan te vullen.
# 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()