ランダムウォークを生成する
株式の「リターン」はホワイトノイズでモデル化されることが多い一方で、株価「水準」はランダムウォークに近い動きをします。言い換えると、今日の価格は昨日の価格にランダムなノイズが加わったものです。
ここでは、初期価格が100の株価が、毎日ランダムな量だけ上がったり下がったりすると仮定して、時間とともに価格をシミュレーションし、その結果をプロットします。"Run Code" ボタンを複数回押すと、さまざまな実現値が確認できます。
この演習はコースの一部です
Pythonで学ぶ時系列解析
演習の手順
np.random.normal()を使って、平均=0、標準偏差=1 の正規分布から500個のランダムな「steps」を生成します。平均の引数はloc、標準偏差の引数はscaleです。- 株価
Pをシミュレーションします。- numpy の
.cumsum()メソッドでランダムなstepsを累積します。 - 初期株価を100にするために、
Pに 100 を加えます。
- numpy の
- シミュレーションしたランダムウォークをプロットします。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# 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()