Crea feature e target
Per usare il Machine Learning per scegliere il portafoglio migliore, dobbiamo generare feature e target. Le nostre feature sono state appena create nell'esercizio precedente: le medie mobili esponenzialmente pesate dei prezzi. I nostri target saranno i portafogli migliori trovati in base allo Sharpe ratio più alto.
Useremo il metodo .iterrows() di pandas per ottenere le coppie index, value dal DataFrame ewma_monthly. Imposteremo il valore corrente di ewma_monthly nel ciclo come nostre feature. Poi useremo l'indice dello Sharpe ratio migliore (da max_sharpe_idxs) per ottenere i portfolio_weights migliori per ogni mese e impostarli come target.
Questo esercizio fa parte del corso
Machine Learning per la finanza in Python
Istruzioni dell'esercizio
- Usa il metodo
.iterrows()conewma_monthlyper iterare suindex, valuenel ciclo. - Usa
datenel ciclo ebest_idxper indicizzareportfolio_weightse ottenere i pesi ideali del portafoglio in base al miglior Sharpe ratio. - Aggiungi l'
ewmaalle feature.
esercizio interattivo pratico
Prova questo esercizio completando questo codice di esempio.
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:])