ÎncepețiÎncepe gratuit

Obține cele mai bune rapoarte Sharpe

Trebuie să identificăm portofoliile „ideale" pentru fiecare dată, astfel încât să le putem folosi ca ținte pentru învățarea automată. Vom parcurge fiecare dată din portfolio_returns, apoi vom itera prin portofoliile generate cu portfolio_returns[date]. Vom calcula raportul Sharpe, care este randamentul împărțit la volatilitate (presupunând un randament fără risc egal cu 0).

Folosim enumerate() pentru a parcurge randamentele pentru data curentă (portfolio_returns[date]) și pentru a urmări indexul cu i. Apoi folosim data curentă și indexul curent pentru a obține volatilitatea fiecărui portofoliu cu portfolio_volatility[date][i]. În final, obținem indexul celui mai bun raport Sharpe pentru fiecare dată folosind np.argmax(). Vom folosi acest index pentru a extrage ponderile portofoliului ideal în pasul următor.

Acest exercițiu face parte din cursul

Machine Learning pentru finanțe în Python

Vezi cursul

Instrucțiuni pentru exercițiu

  • Folosind enumerate(), enumeră portfolio_returns pentru fiecare date din buclă.
  • Pentru date-ul curent din buclă, adaugă în dicționarul sharpe_ratio randamentul (ret) împărțit la portfolio_volatility pentru data curentă și valoarea curentă a lui i din buclă.
  • Setează valoarea din max_sharpe_idxs pentru date-ul curent ca indexul raportului Sharpe maxim, folosind np.argmax().

Exercițiu interactiv practic

Încearcă acest exercițiu completând acest cod de exemplu.

# 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]])
Editează și rulează codul