リアルタイムのリスク管理
これまでに学んだニューラルネットワークの知識を使って、(ほぼ)リアルタイムのリスク管理を行いましょう。
14日間のローリングウィンドウの資産リターンがあれば、モダンポートフォリオ理論を用いて最小ボラティリティ・ポートフォリオの時系列を作成できます(第2章で見たとおりです)。これらの minimum_vol ポートフォリオのウエイトが、ニューラルネットワークの学習用データになります。これは (1497 x 4) の行列です。
入力は、各効率的ポートフォリオに対応する週次の average_asset_returns の行列です。これも (1497 x 4) の行列です。
適切な入力次元と2つの中間層をもつ Sequential ニューラルネットワークを作成してください。ネットワークの学習には時間がかかるため、同型の pre_trained_model を使って、新しい 資産価格ベクトルに対するポートフォリオのウエイトを予測します。
この演習はコースの一部です
Pythonで学ぶ定量的リスク管理
演習の手順
- 入力層1つ、出力層1つ、隠れ層2つをもつ 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))