始める無料で始める

ランダムウォークを生成する

株式の「リターン」はホワイトノイズでモデル化されることが多い一方で、株価「水準」はランダムウォークに近い動きをします。言い換えると、今日の価格は昨日の価格にランダムなノイズが加わったものです。

ここでは、初期価格が100の株価が、毎日ランダムな量だけ上がったり下がったりすると仮定して、時間とともに価格をシミュレーションし、その結果をプロットします。"Run Code" ボタンを複数回押すと、さまざまな実現値が確認できます。

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

Pythonで学ぶ時系列解析

コースを見る

演習の手順

  • np.random.normal() を使って、平均=0、標準偏差=1 の正規分布から500個のランダムな「steps」を生成します。平均の引数は loc、標準偏差の引数は scale です。
  • 株価 P をシミュレーションします。
    • numpy の .cumsum() メソッドでランダムな steps を累積します。
    • 初期株価を100にするために、P に 100 を加えます。
  • シミュレーションしたランダムウォークをプロットします。

実践的なインタラクティブ演習

このサンプルコードを完成させて、この演習に挑戦してみましょう。

# Generate 500 random steps with mean=0 and standard deviation=1
steps = np.random.normal(loc=___, scale=___, size=___)

# Set first element to 0 so that the first price will be the starting stock price
steps[0]=0

# Simulate stock prices, P with a starting price of 100
P = ___ + np.cumsum(___)

# Plot the simulated stock prices
plt.plot(___)
plt.title("Simulated Random Walk")
plt.show()
コードを編集して実行