背景知識:Meta-Labelingメソッド
「上がるか下がるかを予測するのではなく、『この予測が信頼できるか』を予測する。」
従来の方法の問題
シナリオ:トレンドフォローモデルが買い/売りシグナルを生成する
従来のフロー:
シグナル生成 -> 直接実行 -> 結果はまちまち
問題:
- トレンドが明確な時は高い勝率(some signals)
- レンジ相場では低い勝率(some signals)
- モデルはこれら2つの状況を区別できない
結果:取引すべきでない時に取引し、コストを浪費し、リターンを引き下げる。
Meta-Labelingのコアアイデア
2段階決定:
詳細プロセス
ステップ1:一次モデルがシグナルを生成
一次モデルは任意の戦略が可能:
- テクニカル分析ルール
- 機械学習モデル
- ファンダメンタルファクター
一次モデル出力:
+1 = 買いシグナル
-1 = 売りシグナル
0 = シグナルなし
ステップ2:Metaラベルを構築
各一次モデルシグナルについて、そのシグナルが正しかったかを判定:
Metaラベル定義:
一次シグナル方向が正しく利益 -> Metaラベル = 1
一次シグナル方向が間違いまたは損失 -> Metaラベル = 0
Triple Barrierと組み合わせ:
一次モデルが「買い」、上部バリアをトリガー(利益確定) -> Metaラベル = 1
一次モデルが「買い」、下部バリアをトリガー(損切り) -> Metaラベル = 0
ステップ3:Metaモデルを訓練
Metaモデルは一次モデルシグナルの成功確率を予測することを学習:
特徴量:
- 一次モデルシグナル方向
- 現在のボラティリティ
- トレンド強度
- 一次モデル履歴精度
- 市場状態指標
ターゲット:
- シグナルが利益になるかを予測(二値分類)
- または信頼度レベルを予測(回帰)
ステップ4:決定実行
最終決定 = 一次モデル方向 x Metaモデル信頼度
例:
一次モデル:買い(+1)
Metaモデル:信頼度0.3(低い)
決定:
オプションA:実行しない(信頼度が低すぎる)
オプションB:小ポジション買い(通常サイズの30%)
数値例
設定:トレンドフォロー一次モデル、過去100シグナル
| シグナル# | 一次方向 | 実際の結果 | Metaラベル |
|---|---|---|---|
| 1 | 買い | 利益2% | 1 |
| 2 | 買い | 損失1% | 0 |
| 3 | 売り | 利益1.5% | 1 |
| 4 | 買い | 損失0.5% | 0 |
| ... | ... | ... | ... |
統計:
- 総シグナル:100
- 利益シグナル:55(55%勝率)
- 損失シグナル:45
Metaモデル分析:
高信頼度シグナル(Metaモデル > 0.7):30
- 利益:25(83%勝率)
- 損失:5
低信頼度シグナル(Metaモデル < 0.3):25
- 利益:8(32%勝率)
- 損失:17
戦略:高信頼度シグナルのみ実行
- 取引頻度70%削減
- 勝率55%から83%に改善
- 取引コスト削減
Metaモデルの特徴量設計
市場状態特徴量
| 特徴量 | 計算方法 | 予測ロジック |
|---|---|---|
| ボラティリティ | 20日間リターン標準偏差 | トレンドシグナルは高ボラティリティで失敗しやすい |
| トレンド強度 | ADX指標 | 強いトレンドがシグナルをより信頼できるものにする |
| 出来高変化 | 現在 / 20日間平均出来高 | 出来高を伴うブレイクアウトはより信頼できる |
| VIXレベル | 恐怖指数 | 高VIXはシグナル信頼性を低下 |
一次モデル特徴量
| 特徴量 | 計算方法 | 予測ロジック |
|---|---|---|
| シグナル強度 | 一次モデル生スコア | 強いシグナルはより信頼できる |
| ローリング勝率 | 過去20シグナルの精度 | より良い最近のパフォーマンス = より信頼できる |
| シグナル一貫性 | 複数の指標が一致するか | 複数の確認 = より信頼できる |
| 前回シグナルからの時間 | シグナル間隔 | 頻繁なシグナルはノイズの可能性 |
時間特徴量
| 特徴量 | 計算方法 | 予測ロジック |
|---|---|---|
| 曜日 | 月-金エンコード | 月/金のボラティリティが異なる可能性 |
| 月内時期 | 月初/月末 | 月末は機関投資家のリバランス |
| 決算期 | 決算期間中か | 決算期間はノイズが多い |
ポジションサイジング
Metaモデル信頼度はポジション管理に直接使用可能:
方法1:線形マッピング
ポジション = 信頼度 x 最大ポジション
信頼度0.8 -> 80%ポジション
信頼度0.3 -> 30%ポジション
方法2:閾値フィルタリング
信頼度 > 0.6 -> フルポジション
信頼度 < 0.6 -> 取引なし
方法3:凸関数マッピング
ポジション = 信頼度^2 x 最大ポジション
低信頼度ポジションをより積極的に削減:
信頼度0.8 -> 64%ポジション
信頼度0.5 -> 25%ポジション
信頼度0.3 -> 9%ポジション
直接予測との比較
| 方法 | ターゲット | 長所 | 短所 |
|---|---|---|---|
| 直接予測 | 上昇/下降を予測 | シンプルで直接的 | 勝率55%超えが困難 |
| Meta-Labeling | シグナル信頼性を予測 | 実効勝率を改善 | 取引機会を削減 |
重要な洞察:
直接予測:
100取引、55%勝率
期待利益 = 55 x 1% - 45 x 1% = 10%
Meta-Labeling:
30高信頼度取引、80%勝率
期待利益 = 24 x 1% - 6 x 1% = 18%
取引は少ないが、リターンは高い
マルチエージェント視点
Meta-Labelingは自然にマルチエージェントアーキテクチャに適合:
Signal Agent(一次モデル)
|
+- 出力:取引方向
|
v
Confidence Agent(Metaモデル)
|
+- 入力:Signal Agentのシグナル + 市場状態
+- 出力:そのシグナルの信頼度
|
v
Risk Agent
|
+- 信頼度に基づきポジションを調整
+- 低信頼度 -> 取引拒否または小ポジション
+- 高信頼度 -> 通常ポジションを許可
Meta Agent
|
+- Confidence Agentの精度を監視
-> 持続的に失敗なら、保守的モードに切り替え
よくある誤解
誤解1:Metaモデルは一次モデルと同じものを学習する
間違い。両者は異なる目的を持つ:
- 一次モデル:価格方向を予測
- Metaモデル:一次モデルがいつ有効かを予測
Metaモデルは「一次モデルは高ボラティリティで失敗する」などのパターンを発見できる。
誤解2:高信頼度は常に正しい
保証されない。Metaモデルも間違える:
- 履歴パターンへの過学習
- 市場レジーム変化
- サンプルサイズ不足
依然として損切りとリスク管理が必要。
誤解3:Meta-Labelingは悪い一次モデルを救える
限定的。一次モデル勝率が低すぎる(< 50%)場合、Metaモデルにできることは限られる:
- 損失を減らせるだけ
- 正の期待値を作れない
一次モデル自体にある程度の予測力が必要。
実践的推奨事項
1. 一次モデルがベースAlphaを持つか検証
まず確認:
- 一次モデル勝率 > 50%
- または勝ち/負け比率 > 1
- アウトオブサンプルでプラスリターン
ベースAlphaなしでは、Meta-Labelingは作れない
2. Metaモデルはシンプルに
推奨:
- ロジスティック回帰
- 浅い決定木
- シンプルなニューラルネット(1-2層)
避ける:
- ディープモデル(過学習しやすい)
- 過剰な特徴量(ノイズを追加)
3. 独立した検証
検証プロセス:
1. 訓練セットで一次モデルを訓練
2. 検証セットで一次モデルを使ってシグナルを生成
3. 検証セットのシグナル結果を使ってMetaモデルを訓練
4. テストセットで全体パフォーマンスを評価
重要:一次とMetaモデルは異なるデータを使用
まとめ
| 重要ポイント | 説明 |
|---|---|
| コアアイデア | 二次モデルで一次モデルの信頼性を予測 |
| 出力 | 信頼度スコア -> フィルタリングまたはポジションサイジングに使用 |
| 利点 | 実効勝率を改善、無効な取引を削減 |
| 前提条件 | 一次モデルが正の期待値を持つ必要 |
| マルチエージェント応用 | Confidence Agentが信頼度評価専用 |