Zacznij terazZacznij za darmo

Tworzenie cech i wartości docelowych

Aby używać uczenia maszynowego do wyboru najlepszego portfela, musimy wygenerować cechy i wartości docelowe. Cechy zostały właśnie utworzone w poprzednim ćwiczeniu – są to wykładniczo ważone średnie kroczące cen. Wartościami docelowymi będą najlepsze portfele znalezione na podstawie najwyższego współczynnika Sharpe'a.

Skorzystamy z metody .iterrows() biblioteki pandas, aby uzyskać pary index, value dla DataFrame ewma_monthly. W pętli ustawimy bieżącą wartość ewma_monthly jako nasze cechy. Następnie użyjemy indeksu najlepszego współczynnika Sharpe'a (z max_sharpe_idxs), aby pobrać optymalne portfolio_weights dla każdego miesiąca i ustawić je jako wartość docelową.

To ćwiczenie jest częścią kursu

Uczenie maszynowe w finansach z Pythonem

Zobacz kurs

Instrukcje do ćwiczenia

  • Użyj metody .iterrows() na ewma_monthly, aby iterować po parach index, value w pętli.
  • Użyj date z pętli oraz best_idx, aby zaindeksować portfolio_weights i uzyskać optymalne wagi portfela na podstawie najwyższego współczynnika Sharpe'a.
  • Dołącz ewma do cech.

Interaktywne ćwiczenie praktyczne

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

targets, features = [], []

# Create features from price history and targets as ideal portfolio
for date, ewma in ewma_monthly.____:

    # Get the index of the best sharpe ratio
    best_idx = max_sharpe_idxs[date]
    targets.append(portfolio_weights[____][____])
    features.append(____)  # add ewma to features

targets = np.array(targets)
features = np.array(features)
print(targets[-5:])
Edytuj i uruchom kod