Zarządzanie ryzykiem w czasie rzeczywistym
Czas zastosować w praktyce wiedzę o sieciach neuronowych i przeprowadzić (niemal!) zarządzanie ryzykiem w czasie rzeczywistym.
14-dniowe okno kroczące zwrotów z aktywów dostarcza wystarczającej ilości danych, aby zbudować szereg czasowy portfeli o minimalnej zmienności przy użyciu Nowoczesnej Teorii Portfela, którą poznałeś(-aś) w rozdziale 2. Wagi portfeli minimum_vol stanowią wartości treningowe sieci neuronowej. Jest to macierz o wymiarach (1497 x 4).
Dane wejściowe to macierz tygodniowych average_asset_returns, odpowiadających każdemu efektywnemu portfelowi. Jest to macierz o wymiarach (1497 x 4).
Utwórz sekwencyjną sieć neuronową z odpowiednim wymiarem wejścia i dwiema ukrytymi warstwami. Trenowanie tej sieci zajęłoby zbyt dużo czasu, dlatego skorzystasz z dostępnego pre_trained_model tego samego typu, aby przewidzieć wagi portfela dla nowego wektora cen aktywów.
To ćwiczenie jest częścią kursu
Ilościowe zarządzanie ryzykiem w Pythonie
Instrukcje do ćwiczenia
- Utwórz sekwencyjną sieć neuronową z dwiema ukrytymi warstwami, jedną warstwą wejściową i jedną warstwą wyjściową.
- Użyj
pre_trained_model, aby przewidzieć, jaki byłby portfel o minimalnej zmienności po podaniu nowych danych o aktywachasset_returns.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
# 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))