アルファ探求「平均回帰」編
こんにちは。Hohetoです。
今日は、高頻度取引における短期価格予測についてのお話です。
逆選択リスクと短期価格予測
マーケット・メイクのような高頻度取引において、「逆選択リスク」という概念が存在します。
マーケット・メイクは、板に指値注文を置きますが、買いの指値注文を置くという行為は、「価格がその水準まで下がってきて約定することを期待(予測)し、かつ、その後、価格が同水準以上に高くなることを期待(予測)する」ということです。
これは逆張りのトレードなわけですが、その期待や予測に反して価格が反発せず、約定した状態でそのまま一方方向に動いて行ってしまう、というのが「逆選択をしてしまう」ということです。メイク注文を行う以上、このリスクは必ず付きまといます。
このリスクを抑制するため、短期の価格予測を行うわけです。
在庫リスクの抑制と考え方は同じで、動きそうな方向に若干ずらして指値を置くことで、動きそうな方向に約定しやすく、あるいは動きそうな方向とは逆の方向で約定する際は若干有利な価格で約定させる、ということになります。
平均回帰による短期価格予測
それでは本題に入ります。まずはこちらの書籍を紹介します。「人工知能が金融を支配する日」という本です。
こちらの本の一節には、以下のような記載があります。
「ロボたちがほぼ共通して利用する市場の性質に『平均回帰』という特性があります。これは相場の短期的な値動きは参加者の売買のインパクトなどで多少の値を上下をしつつ、次の瞬間には(移動平均などの)トレンドに回帰しやすいという特性です。
このような特性があるため、一般に数秒以下などの短期の相場の変動の予想は、長期の変動の予想よりも遥かに簡単です。
こうした事情があるので、超高速ロボ・トレーダーは短期的な相場の変動を予想しながらマーケットメイクをすることができるのです。」
非常に興味深い内容ですね。
既存市場で活躍するHFTボットたちは、「ほぼ共通して平均回帰の性質を利用している」そうです。
では、現在のbitFlyerにおいてもこの性質を観測できるのか?まずは確かめてみることにしましょう。
bitFlyerにおける短期間の平均回帰(価格の反発)
まず、bitflyerの約定履歴をもとに、秒足を作成します。
その後、直前の数秒間での値動きが、未来の数秒の値動きに対してどのような性質を持っているかを観測します。
こちらは、2月某日のbitFlyerのFXBTC/JPYの直前3秒間の値動き(横軸。当指標と呼ぶことにします)と、その直後1秒間の値動き(縦軸)の散布図です。
当指標は非常に単純ですが、ある程度相関が見て取れます。少々短絡的ではありますが、少なくとも「2つの値動きは全く無関係である」とは言えません。「短期的には価格は反発する傾向がある」と言ってよさそうです。
それでは、当指標は実際の運用に使えるでしょうか?
平均回帰はbitFlyerのHFTに使えるか?
結論から書きますが、この指標を基にバックテストを行い、成績が改善できるかを検証しましたが、改善できませんでした。
ガッカリしましたか?スミマセン
では、なぜ改善できなかったを説明していきます。
先ほどは、当指標と1秒後の値動きとの関係を検証しましたが、これを2秒後、3秒後と延ばしてみましょう
こちらは、当指標と2秒後の値動きの散布図です。
次は、当指標と3秒後の値動きの散布図です。
ご覧の通り、1秒先の値動きになるに従い、説明力が急激に減衰しています。この性質がすぐに市場に織り込まれている、という表現をしてもよいかもしれません。市場全体としてそのような構造があるのかもしれませんし、もしかしたらこの値動きを取るための超高速のボットが存在するのかもしれません。
以下は、当指標とN秒後の値動きとの決定係数の減衰の様子を表したグラフです。
秒数が増えるに従い、きれいに説明力が無くなっていく様子が見て取れます。
先ほど、僕のバックテストでは成績を改善できなかった、という話をしましたが、実は僕のバックテストでは、各種遅延やインパクトを加味するため、「1秒の遅延」をペナルティとして課していたのでした(1秒前の指標に基づいて発注&約定シミュレーションを行う、という意味です)。
当然、このように減衰する指標に対して1秒~数秒の遅延を課すと、エッジは消失してしまい、改善は見込めなくなるでしょう。
実運用の環境下でも、似たような結果になると思われます。遅延したWebSocketから情報を取得し、APIによる発注リクエストを行い、注文IDを取得後、約定判定を行い、約定していたら利確注文を出す…というようなことをしていると、値動きからすぐに取り残されてしまい、成果を上げるのは難しいでしょう。
ということで、このような値動きの性質を確認できたものの、特にストラテジーに活かすことは、今のところ出来ていません。
ですが、もしかしたら他の何かと組み合わせることで成績を若干改善させる、という使い道はあるかもしれません。
あるいは僕の考えが至っていない、有意義な使い方がもしかしたらあるかもしれませんので、もしも何かアイデアを持っている人がいれば、こっそりDMください笑。
皆様からの熱いお便りをお待ちしています。