Керування ризиком у реальному часі
Час застосувати знання про нейронні мережі, щоб виконати (майже) керування ризиком у реальному часі.
Ковзне 14-денне вікно доходностей активів дає достатньо даних, щоб побудувати часовий ряд портфелів із мінімальною волатильністю за сучасною теорією портфеля, як ви бачили в розділі 2. Ці ваги портфелів minimum_vol є навчальними значеннями для нейронної мережі. Це матриця розміру (1497 x 4).
Вхід — це матриця тижневих average_asset_returns, що відповідає кожному ефективному портфелю. Це матриця розміру (1497 x 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))