Riskhantering i realtid
Nu är det dags att använda det du har lärt dig om neurala nätverk för att genomföra (nästan!) realtidsbaserad riskhantering.
Ett 14-dagars rullande fönster av tillgångsavkastningar ger tillräckligt med data för att skapa en tidsserie av portföljer med minimal volatilitet med hjälp av Modern Portfolio Theory, som du såg i kapitel 2. Dessa minimum_vol-portföljvikter är träningsvärden för det neurala nätverket. Det är en matris av storleken (1 497 × 4).
Indata är matrisen med veckovisa average_asset_returns, motsvarande varje effektiv portfölj. Det är också en matris av storleken (1 497 × 4).
Skapa ett sekventiellt neuralt nätverk med rätt indatadimension och två dolda lager. Att träna nätverket från grunden skulle ta för lång tid, så du använder ett tillgängligt pre_trained_model av identisk typ för att förutsäga portföljvikter för en ny tillgångsprisvektor.
Den här övningen är en del av kursen
Kvantitativ riskhantering i Python
Övningsinstruktioner
- Skapa ett sekventiellt neuralt nätverk med två dolda lager, ett indatalager och ett utdatalager.
- Använd
pre_trained_modelför att förutsäga vilken portfölj med minimal volatilitet som skulle väljas när ny tillgångsdataasset_returnspresenteras.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
# 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))