Traccia la frontiera efficiente con il miglior indice di Sharpe
Ora tracciamo di nuovo la frontiera efficiente, aggiungendo però un marcatore per il portafoglio con il miglior indice di Sharpe. Visualizzare i dati è sempre una buona idea per capirli meglio.
Ricorda: la frontiera efficiente si traccia con uno scatter plot, con la volatilità del portafoglio sull'asse x e i rendimenti del portafoglio sull'asse y. Otterremo la data più recente presente nei nostri dati da covariances.keys(), anche se potremmo usare allo stesso modo uno qualunque dei dizionari portfolio_returns, ecc., per ottenere la data. Poi ricaveremo volatilità e rendimenti per la data più recente da portfolio_volatility e portfolio_returns. Infine otterremo l'indice del portafoglio con il miglior indice di Sharpe da max_sharpe_idxs[date] e tracceremo tutto con plt.scatter().
Questo esercizio fa parte del corso
Machine Learning per la finanza in Python
Istruzioni dell'esercizio
- Imposta
cur_volatilitycome le volatilità dei portafogli per ladatepiù recente. - Costruisci il grafico della "frontiera efficiente" tracciando la volatilità sull'asse x e i rendimenti sull'asse y.
- Ottieni l'indice del miglior portafoglio per la
datepiù recente damax_sharpe_idxs.
esercizio interattivo pratico
Prova questo esercizio completando questo codice di esempio.
# 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()