ランダムウォークのシミュレーション
確率的(Stochastic)、つまりランダムな動きは、物理学では粒子や流体の運動、数学ではフラクタル的な振る舞い、金融では株式市場の動きを表すのに使われます。
np.random.normal() 関数を使って、取引日数 T のあいだ日次平均リターン(mu)と日次ボラティリティ(vol)を一定と仮定し、USO 原油 ETF のランダムウォークをモデル化します。
この演習はコースの一部です
Pythonで学ぶポートフォリオ・リスク管理入門
演習の手順
- シミュレーションする日数(
T)を 252、初期株価(S0)を 10 に設定します。 np.random.normal()を使ってT個の正規乱数を生成し、引数にmu、vol、Tを渡します。得られた値に 1 を加えてrand_retsに代入します。- ランダムウォークを、
rand_rets.cumprod()に初期株価を掛けたものとして計算し、forecasted_valuesに代入します。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# Set the simulation parameters
mu = np.mean(StockReturns)
vol = np.std(StockReturns)
T = ____
S0 = ____
# Add one to the random returns
rand_rets = ____ + 1
# Forecasted random walk
forecasted_values = ____
# Plot the random walk
plt.plot(range(0, T), forecasted_values)
plt.show()