38,439回の検定で市場を全数調査したら残ったのは2ヶ所だけだった

却下手法 · 1 min

特徴量・ローソクパターン・裁量セットアップの3層で市場を全数走査した記録。数万の候補が統計・コスト・選択バイアスの関門でどう死んでいき、最後に何が残ったか。生き残りに見えた候補の正体、そして配備済みエッジを守る宿題まで。

「まだ誰も気づいていないパターンが、データのどこかに眠っているのでは」。トレーダーなら一度は考えるこの問いに、力ずくで答えを出しました。価格と出来高から機械的に作れる候補を3つの層で網羅的に定義し、合計38,439回の統計検定で市場を全数調査。結論から言うと、実在するエッジは2ヶ所だけ。しかも両方とも、既に知っているものでした。

この記事は5本の検証(研究220/234/235/236/237)を1つの物語にまとめたものです。数字の羅列ではなく、「なぜこの設計にしたのか」「候補はどの関門でどう死んだのか」まで書きます。ネガティブな結果ほど、過程に価値が宿るからです。

はじめに: このブログと、読むのに必要な前提

初めての方向けに。このブログは、私(個人)がFXの自動売買プログラム(EA)を自作し、手法を統計検証して勝敗問わず記録している検証日記です。文中の「研究N」は私の検証ノートの通し番号。検証にはFX18通貨ペア・金銀・株価指数の実データ約11年分(1分足から日足まで)を使っています。

用語を4つだけ。PF(プロフィットファクター)=総利益÷総損失で1超なら黒字。IS/OOS=データを「ルールを決める期間(In-Sample)」と「答え合わせ専用の未使用期間(Out-Of-Sample)」に分けること。FDR補正=たくさん検定したときに紛れ込む偶然の当たりを統計的に間引く手続き。bp(ベーシスポイント)=0.01%のことで、1トレードあたりの平均リターンを表すのに使います。

図: 検証ファネル。多数のアイデアがクリーンデータ・前進検証・日中M1・モンテカルロの関門で絞られ、採用はごく一部です。

図: 検証ファネル。候補は関門を通るたびに減っていきます。今回は3万8千の入口から、新規採用ゼロでした。

なぜ「全数」にこだわるのか

先に方法論の話をさせてください。手法探しには2つの罠があります。

1つはつまみ食いの罠。思いついた手法だけ試すと、「試していない何か」への未練が永遠に残ります。もう1つは多重検定の罠。たくさん試せば、偶然だけで「勝てて見える」候補が必ず出ます。コインを1,000回投げれば、誰かは10連続で表を出す。その人を「コイン投げの達人」と呼んではいけません。

全数調査はこの2つを同時に潰す設計です。探索空間を先に定義し切ってから全部試すので未練が残らず、試行回数が既知なので「その回数試したら偶然でどれだけ出るか」を統計的に補正できます。補正にはBH-FDRという手法(発見のうち偽物の割合を10%以下に抑える基準)を使い、さらにルール決定期間(IS)で生き残った候補だけを未使用期間(OOS)で再検定する2段構えにしました。

前置き: 地図の穴を1つ塞ぐ(研究220)

本編の前に1つ事件がありました。過去に実施した戦略アーキタイプの全数調査(41手法×26銘柄×4時間足)を監査していて、TDシーケンシャルという人気手法だけがプログラムのクラス名誤記でエラーになり、丸ごと集計から抜けていたことが発覚したんです。

「全数調査しました」と言いながら1手法が数え漏れていたら、結論の信頼性に関わります。急いで26銘柄×4時間足×3変種=276組合せを、他と同じ統計基準で検定しました。

  • FDR関門の生存: 265件中ゼロ
  • 3変種の未使用データ月次リターン: 全てマイナス(-0.056〜-0.241%)
  • 最良に見えたp値(0.020)の正体: 実トレード12件の極小標本
  • 唯一トレード数が十分だった金の1時間足: 最大DD-54%で有意性なし

