ランダムなリターンをシミュレートする簡単な方法は何ですか?私はnumpy.random
を知っています。しかし、それは資産リターンをモデル化する方法に私を導くものではありません。numpyでランダムなリターンをシミュレートする方法
私が試してみた:
import numpy as np
r = np.random.rand(100)
をしかし、これは正確に感じることはありません。どのように他の人がこれをやっているのですか?
ランダムなリターンをシミュレートする簡単な方法は何ですか?私はnumpy.random
を知っています。しかし、それは資産リターンをモデル化する方法に私を導くものではありません。numpyでランダムなリターンをシミュレートする方法
私が試してみた:
import numpy as np
r = np.random.rand(100)
をしかし、これは正確に感じることはありません。どのように他の人がこれをやっているのですか?
Iは、2つのアプローチのいずれかをお勧めしたい:
One:
はリターンは、通常、平均0.1%に等しいstadard偏差約1%で分布していると仮定する。これは、次のようになります。私たちの両方が同じシードを使用している場合、我々は同じ結果が表示されるはずですように
import numpy as np
np.random.seed(314)
r = np.random.randn(100)/100 + 0.001
seed(314)
は、特定の時点での乱数ジェネレータを設定します。
randn
は正規分布から引き出します。
pandas
もお勧めします。
df.add(1).cumprod().plot()
Two:
二:それはあなたが、このような累積リターンをプロットすることができR
import pandas as pd
df = pd.DataFrame(r)
に似DataFrame
オブジェクトを実装したライブラリです方法はtですo戻り値はログが正規分布していると仮定します。つまり、ログ(r)は正常です。このシナリオでは、正規分布乱数を引いて、その値を指数としてe
の値として使用します。それは次のようになります。
r = np.exp(np.random.randn(100)/100 + 0.001) - 1
あなたはそれをプロットした場合、それは次のようになります。
pd.DataFrame(r).add(1).cumprod().plot()
包括的な答え。トレードされたオプション評価のためにこれを行った仕事の多くは、人々がそれをしてきたことを探す価値があります。株価がボラティリティに応じてバイナリ方式で上下する可能性はあるものの、リスクフリーのリターン率に沿った傾向があると仮定すると、この二項分布はログの法線に近づく傾向にあるので、 – paddyg
使用する特別な理由r = np.random.normal(0.001,0.01、size = 100)ではなく 'r = np.random.randn(100)/ 100 + 0.001'となるでしょうか?私は通常、後者を好んでいます。なぜなら、何が平均であり、何がstddevであるかが非常にはっきりしているからです。 –