TL;DR
- 連載で扱った概念を Marcos Lopez de Prado (AFML, 2018) の罠カタログにマップした連載総括
- 10 個の罠は独立ではなく相互作用する。1 つ躱しても次が待つ
- 実務では「自分が踏んでいないか」のチェックリストとして毎回回す
- メタ処方箋は「edge を見つけたら疑え」
Hook
連載 9 記事で扱った概念は、それぞれ別々の罠ではなく、quantitative strategy 開発における共通の落とし穴カタログの一部だった。
Marcos Lopez de Prado が Advances in Financial Machine Learning (2018) で体系化した罠リストを、連載総括として整理する。これを「自戦略点検チェックリスト」として、新しい backtest を組むたびに回す習慣をつけると、量産される false positive を機械的に減らせる。
罠 10 選
1. Survivorship Bias (生存者バイアス)
症状: 「成功事例だけのデータ」で平均を計算、効果サイズが過大評価される。
例: アクティブファンドの長期リターン (閉鎖 fund 除外)、起業家の朝の習慣 (失敗者除外)、競馬の勝率 (F/PU 除外)。
対策: survivorship-bias-free データセット、全期間生存と消滅を含む再構築、保守的な効果サイズ解釈。
詳細: 連載記事 7。
2. Look-Ahead Bias (未来情報リーク)
症状: backtest の features に「未来でしか得られない情報」が混ざり、現実より良い結果が出る。
例: 当日 close を当日中の判定に使う、earnings 発表前の trade に発表後の数字を使う。
対策: features 生成時の timestamp を厳密に点検、「この情報は実運用時に既知だったか」を毎回問う。
詳細: 連載記事 5。
3. Data Leakage (CV 中の情報漏洩)
症状: train data に test 由来の情報が混入。CV (cross-validation) で時系列を考慮しないと頻発。
例: 翌週のラベルを今週の features に使う、purge zone なしの k-fold で隣接サンプルが train/test 両方に存在。
対策: time-series-aware CV、purge zone (重複情報除去)、embargo (波及効果除去)。Lopez de Prado の Combinatorial Purged CV が代表的解。
4. Multiple Testing (複数検定の罠)
症状: 多数の戦略・パラメータを試して「最良」を選ぶと、family-wise error rate が累積する。
例: 12 か月から最強月を選ぶ (k=12 で FWER 約 46%)。100 戦略から有意なものを選ぶ (k=100 でほぼ確実に偽陽性)。
対策: Bonferroni 補正、Benjamini-Hochberg FDR、検定数の事前固定、pre-registration。
詳細: 連載記事 4。
5. Overfitting (過学習)
症状: backtest 期間特有のノイズに fit して、未知期間で性能が落ちる。
例: backtest で +30% の戦略が live で -10%。
対策: IS-OOS split、walk-forward、CPCV、パラメータ次元数の制限。
詳細: 連載記事 5。
6. Regime Change (体制変化)
症状: 学習期と運用期で市場体制 (volatility、相関、流動性) が異なり、edge が消失または逆転する。
例: low-vol 学習期で見つけた signal が high-vol で機能しない、bull で機能した signal が bear で逆向き。
対策: 複数 regime をまたぐ長期データ、regime indicator での分割検証、regime adaptive な戦略設計。
7. Slippage (約定価格 slippage)
症状: 想定価格と実約定価格の差。MARKET order の宿命、LIMIT でも adverse selection で発生。
例: signal 価格で約定する想定が、現実は spread を喰らって 1-2 ticks 不利。
対策: realistic な約定 model (約定確率・slippage 分布)、conservative な execution コスト見積もり。
詳細: 連載記事 8。
8. Transaction Cost (取引コスト軽視)
症状: gross PnL のみを評価し、commission・spread・market impact を抜きに「edge あり」と判断。
例: backtest gross +5% が、commission 1% + slippage 2% で net +2% に縮む。
対策: gross と net の並列保存、liquidity-adjusted Sharpe、高頻度戦略では特に厳しく見る。
9. Capacity (戦略の容量限界)
症状: 戦略を small size で backtest すると edge があるが、size を上げると edge が消える。alpha decay の本質。
例: 1K で backtest +X%、1M に上げると edge 消失 (market impact、流動性消費)。
対策: capacity-aware backtest、market impact model、size を増やす前に linear extrapolation の限界を意識。
10. Reproducibility (再現性)
症状: 同じ backtest を再実行しても結果が異なる。乱数 seed、library version、データ snapshot の差で発生。
例: 6 ヶ月後に同じコードを動かしたら別の結果、library 更新で公式が変わった、データソースが retroactive に修正された。
対策: 乱数 seed 固定、依存 lock (poetry/pip freeze)、データ snapshot 保存、Docker 化。
罠は独立ではない — 相互作用する
これら 10 罠は「列挙した順番に潰す」のではなく、相互に影響する 点に注意。
- Survivorship を躱しても overfitting に落ちる
- overfitting を躱しても regime change で死ぬ
- regime change を躱しても slippage で edge が消える
- slippage を躱しても capacity で頭打ち
罠を 1 つずつ消すのではなく、毎回チェックリストとして回す のが実務。
連載のまとめ — 「edge を見つけたら疑え」
連載 1-9 で扱った具体策と、本記事の 10 罠を並べると、メタ的な処方箋は 1 つに集約される。
「edge を見つけたら、まず疑う習慣をつけろ」
具体的に:
- 平均値だけでなく Bootstrap CI を見る (記事 3)
- 月別最強月は Bonferroni で叩く (記事 4)
- IS-OOS で過学習を検証 (記事 5)
- iid MC を信用しすぎない (記事 6)
- 生存者バイアスを忘れない (記事 7)
- 約定 modeling を真面目にやる (記事 8)
- 期待値より破産確率を見る (記事 9)
- そして Kelly は Fractional で (記事 1)
- FLB のような theoretical edge と運用可能 edge の差を見極める (記事 2)
これを毎 backtest で回す機械的な習慣が、long-run で運用継続できる戦略運用者の境界線。
個人的経験 — 連載総括
systematic な戦略を 6 ヶ月運用してきて学んだのは、「理論の罠」と「自分の罠」が別物だということ。Lopez de Prado の罠カタログは教科書で読めるが、実運用すると自分独自の罠 (= 自分の認知バイアス) が混じる。
「この戦略は他と違う」「自分の edge は本物」という確信そのものが、最大の罠かもしれない。理論罠は外部参照でチェックできるが、認知バイアスは外部参照しにくい。だからこそ、理論罠だけは機械的に消す習慣をつけて、認知罠と戦う余地を作る。
連載読者への提案
自分の戦略を、本記事の 10 罠でチェックリスト化してみる。各罠について「自分は対策済か?」を yes/no で答えてみる。
| 罠 | 対策済? | 対策内容 |
|---|---|---|
| Survivorship | ||
| Look-ahead | ||
| Data leakage | ||
| Multiple testing | ||
| Overfitting | ||
| Regime change | ||
| Slippage | ||
| Transaction cost | ||
| Capacity | ||
| Reproducibility |
埋まらない欄が見つかったら、それが次に取り組むべき罠だ。
連載完結に寄せて
10 記事を通じて、quant 戦略開発における共通のアンチパターンと、それに対する academic / industry の標準的回答を整理した。完璧な戦略は存在しないし、罠を完全に避けることもできない。だが、罠を知って意識する者と、知らずに踏む者の差は、long-run で大きく開く。
連載で挙げた書籍・論文に当たって、自分の戦略開発の「精度の高い batting average」を作っていくことが、retail quant の道だと考えている。
参考文献
- Lopez de Prado, M. (2018). Advances in Financial Machine Learning. Wiley.
- Bailey, D.H., Borwein, J., Lopez de Prado, M., Zhu, Q.J. (2014). Pseudo-Mathematics and Financial Charlatanism. Notices of the AMS, 61(5), 458-471.
- Harvey, C.R., Liu, Y. (2014). Backtesting. Journal of Portfolio Management, 42(1), 13-28.
- Bailey, D.H., Lopez de Prado, M. (2014). The Deflated Sharpe Ratio. Journal of Portfolio Management, 40(5), 94-107.
- 連載記事 1-9 (本ブログ Quant カテゴリ)