Inizia subitoInizia gratis

Ottieni i migliori rapporti di Sharpe

Dobbiamo trovare i portafogli "ideali" per ciascuna data così da usarli come target per il Machine Learning. Cicleremo su ogni data in portfolio_returns, poi sui portafogli generati con portfolio_returns[date]. Calcoleremo quindi il rapporto di Sharpe, ossia il rendimento diviso per la volatilità (assumendo un tasso privo di rischio pari a 0).

Usiamo enumerate() per scorrere i rendimenti della data corrente (portfolio_returns[date]) e tenere traccia dell'indice con i. Poi usiamo la data corrente e l'indice corrente per ottenere la volatilità di ciascun portafoglio con portfolio_volatility[date][i]. Infine, otteniamo l'indice del miglior rapporto di Sharpe per ogni data usando np.argmax(). Presto useremo questo indice per ricavare i pesi del portafoglio ideale.

Questo esercizio fa parte del corso

Machine Learning per la finanza in Python

Visualizza corso

Istruzioni dell'esercizio

  • Usando enumerate(), enumera i portfolio_returns per ogni date nel ciclo.
  • Per la date corrente nel ciclo, aggiungi alla voce del dizionario sharpe_ratio il rendimento (ret) diviso per portfolio_volatility della data corrente e dell'attuale i nei cicli.
  • Imposta il valore di max_sharpe_idxs per la date corrente al indice del rapporto di Sharpe massimo usando np.argmax().

esercizio interattivo pratico

Prova questo esercizio completando questo codice di esempio.

# Empty dictionaries for sharpe ratios and best sharpe indexes by date
sharpe_ratio, max_sharpe_idxs = {}, {}

# Loop through dates and get sharpe ratio for each portfolio
for date in portfolio_returns.keys():
    for i, ret in enumerate(portfolio_returns[____]):
    
        # Divide returns by the volatility for the date and index, i
        sharpe_ratio.setdefault(date, []).append(____ / portfolio_volatility[date][____])

    # Get the index of the best sharpe ratio for each date
    max_sharpe_idxs[date] = np.argmax(sharpe_ratio[____])

print(portfolio_returns[date][max_sharpe_idxs[date]])
Modifica ed esegui il codice