始める無料で始める

ランダムウォークのシミュレーション

確率的(Stochastic)、つまりランダムな動きは、物理学では粒子や流体の運動、数学ではフラクタル的な振る舞い、金融では株式市場の動きを表すのに使われます。

np.random.normal() 関数を使って、取引日数 T のあいだ日次平均リターン(mu)と日次ボラティリティ(vol)を一定と仮定し、USO 原油 ETF のランダムウォークをモデル化します。

この演習はコースの一部です

Pythonで学ぶポートフォリオ・リスク管理入門

コースを見る

演習の手順

  • シミュレーションする日数(T)を 252、初期株価(S0)を 10 に設定します。
  • np.random.normal() を使って T 個の正規乱数を生成し、引数に muvolT を渡します。得られた値に 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()
コードを編集して実行