教団「二次元愛」

リアルワールドに見切りをつけ、二次元に生きる男の生き様 (ニコニコでは「てとろでP」)

テクニカル分析の有用性をシミュレーションで検証した

2012-02-24 00:00:47 | 経済/経済/社会


↑これは何かわかるだろうか?

形からすると株か為替かなにかのチャートにしか見えないが、実はぜんぜん違う。

これはn-1番目からn番目の遷移を正規分布の乱数で生成した、特に何でもない配列だ。
Matlabでいうところの
for j=2:4000
a(j)=a(j-1)+randn(1);
end
みたいなものだ。

でもチャートにしか見えない。
下がって、上がって、下がって、上がる、メジャートレンドが中に隠されてようにしか見えない。
でもただの乱数の積分だ。



これを見てどう思うだろうか?

肯定的な見方が1つ。
たとえ乱数でもテクニカル分析が通用するのではないか?という推測。

否定的な見方が1つ。
株や為替はテクニカル分析できそうにみえて、テクニカル分析はやっぱり乱数の次の値を予測するくらい無意味なのではないか?という推測。

その両方とも思いうる。

これはどちらが正しいのだろうか?

ならばそれを確認してみよう!
・・・ということが今日の話である。



今回使うデータは現実の過去データでも何でもない。
PCで乱数を自動生成しているだけなので膨大な量のシミュレーションをやって統計的に検証するのはカンタンだ。
検証する内容は以下のとおりとした。

・正規分布の乱数の積分でチャートもどきを生成する。
・トレンド系とオシレーター系のテクニカル指標をプログラムで作る。
・それぞれ代表的手法として移動平均とボリンジャーバンドを採用した。
・そのサインを用いて自動売買し、ポジション1倍か0倍かの2値のどちらかをとるようにした。





たとえば移動平均だと上図のようになる。
これをむりやりチャート的に解釈すると、大きな下げトレンドを回避することには成功しているが、ダマシにコロコロひっかかってて上げトレンドで全く勝てていない、あまりよろしくないアルゴリズムと言ってもいい。





たとえばボリンジャーバンドだと上図のようになる。
これをむりやりチャート的に解釈すると、大きなトレンドが来るタイミングで無理に逆張りして損しており、これもあまりよろしくないアルゴリズムと言ってもいい。





それをとあるパラメータで100回繰り返し、売り買いせず最初から最後までホールドしつづけた場合の損益と比較したものの一例が上図。
最初から最後までホールドしつづけた場合がピンク。
チャートで自動売買したものが青。



この結果をどう見るか?

儲かってない・・・。

けど、平均的に儲かっていないとはいえ、損益のボラティリティーがやや改善されている。
標準偏差でいうと3割くらい小さくなる。

これはいいことなのか?

いや違う。

単にポジションを持っていなかった区間が期待値として50%あるため、標準偏差がその平方根だけ改善されているにすぎない。
つまり、損益のボラティリティーがやや改善されているのはチャートが有効に機能したためではなく、乱数の性質からいって当然の結果である。

上ではとあるパラメータの1例しか表示していない。
だが、トレンド系とオシレーター系とを入れ替えても同じだし、パラメータを何種類かやってみても同じだった。
統計的にはどれも違いがでなかったのだ。

ふつうはどれか1種類しか指標を使わないわけではなくて複数組み合わせて使うもので、そういう意味では今回のシミュレーションは原始的すぎるという話もあるかもしれない。
だが、この結果から見るに複数組み合わせて使うシミュレーションをしたところで大して効果はなさそうだとしか思えない。



これから得られた結論は何か?

チャートが完全にランダムウォークだとすれば、テクニカル分析は全く役にたたないことが明らかになったというのが結論。

もっと定性的にいえば、乱数の未来予測が不可能だというアタリマエのことをシミュレーションによって確かめたにすぎない。

ならばテクニカル分析はタダのオカルトにすぎないのか?

それには異論がある。
最初に示したように株や為替のチャートは乱数の積分値にソックリだが、ランダムウォークではない要素が何かあるかもしれない。
その”何か”を見つけ出し、そのシグナルが見えるテクニカル分析を行えば、ひょっとしたらテクニカル分析は役に立つ可能性がある。



その”何か”とは?

ランダムウォークではない要素の1例を以下に示す。



青線は日経225の日足を微分したもののヒストグラムである。
一見するとランダムウォークな正規分布に見えるが実は違う。
σの異なる2つの正規分布を合わせないとリアルな株価のヒストグラムは表せない。

もう少し詳細にいうと、リアルな株価は極端に大きな変動が乱数よりも発生しやすいという解釈になる。
オプションでもインプライドボラティリティーはヒストリカルボラティリティーよりもほぼ常に割高になっているのは恐らくこれが原因だろう。
だから安易にオプションを売るとカンタンに死ねる。



では、それをどう使うのか?

現時点ではわたしも語れるほど見えたものがあるわけではない。
今後の検討課題としたい。






追伸:

実際、わたしがテクニカル分析を役立てているかというと・・・
見てはいるものの、実はほとんど当てにしてない。

最初テクニカル分析からはじめたのだが、勝てなかったので後にファンダメンタル派に改宗したという経緯がある。
今日の話は元からテクニカル分析に否定的な者が書いたという背景があるので、ややバイアスがかかっているかもね。