Zacznij terazZacznij za darmo

Znajdź najlepsze wskaźniki Sharpe'a

Musimy znaleźć „idealne" portfele dla każdej daty, aby móc wykorzystać je jako wartości docelowe w uczeniu maszynowym. Przechodzimy pętlą przez każdą datę w portfolio_returns, a następnie przez portfele wygenerowane za pomocą portfolio_returns[date]. Obliczamy wskaźnik Sharpe'a, czyli stopę zwrotu podzieloną przez zmienność (zakładając, że stopa zwrotu wolna od ryzyka wynosi 0).

Używamy enumerate(), aby iterować po stopach zwrotu dla bieżącej daty (portfolio_returns[date]) i śledzić indeks za pomocą i. Następnie używamy bieżącej daty i bieżącego indeksu, aby uzyskać zmienność każdego portfela za pomocą portfolio_volatility[date][i]. Na koniec wyznaczamy indeks najlepszego wskaźnika Sharpe'a dla każdej daty, korzystając z np.argmax(). Ten indeks posłuży nam wkrótce do pobrania optymalnych wag portfela.

To ćwiczenie jest częścią kursu

Uczenie maszynowe w finansach z Pythonem

Zobacz kurs

Instrukcje do ćwiczenia

  • Używając enumerate(), wypisz za pomocą enumeracji wartości portfolio_returns dla każdej date w pętli.
  • Dla bieżącej date w pętli dołącz do wpisu słownika sharpe_ratio wartość zwrotu (ret) podzieloną przez portfolio_volatility dla bieżącej daty i bieżącego i w pętlach.
  • Ustaw wartość max_sharpe_idxs dla bieżącej date jako indeks maksymalnego wskaźnika Sharpe'a, używając np.argmax().

Interaktywne ćwiczenie praktyczne

Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.

# 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]])
Edytuj i uruchom kod