神はサイコロ遊びをしないが、遊ばれているのは神の方なのかもしれない。

私は生きています。今の仕事になってからも3年間で1番忙しく本当に何もできていなかっただけで一応生きています。

アホほど忙しいのに、しかしそういう忙しい時ほど余計なことばかり考えてしまうもので、BitFlyerで仮想通貨のデイトレードをやってみた(ビットコイン自体は2012年ぐらいから超長期で保有しているがそれは今どうでもいい)。

僕は長期投資は得意なのにどうも短期投資ではいまいち勝てないので、空き時間で(いま絶望的に忙しくて空き時間なんてほとんどないんだけど)色々と勉強をしてみた。しかし、いろいろな人たちの投資理論やテクニックを聞いて感じたのは、どれも表層(つまりは現象の結果たるアウトカム変数)の動きしか見ていない。価格(あるいはLTP)が200日平均を割ったら云々なんていうのは個人的には本当にどうでもいい。

とはいえ値動きなんていうのは群集心理の結果なので皆がそう思い込めばそうなってしまうのだが。そういうのはいわゆるノイズ・トレーダーに分類されるが、少なくとも上記のようなある種の迷信とも取れるアノマリーを拠り所にトレードする人は全員ノイズなのではないか。

別にノイズトレーディングが悪いわけではない。単純に勝率でみたら決して高くはならないだろうなというだけの話で。偉そうなことを言っている僕自身は基本的に人間行動をログデータのみで(言い換えると行動の原因となる性格などを基本的には見ないで)「表層→表層」のモデリングをしている人間なわけで。最近は色々なところに顔を出して遊ばせてもらっているのだが、ここでも少しぐらい勉強になることがあるかもしれないと思い触り始めた。

高頻度取引(HFT)をはじめとした超短期のトレードを考えると満たすべき条件は非常に単純で、bitFlyerのシステムを例に、実直に売買時のキャピタルゲインだけで収益を得ることを目指すとすれば、購入価格と取引量に対して購入時・売却時の手数料を除いた分の売却額が上回ればいい(本当は数式にまとめたんだけど、これを読める人にはこんな解説はいらないはずなので消した)。

最初は適当に、値動きからトレンドと周期を取り除いた残差の分散をベースに超短期的な取引を繰り返すだけでうまくいけば勝てるかなと思っていたのだけれど、さすがにそう簡単にはいかなかった。シミュレーションしてみるとランダムウォークに任せるにはそもそも手数料が高すぎる。カジノで手数料分だけ負けるのと同じで、純粋に確率だけ見てアルゴリズムを組むと少しずつ負けていく。

デイトレードにせよ、超短期の高頻度取引を目指しているのには理由があって、たとえばある瞬間に購入したものをs秒後に売却するのに、そのsをかなり小さくすることで値動きのトレンドを無視したいからですね。

たとえばBitFlyer Lightning上のイーサリアムの直近1週間(=60秒間*60分*24時間*7日間=604,800秒)の秒単位の値動きのデータを取得しておいて、その中からランダムに選び出した価格が30秒間でどう変動するかを調べることを100回繰り返した結果が以下の図になる。

これは最初の1秒目の価格を100%とした時にそれが30秒間で何%変動しているかを見ているわけだけど、結果は一目瞭然で、かなりいろいろなものが見えてくる。95%信頼区間が目で見えるようだし、普通に確率に身を任せればランダムウォークの魔力(=平均への回帰)に吸い寄せられる。神はサイコロ遊びをしないが、実はサイコロこそが神なんだなと思うことが度々ある。

(本当はもっと大量のデータを数値的に分析してるけど、この図の限りでいうとすれば、)ほとんどの変動は基本的に100±0.2%に収まり、それを超えて上がる/下がるものは外れ値的な動きをしている。値動きの変動の全体平均は-0.005%。そもそも負けているし、ショートだろうとこの値幅では手数料が上回るので勝てない。

先にも書いた通り、手数料が高いので純粋に確率だけ見てアルゴリズムを組むとやはり少しずつ負けていく。

もちろんここで30秒後に確実に伸びているであろう1本をあらかじめ予測するのは至難の技だが、もし時系列解析で下がりそうなものをざっくばらんに落としていければ期待値は+に回る。まあ簡単にいうべきことでもないけど。

なぜシステムに頼ろうとしているかといえば話は簡単で、取引から感情を取り除きたいから。人間はどうしても値上がりしたときに「もっと上がるのでは?今買わなきゃ損するかも」と高値で掴み、それが値下がりしたときに「これ以上下がり続けたらもっと損するかも」と安値で手放したくなる。ただ単にこれをロジックで抑え込みたいだけ。

いつか俺がどうかしてしまって「ファンドやりたいから金貸して」って言ってきても絶対に貸さないでくださいね。