Gestión de riesgos en tiempo real
Es hora de utilizar lo que has aprendido sobre redes neuronales para realizar una gestión del riesgo (casi) en tiempo real.
Una ventana deslizante de 14 días de rentabilidades de activos proporciona datos suficientes para crear una serie temporal de paras de volatilidad mínima utilizando la teoría del portafolio moderna, como viste en el capítulo 2. Estos pesos del portafolio minimum_vol
son los valores de entrenamiento de una red neuronal. Esta es una matriz (1497 × 4).
La entrada es la matriz de average_asset_returns
semanales, correspondiente a cada portafolio eficiente. Esta es una matriz (1497 × 4).
Crea una red neuronal secuencial con la dimensión de entrada adecuada y dos capas ocultas. Entrenar esta red llevaría demasiado tiempo, así que utilizarás un pre_trained_model
disponible de idéntico tipo para prever los pesos del portafolio para un nuevo vector de precios de los activos.
Este ejercicio forma parte del curso
Gestión cuantitativa de riesgos en Python
Instrucciones del ejercicio
- Crea una red neuronal secuencial con dos capas ocultas, una capa de entrada y una capa de salida.
- Utiliza el
pre_trained_model
para prever cuál sería el portafolio de volatilidad mínima cuando se presenten nuevasasset_returns
de los datos de los activos.
Ejercicio interactivo práctico
Prueba este ejercicio completando el código de muestra.
# Create neural network model
model = ____()
model.add(Dense(128, input_dim = ____, activation = 'relu'))
model.____(____(64, activation = 'relu'))
model.____(____(____, activation = 'relu'))
# Use the pre-trained model to predict portfolio weights given new asset returns
asset_returns = np.array([0.001060, 0.003832, 0.000726, -0.002787])
asset_returns.shape = (1,4)
print("Predicted minimum volatility portfolio: ", pre_trained_model.____(asset_returns))