Crea features y targets
Para usar Machine Learning y escoger la mejor cartera, necesitamos generar features y targets. Nuestras features se acaban de crear en el ejercicio anterior: las medias móviles exponenciales de precios. Nuestros targets serán las mejores carteras que encontramos según el Sharpe ratio más alto.
Usaremos el método .iterrows() de pandas para obtener los pares index, value del DataFrame ewma_monthly. Dentro del bucle, estableceremos el valor actual de ewma_monthly como nuestras features. Luego usaremos el índice del mejor Sharpe ratio (de max_sharpe_idxs) para obtener los mejores portfolio_weights de cada mes y fijarlos como target.
Este ejercicio forma parte del curso
Machine Learning para finanzas con Python
Instrucciones del ejercicio
- Usa el método
.iterrows()conewma_monthlypara iterar porindex, valueen el bucle. - Usa
dateen el bucle ybest_idxpara indexarportfolio_weightsy obtener los pesos ideales de la cartera según el mejor Sharpe ratio. - Añade el
ewmaa las features.
ejercicio interactivo práctico
Prueba este ejercicio completando este código de ejemplo.
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:])