Creează caracteristici și ținte
Pentru a folosi învățarea automată în selectarea celui mai bun portofoliu, trebuie să generăm caracteristici și ținte. Caracteristicile tocmai au fost create în exercițiul anterior – mediile mobile ponderate exponențial ale prețurilor. Țintele vor fi cele mai bune portofolii identificate pe baza celui mai mare raport Sharpe.
Vom folosi metoda .iterrows() din pandas pentru a obține perechile index, value din DataFrame-ul ewma_monthly. În cadrul buclei, vom seta valoarea curentă a ewma_monthly drept caracteristici. Apoi vom folosi indexul celui mai bun raport Sharpe (din max_sharpe_idxs) pentru a extrage portfolio_weights-urile optime pentru fiecare lună și le vom seta ca țintă.
Acest exercițiu face parte din cursul
Machine Learning pentru finanțe în Python
Instrucțiuni pentru exercițiu
- Folosește metoda
.iterrows()cuewma_monthlypentru a itera prin perechileindex, valueîn buclă. - Folosește
datedin buclă șibest_idxpentru a indexaportfolio_weightsși a obține ponderile optime ale portofoliului pe baza celui mai bun raport Sharpe. - Adaugă
ewmala lista de caracteristici.
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
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:])