背景知識: Triple Barrier標識方法
「従来の上昇/下降ラベルは重要な問題を無視している: どれくらいの期間保有できるのか?」
従来のラベルの問題
明日AAPLが上昇するか下降するかを機械学習で予測するとしましょう:
Label = 1 if 明日の終値 > 今日の終値 else 0
何が問題なのか?
| シナリオ | 明日の方向 | 従来のラベル | 実際の結果 |
|---|---|---|---|
| 始値-3%、終値+0.5% | 上昇 | 1(正しい) | ストップアウト、-3%損失 |
| 安定した+2%上昇 | 上昇 | 1(正しい) | 保有、2%獲得 |
| 5%上昇、終値+0.1% | 上昇 | 1(正しい) | 利確なし、5%を逃した |
従来のラベルは保有期間中のボラティリティとリスク管理を完全に無視しています。
Triple Barrierのコアアイデア
3つの「バリア」を設定し、最初にトリガーされたものがラベルを決定:
3つのバリア:
- 上方バリア: 価格が利確レベルまで上昇 -> Label = 1
- 下方バリア: 価格が損切りレベルまで下落 -> Label = -1
- 垂直バリア(時間): 保有期間終了 -> Label = 0または最終方向に基づく
詳細な計算例
設定:
- エントリー価格: $185.00(AAPL)
- 利確: 2%($188.70)
- 損切り: 1%($183.15)
- 最大保有期間: 5日
シナリオ1: 2日目に$189.00に到達
結果: 上方バリアトリガー
Label: 1(利益確定出口)
実際リターン: +2%
シナリオ2: 3日目に$182.50に下落
結果: 下方バリアトリガー
Label: -1(損切り出口)
実際リターン: -1%
シナリオ3: 5日間$184-$187で振動
結果: 時間バリアトリガー
Label: 0または最終価格に基づく
実際リターン: 出口価格に依存
動的バリア: ボラティリティベース
異なる市場環境で固定2%の利確は非合理的:
| 市場状態 | 日次平均ボラティリティ | 固定2%利確 | 問題 |
|---|---|---|---|
| 低ボラティリティ | 0.5% | 4日かかる | 時間バリアが先にヒット可能性 |
| 高ボラティリティ | 3% | 同日トリガー | トレンドをキャプチャできない |
解決策: ATR(Average True Range)またはローリング標準偏差を使用してバリアを定義
上方バリア = エントリー価格 x (1 + k x sigma)
下方バリア = エントリー価格 x (1 - k x sigma)
Where:
sigma = 過去20日のリターン標準偏差
k = 乗数(通常1-3)
例:
- sigma = 1.5%
- k = 2
- エントリー価格 = $185
上方バリア = $185 x (1 + 2 x 1.5%) = $190.55
下方バリア = $185 x (1 - 2 x 1.5%) = $179.45
非対称バリア
実際の取引では、利確と損切りは非対称であることが多い:
| 戦略タイプ | 利確倍数 | 損切り倍数 | 損益比 |
|---|---|---|---|
| トレンドフォロー | 3sigma | 1sigma | 3:1 |
| 平均回帰 | 1sigma | 2sigma | 1:2 |
| 高勝率 | 1sigma | 1sigma | 1:1 |
トレンド戦略の例:
利確 = 3 x 1.5% = 4.5%
損切り = 1 x 1.5% = 1.5%
勝率が25%以上あれば利益:
期待値 = 勝率 x 4.5% - (1-勝率) x 1.5%
勝率 = 30%の場合: 期待値 = 0.3%(正のリターン)
ラベル分布の重要性
Triple Barrierは3種類のラベルを生成; 分布がモデル訓練に影響:
| Label | 意味 | 理想的比率 | 実際の現実 |
|---|---|---|---|
| 1 | 利確出口 | 33% | レンジ市場では< 20%可能性 |
| -1 | 損切り出口 | 33% | トレンド市場では< 20%可能性 |
| 0 | 時間出口 | 33% | しばしば>50% |
クラス不均衡への対処:
- 少数クラスのオーバーサンプル(SMOTE)
- 多数クラスのアンダーサンプル
- クラスウェイトを調整
- より均一な分布のためにバリア幅を調整
従来のラベルとの比較
| 次元 | 従来のラベル | Triple Barrier |
|---|---|---|
| 情報内容 | 方向のみ | 方向 + リスク + 時間 |
| ライブ取引との一貫性 | 低い | 高い |
| 計算複雑性 | O(1) | サンプルごとにO(T) |
| ラベルノイズ | 高い | より低い |
| 適切な戦略 | シンプルな予測 | 実際の取引システム |
マルチエージェントの視点
マルチエージェントアーキテクチャでは、Triple Barrierを次のように適用可能:
Signal Agent: ラベルを予測(1、0、-1)
|
Risk Agent: バリア幅を動的に調整
|
- 高ボラティリティ期間 -> より広いバリア、頻繁な損切りを回避
- 低ボラティリティ期間 -> より狭いバリア、資本効率を改善
|
Execution Agent: バリアトリガーを監視、出口を実行
よくある誤解
誤解1: より広いバリアは常により良い
間違い。より広いバリアは損切りトリガーを減らすが:
- 取引ごとの損失が大きくなる
- 資本のロックアップ期間が長くなる
- 他の機会を逃す可能性
誤解2: 時間バリアは重要ではない
非常に重要。時間バリアなしで、資本が長期間ロックされる可能性。5日経過してもバリアがトリガーされない場合、判断が間違っている可能性があり、出口して再評価すべき。
誤解3: Triple Barrierラベルは常に従来のラベルより優れている
必ずしもそうではない。戦略が利確/損切りを使用しない場合(例: T+1で翌日売却必須)、従来のラベルがより適切かもしれない。ラベル方法は実際の取引ロジックと一致すべき。
実用的な推奨事項
- シンプルから始める: 最初に固定パーセンテージバリアを使用、検証後にボラティリティ調整を追加
- ラベル分布をチェック: 3つのラベルタイプの比率が非常に不均一な場合に調整
- 一貫してバックテスト: 訓練でTriple Barrierを使用する場合、バックテストで同じ利確/損切りロジックをシミュレートすべき
- 取引コストを考慮: バリアが狭すぎると頻繁な取引につながり、コストがリターンを食う
まとめ
| キーポイント | 説明 |
|---|---|
| コアアイデア | 利確、損切り、時間バリアを使用してラベルを決定 |
| 利点 | 実際の取引ロジックと一貫したラベル、ノイズ削減 |
| キーパラメータ | バリア幅、対称性、時間持続 |
| 動的調整 | ボラティリティ(ATRまたはsigma)に基づいてバリアを設定 |
| マルチエージェント応用 | Risk Agentが市場状態に基づいてバリアを調整 |