Rita den effektiva fronten med bästa Sharpe-kvot
Nu ska vi rita den effektiva fronten igen, men den här gången lägger vi till en markör för portföljen med den bästa Sharpe-kvoten. Att visualisera data är alltid en god idé för att bättre förstå den.
Kom ihåg att den effektiva fronten ritas som ett spridningsdiagram med portföljvolatilitet på x-axeln och portföljavkastning på y-axeln. Vi hämtar det senaste datumet i våra data från covariances.keys(), men vilken som helst av ordlistorna portfolio_returns m.fl. skulle också fungera. Sedan hämtar vi volatiliteter och avkastningar för det senaste datumet från portfolio_volatility respektive portfolio_returns. Till sist hämtar vi indexet för portföljen med den bästa Sharpe-kvoten från max_sharpe_idxs[date] och ritar allt med plt.scatter().
Den här övningen är en del av kursen
Maskininlärning för finans i Python
Övningsinstruktioner
- Sätt
cur_volatilitytill portföljvolatiliteterna för det senastedate. - Bygg upp diagrammet för den "effektiva fronten" genom att rita volatilitet på x-axeln och avkastning på y-axeln.
- Hämta indexet för den bästa portföljen för det senaste
datefrånmax_sharpe_idxs.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
# 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()