Inizia subitoInizia gratis

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

Visualizza corso

Istruzioni dell'esercizio

  • Imposta cur_volatility come le volatilità dei portafogli per la date più 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 date più recente da max_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()
Modifica ed esegui il codice