Gestion des risques en temps réel
Il est temps d'utiliser ce que vous avez appris sur les réseaux de neurones pour effectuer une gestion des risques en (presque !) temps réel.
Une fenêtre mobile de 14 jours de rendements d'actifs fournit suffisamment de données pour créer une série chronologique de portefeuilles à volatilité minimale selon la théorie moderne du portefeuille, comme vous l'avez vu au chapitre 2. Ces pondérations de portefeuille minimum_vol servent de valeurs d'entraînement pour un réseau de neurones. Il s'agit d'une matrice (1497 x 4).
L'entrée est la matrice des average_asset_returns hebdomadaires, correspondant à chaque portefeuille efficient. Il s'agit d'une matrice (1497 x 4).
Créez un réseau de neurones Sequential avec la bonne dimension d'entrée et deux couches cachées. L'entraînement de ce réseau prendrait trop de temps, donc vous utiliserez un pre_trained_model du même type pour prédire les pondérations de portefeuille pour un nouveau vecteur de prix d'actif.
Cette activité fait partie du cours
Gestion quantitative des risques en Python
Instructions de l’exercice
- Créez un réseau de neurones Sequential avec deux couches cachées, une couche d'entrée et une couche de sortie.
- Utilisez le
pre_trained_modelpour prédire ce que serait le portefeuille à volatilité minimale lorsque de nouvelles données d'actifsasset_returnssont fournies.
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
# 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))