Управление рисками в реальном времени
Пришло время применить полученные знания о нейронных сетях для управления рисками в режиме (почти!) реального времени.
14-дневное скользящее окно доходностей активов даёт достаточно данных для построения временного ряда портфелей с минимальной волатильностью с помощью современной портфельной теории, как вы видели в главе 2. Веса этих портфелей minimum_vol служат целевыми значениями для обучения нейронной сети. Это матрица размером (1497 × 4).
Входными данными служит матрица недельных average_asset_returns, соответствующих каждому эффективному портфелю. Это также матрица размером (1497 × 4).
Создайте последовательную (Sequential) нейронную сеть с нужной размерностью входа и двумя скрытыми слоями. Обучение такой сети заняло бы слишком много времени, поэтому вы воспользуетесь готовой моделью pre_trained_model аналогичной архитектуры, чтобы предсказать веса портфеля для нового вектора цен активов.
Это упражнение является частью курса
Количественное управление рисками на Python
Инструкции к упражнению
- Создайте последовательную (Sequential) нейронную сеть с двумя скрытыми слоями, одним входным и одним выходным слоем.
- Используйте
pre_trained_model, чтобы предсказать оптимальный портфель с минимальной волатильностью при поступлении новых данныхasset_returns.
Интерактивное практическое упражнение
Попробуйте выполнить это упражнение, дополнив этот пример кода.
# 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))