Zacznij terazZacznij za darmo

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

Zobacz kurs

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 aktywach asset_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))
Edytuj i uruchom kod