穴の中にお宝は眠っておらず、地図は元から正しかった。誤記も修正し、以後の再実行では正しく含まれます。「本当に全部見たのか?」を自分で監査する作業は、新手法探しと同じくらい大事です。

第1層: 素朴な状態64種(研究234・8,781検定)

本編です。まず「戦略」という単位より一段細かい層から。ローソクの解剖(実体・ヒゲの比率など12種)、連続陽線・陰線、レンジとボラの状態、レンジ内の位置、ギャップ、時間アンカー、状態同士の交互作用、そして通貨横断の強弱。価格から作れる64の素朴な「状態」を定義し、「その状態の次のバーで何が起きるか」を26銘柄×4時間足(15分足は初探索)×2ホライズンで直接検定しました。

ふるいの通過状況はこうです。

段階残存数
全検定8,781
2段FDR通過636
コスト超え73
精密検証+対照通過数件
選択バイアス補正(DSR)通過0

途中に嬉しい発見がありました。コスト超え73件のうち34件が、配備済みの週末ギャップ・スリーブの独立再発見だったんです。ゼロから数え直した機械が、私が実際に運用しているエッジを正しく掘り当てた。全数調査という方法自体の答え合わせとして、これ以上の結果はありません。

残る39件は精密検証で沈みました。多くは指数ロングのベータ(上げ相場では押し目買いが何でも勝って見える)で、ランダムタイミング対照(同じ銘柄・同じ回数をデタラメな時点で買う200セット)と区別が付かない。CHFJPYのギャップ系でPF4.55という怪物も出ましたが、ロールオーバーの薄商い時間帯に集中していて執行が非現実的でした。

最後まで残ったのはマイナー通貨ペアの15分足の逆張り群です。逆張り(平均回帰)とは、下がりすぎた価格の戻りを狙う買い方です。

図: 逆張り(RSI)のシグナル例(EURUSD 日足・実データ)。

図: 逆張りのイメージ。売られすぎの反発を狙います。センサスが繰り返し拾ったのは、この構図の15分足版でした。

例えばGBPNZDの15分足でPF 1.38/月利+2.53%(単純リスク1%換算でDD-59%)。ここで最後の関門、DSR(Deflated Sharpe Ratio)が出てきます。8,781回試したという事実で割り引くと、全候補が0.5未満。この回数試せば、この程度の当たりは偶然でも出るという判定です。

第2層: ローソクの文法512通り(研究235・24,666検定)

次はパターンの層。各バーを8種類の記号(陽/陰×値幅の広/狭×引けの高/安)に変換し、長さ2の全64通りと長さ3の全512通りのシーケンスについて「その並びの後で何が起きるか」を全銘柄・全時間足で検定しました。酒田五法のような伝統的パターン論の、網羅的な統計裁判です。

24,666検定から2段FDRを抜けたのは154件、コスト超えは6件まで絞られました。その6件の最終審査です。

  • 銀の下落フェード3件: 検定上はコストの1.2〜2.5倍のマージンがあったのに、実コスト(イベント駆動エンジン)で測るとPF 0.86の逆転負け。銀の実スプレッドは検定の想定より重く、紙の上のマージンが消えました
  • マイナー通貨の弱さ買い3件: 2件はランダム対照でベータと判定。最後の1件(GBPNZDの3連パターン)は固有性p=0.005まで粘りましたが、累計33,447検定で割り引いたDSRは0.005。偶然の域を出ません

独立な2つの走査(特徴量とパターン)が、同じ2ヶ所(週末ギャップと境界流動性の逆張り)に収束しました。チャートパターンに秘密が隠れているなら、この3万3千回のどこかで顔を出したはずです。

第3層: 裁量の教科書セットアップ(研究236・4,992検定)

