為替相場の値動きに本当にウィナー過程を当てはめていいんだろうか。
簡単に調べられそうだったので、ドル円相場で少し調べてみた。
結果から言うと、正規分布っぽくなくねって結論が出てしまった。
※ウィナー過程…確率過程においてが平均0分散sの正規分布に従うような確率過程
為替データの取得
pandas_datareader
というライブラリを使えば、Web上の色々な情報を取ってくることができるらしい。
便利。
ドル円(USD/JPY)相場をとってくるにはパラメータを"DEXJPUS"とするようだ。
pandas-datareaderで株価や人口のデータを取得 | nkmk log
from pandas_datareader import data
start = datetime(2010,1,1)
end = datetime(2017,1,1)
usdjpy = data.DataReader("DEXJPUS","fred",start,end)
結果
下の図は、青い線がヒストグラムのKDE*1を表し、黒い線が正規分布にフィッティングしたものを表す。
p値は
7.15e-24
となって、正規分布じゃなくねって結論が出た。
見た目では、正規分布に比べると中心と裾にかけて広くなっていくような分布っぽい。
1分足とか1時間足で使えるデータが簡単に見つからなかったのでやってないが、それらでも試してみたい。
コード
from pandas_datareader import data, wb
from datetime import datetime
from math import isnan
from scipy import stats
import matplotlib.pyplot as plt
import numpy as np
import seaborn as sns
sns.set_style("whitegrid")
start = datetime(2010,1,1)
end = datetime(2017,1,1)
usdjpy = data.DataReader("DEXJPUS","fred",start,end)
subs = zip(usdjpy["DEXJPUS"][:-1],usdjpy["DEXJPUS"][1:])
sublist = []
for i,j in subs:
if isnan(i) or isnan(j):
continue
sublist.append(j - i)
print(stats.shapiro(sublist)[1])
sns.distplot(sublist,fit=stats.norm)
plt.title("dist of 2010-2017 USD/JPY price movement")
plt.show()