Začněte nyníZačněte zdarma

Nalezení nejlepších Sharpe ratios

Potřebujeme najít „ideální" portfolia pro každé datum, abychom je mohli použít jako cíle pro machine learning. Projdeme v cyklu každé datum v portfolio_returns a pak portfolia, která jsme vygenerovali pomocí portfolio_returns[date]. Vypočítáme Sharpe ratio, což je výnos vydělený volatilitou (předpokládáme bezrizikový výnos 0).

Používáme enumerate() k procházení výnosů pro aktuální datum (portfolio_returns[date]) a ke sledování indexu pomocí i. Pak použijeme aktuální datum a aktuální index k získání volatility každého portfolia pomocí portfolio_volatility[date][i]. Nakonec získáme index nejlepšího Sharpe ratio pro každé datum pomocí np.argmax(). Tento index brzy využijeme k získání ideálních vah portfolia.

Toto cvičení je součástí kurzu

Machine Learning for Finance in Python

Zobrazit kurz

Pokyny k cvičení

  • Pomocí enumerate() projdi portfolio_returns pro každé date v cyklu.
  • Pro aktuální date v cyklu přidej do slovníku sharpe_ratio hodnotu výnosu (ret) vydělenou portfolio_volatility pro aktuální datum a aktuální i v cyklech.
  • Nastav hodnotu max_sharpe_idxs pro aktuální date na index maximálního Sharpe ratio pomocí np.argmax().

Interaktivní cvičení na vyzkoušení si v praxi

Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.

# 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]])
Upravit a spustit kód