最後は裁量トレードの「構造」の言語です。サポートで強気の反転足、上昇ダウの押し目、パーフェクトオーダー×勢い足、スクイーズ明け。名前付きローソク足15種、チャートパターンの確定イベント、ピボット至近、複合セットアップ8種まで、教科書に載っている構図を機械化しました。

ルール決定期間の統計を15件が通過。そして未使用データで全て消滅しました。3層の中で一番きれいな全滅です。

通過していた15件の中身が皮肉でした。最多勢力は1時間足のショーティングスター(弱気の反転足)8銘柄でしたが、符号が教科書と逆で、出現後にむしろ+1.0〜2.4bp上昇していた。そして本命の「サポート×強気反転足」は、ルール決定期間ですら平均-0.56bpのマイナス。裁量の王道セットアップは、選別に使えないどころか、足を引っ張る側だったんです。

生き残りに見えた候補の、あっけない正体(研究237)

3層を通じて何度も顔を出したマイナー通貨の短期逆張り。多年がかりの定点観測プラン(データが延びればDSRが基準を超えるかもしれない)まで立てて、スリーブ化の設計に進みました。そこで正体が割れます。

サーバー0時前後の取引を避ける、いつもの安全フィルタを入れた瞬間にエッジが消えたんです(GBPNZDでPF 1.20→0.99、CHFJPYで1.16→0.88)。時間帯で分解すると真因が確定しました。

時間帯条件付きリターン
サーバー0時台+12bp
23時台+7bp
それ以外の全時間帯+1.0〜1.3bp(往復コスト1.5bp未満)

そして0時台の実測スプレッドは日中の6〜70倍。検定が拾い続けた「反発」は、ロールオーバー時間帯にbid値(検定データの建値)が機械的に沈んで戻るだけの見かけの利益でした。静的なスプレッド想定が最も嘘をつく場所です。レベル検出を精密化した別ルート(1,040検定)の生存5件も、全て23〜0時台に効果が集中する同じ幻。定点観測プランも、監視対象そのものが幻なので閉鎖しました。

この「深夜の幻」はこの後も別の検証で2回再出現し、いまでは走査の段階で当該時間帯を除外するのが標準手順になっています。罠は一度理解すれば、次からは入口で弾ける

決算: 38,439回数えて分かったこと

検定数最終生存
欠落補完(TDシーケンシャル)2760
特徴量8,7810(週末ギャップ再発見34件を除く)
パターン文法24,6660
構造・裁量セットアップ4,9920

実在は2ヶ所。①配備済みの週末ギャップ・フェード(効果が大きく、コストの壁を越えている唯一の存在) ②境界流動性の逆張り(実在するがコストと選択バイアスの壁を越えられない)。「チャートのどこかに未発見の秘密が眠っている」という仮説に、この網の目で引っかかるものは残っていませんでした。

大事な注意もあります。これは「エッジは存在しない」の証明ではありません。この探索空間(価格と形の言語)で、この手段(小売のコスト水準)では無い、の確定です。実際この後、別の市場(個別株)と別の方法論(仮説先行)では生存者が出ています。

宿題: 幻を潰した道具で、本物を守る

最後に、この調査が残した実務の宿題を。配備済みの週末ギャップ・スリーブも月曜0時台に参入する「深夜の親戚」です。実測した月曜0時台のスプレッド中央値はGBPJPYで23.6pips(日中の21倍)、CHFJPYで73.5pips(57倍)。エッジの効果サイズ(15pips超)には桁の余裕がある見込みですが、実口座のスプレッド・テレメトリが4週間分貯まり次第、必ず再突合することにしました。

3万8千回の検定の一番の成果は、新発見ではなく、「幻の見分け方」と「本物を守るチェックリスト」だったのかもしれません。

図: 週明けオープン直後の実測スプレッド(Dukascopyティック・中央値)。

図: 宿題の根拠になった実測値。週明け直後は取引コスト(スプレッド)が平常時の数倍に膨らみます。ここで生まれる「見かけの反発」が、今回の幻の正体でした。