流れる空の中で数学を。

とある数学好きの「手作りすうがく」と「気ままな雑記」。

為替レートは乱数で再現可能なのか?について

問題提起

今も昔も為替取引が活発に行われている。しかし、その未来予測は困難とされており、実際ランダムウォークのようであるとも言われている。もし、仮に完全にランダムウォーク的であるならば、分儲けと損がそれぞれ50%の確率で起こり、手数料が引かれる分期待値は必ずマイナスとなるはずである。そこで、今回は日本円と米ドルの為替レートがランダムウォーク的かどうか検証してみることにした。

検証用元データ

検証用データは1日単位で、100日分のデータを以下のサイトから拝借した。

sec.himawari-group.co.jp

各日にちの最大値と最小値、およびその平均値をプロットすると次の図のようになる。

元データの為替の移り変わり

短期間データの標準偏差

まず各日にちについて、平均値を最大値と最小値から引き、日にちに関する平均と標準偏差を求めた。最大値と最小値で大差はなく、平均からのずれの平均が\pm 0.744程度で、標準偏差0.387程度であった。

長期間の振る舞いがわかっている状況下での乱数によるずれ

元データの平均値から、平均値\pm 0.744標準偏差0.387正規分布に従う正規分布を足したり引いたりして、少しだけ短期的な乱数の影響を入れて為替チャートを乱数を用いて再生成したのが次の図である。

平均値からのずれのみ乱数となっている為替チャート

この図を見る限り、実際の為替チャートと大きなずれはなく、上昇か下落かを当てる確率は約75%程度となる。

その場合の損益は手数料を2%としてもほとんどの場合黒字になる。

しかし、分布の平均的な長期の振る舞いを事前に知ることは困難なため、この例はあくまで、短期の予想に乱数が入った場合、どれほど影響が出るかを見ているに過ぎない。

 

長期の平均値の予想も乱数で生成してみた

5日ごとに平均値が変動するとして、正規分布で平均値0で分散が適当な(値により価格の振れ幅が変わる)乱数を生成し

長期的なふるまいをランダムウォーク的に決定し、それに短期間の乱数を加味したものをいくつか生成してみた。

例1:長期予想も乱数の場合

例2:長期予想も乱数の場合

例3:長期予想も乱数の場合

例4:長期予想も乱数の場合

例5:長期予想も乱数の場合

黒の線が現実のチャートで、緑とピンクの線がそれぞれ、乱数によって生成されたチャートである。特に例1は実際の為替チャートと酷似しており、為替チャートがある程度ランダムになりうることを強く示唆している。上昇、下降の当たる確率はおよそ1/2で、期待値はマイナスになる傾向が大きかった。

疑問

いくら乱数で生み出されたチャートが現実のチャートと酷似しているとはいえ、為替の取引を行っているのは人間もしくはアルゴリズムに従ったコンピューターである。そこには、なんらかの意思や傾向が含まれているはずであるのに、なぜ乱数で生成したチャートが実際のチャートと酷似してしまうのか疑問である。ひょっとすると、僕たちの目の錯覚や思い込みで実際により詳細にデータを分析すれば、乱数が生成したチャートと現実のチャートの違いを判定する方法が存在するのかもしれないが今のところ不明である。

一人ひとり異なるとはいえ、戦略をもって行われているはずの、大衆の意思決定の結果がランダムになりうるのか?この疑問を解決するには実際のチャートとランダムなチャートをより詳細に調べる数学的ツールが必要になってくると思われる。

 

プログラム

今回、検証に用いたプログラムを貼っておく。

github.com

gistf372e9769e151f617285828c3f8caed6