ファイナンス機械学習 勉強 #1 -トリプルバリア法-(ラベリング)
この記事は、『ファイナンス機械学習』を読んで得た学びや考えを、私自身の視点で要約・考察したものです。とても難しい内容なので平易な文章で学んだことを整理していきます。Pythonで実装をして検証を行わないとイメージがつきにくいと思うので、実際に本書を手に取って勉強してください。
今回は『ファイナンス機械学習』第3章です。第1章から第2章は飛ばします。
読んだ内容のまとめ
1.解決したい問題点
機械学習を金融データに適用する際、正確なラベル付けはモデル性能に大きな影響を及ぼします。
従来のラベリングでは、固定期間後のリターンをもとに単純な上下ラベルを付ける「固定ホライズン法」が一般的ですが、以下のような問題があります。
実際の売買ルール(利確・損切・保有期間)を反映していない
一律の期間を使うため、ボラティリティの影響を考慮していない
時間ベースのバー(タイムバー)は、統計的な性質が安定しにくい
短期的なノイズや外れ値でラベルが反転することがある
これらを解決するために登場したのが、トリプルバリア法です。
トリプルバリア法では、
利益確定ライン
損切りライン
時間制限
この3つの出口ルールを明確に設定し、実際のトレードに近い形でより信頼性の高いラベルを作成することができます。
2.トリプルバリア法の仕組み
トリプルバリア法では、次の3つの「バリア(障壁)」を設定します。
利益確定バリア(上方向に動いた場合)
損切りバリア(下方向に動いた場合)
時間制限バリア(一定期間が経過した場合)
具体的には、ある時点の価格を基準にして、
価格が一定割合だけ上昇したら「成功」(+1)
価格が一定割合だけ下落したら「失敗」(-1)
どちらにも到達せず時間切れになったら「中立」(0)
というルールでラベルを決めます。
これにより、
単なる「上がった・下がった」だけでなく、リアルな売買ルールに即した評価ができるようになります。
3.図解によるイメージ
イメージとしては、
「もし買った後に20%上がったら成功、5%下がったら失敗、それ以外は時間切れ」
こんなふうにあらかじめ出口戦略を決めておくという感覚です。
利益確定バリア(上方向に動いた場合)
例えば、イベント開始から20%の利確に達した場合

損切りバリア(下方向に動いた場合)
こちらは、イベント開始から5%の損失に達した場合

時間制限バリア
こちらは、イベント開始から利益確定バリア、損切バリアに達しずに、30日間たった場合

この方法により、
無意味な小さなノイズに振り回されにくくなる
売買の基準が明確になる
モデルが「どんなイベントが成功するか」を学びやすくなる
といったメリットが得られます。
4.数式による理論
ある時点 $${t}$$ における価格を $${P_t}$$、その後の価格を $${P_{t+k}}$$ とし、
閾値パラメータをそれぞれ $${theta_{pt}}$$(利益確定)、$${theta_{sl}}$$(損切)、保有期間を $${T_{limit}}$$ とすると
利益確定バリア: $${P_t (1 + theta_{pt})}$$
損切りバリア: $${P_t (1 - theta_{sl})}$$
時間制限: $${t + T_{limit}}$$
価格がこのいずれかの条件を最初に満たしたときに、イベントは終了しラベルが確定します。
+1:利益確定バリアに最初に到達
-1:損切りバリアに最初に到達
0:時間切れでどちらにも到達しなかった
気づき
トリプルバリア法で定義した3つのバリアに触れた状態を抑えることで、戦略が成功したか、失敗したか、中立なのかがわかる
リターンを予測するのではなく、この戦略が成功したかどうかを予測する
「どこで入るか」より「どこで出るか」のほうが、トレードの成否に直結する。
投資への活用アイディア
イベント(例:52週高値更新など)を起点にして、その後の価格の動きを「成功」「失敗」「中立」で分類し、機械学習モデルに学習させる。
特徴量(テクニカル指標やファンダメンタルズ)と組み合わせることで、
「このイベントは伸びるか?」
「損切になるリスクが高いか?」
を予測することができそう。特に、「成功」(+1)の精度が高いモデルを作れれば、実際の取引フィルターとして非常に有効。
本書では、閾値を固定値に設定するだけでなく、動的閾値の設定も推奨しております。これはボラティリティの大きさによって閾値を動的に変動させるもので、動的閾値によるトリプルバリア法の適用が必要。
疑問点に関する調査
タイムバーでもこの手法は使えるか?
本手法の理論背景では、「イベントベース(例:価格変動ベース)」でサンプリングされたバーの方が、統計的性質(独立性、定常性)に優れているとされています。これは、情報の発生に合わせてバーを切ることで、ノイズを減らし、ラベルの信頼度を高める意図です。
ただし、タイムバーしか手元にない場合でもトリプルバリア法は十分に有効と解釈しました。理由はシンプルで、
ラベルは「価格が一定水準に到達したかどうか」で決まる
時間の区切り方は関係ない
からです。
今後のアクション
マルチ銘柄対応、個別株への適用を行う場合は、銘柄ごとに計算をする必要があり、本書ではシングル銘柄を想定しているため、処理を効率的に行うための対応が必要。
ということでファイナンス機械学習の第一回は終わります。本書は難易度が高いのでなるべく簡単な表現を心がけました。最近投稿をさぼっていたのでまた継続して投稿をしていきます。
