НачатьНачать бесплатно

Управление рисками в реальном времени

Пришло время применить полученные знания о нейронных сетях для управления рисками в режиме (почти!) реального времени.

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))
Редактировать и запускать код