AIが出したパターンを偶然と切り分ける手順

利食安男「それ偶然じゃないの?って聞きたい」

「何も見つからなかった」とAIが答えないのはなぜか

過去の価格データを渡して「勝率の高いパターンを探して」と頼むと、AIはたいてい何かを返してきます。曜日と時間帯の組み合わせ、特定のローソク足の並び、指標の水準の交差。そこで返ってくる候補が必ずしも嘘ではないのですが、「何も見つかりませんでした」という答えが返ってくることはほとんどありません。これはAIの性能の問題ではなく、探索という作業そのものの性質です。

この記事では、AIに見つけさせたパターンが偶然の産物かどうかを自分で確かめるための手順と、その手順が通用しない相場条件を整理します。特定の通貨ペアや期間について「このパターンは有効です」と結論づけるものではありません。検証の設計図として読んでください。

多重比較 ― 偶然が「発見」に化ける仕組み

多重比較とは、ひとつのデータに対して多数の仮説を同時に試すと、本当は意味のない関係が偶然に有意な結果として出てきやすくなる問題を指します。統計で「有意水準5%」と言うとき、これは「本当は効果がないのに効果ありと判定してしまう確率を5%以下に抑える」という意味です。逆に言えば、効果のない候補を100個試せば、平均して5個程度は有意に見えてしまいます。

AIにパターン探索をさせると、この試行回数が人間の手作業とは桁違いになります。条件の組み合わせを数千通り評価して上位を返す処理は、裏側で数千回の仮説検定をしているのと同じです。返ってくる上位数件は「最も効いたもの」ではなく「最も偶然に恵まれたもの」である可能性が常にあります。この構造は、パラメータを総当たりで探す従来のバックテストと本質的に同じで、過剰最適化を切り分ける確認手順で扱った問題が、探索の自動化によって規模を拡大して現れたものと考えると整理しやすくなります。

関連してデータスヌーピング(同じデータを何度も見て仮説を作ること)という言葉もあります。手を動かす前に仮説を立てたのか、データを見てから仮説を立てたのかで、同じ検定結果の意味がまったく変わります。

検証を始める前に固定しておく前提

手順に入る前に、動かしてはいけない前提を先に文章で書き出します。後から変えられる余地を残すと、検証そのものが探索になってしまうためです。

  • 対象と期間:通貨ペアまたは銘柄、足の種類、開始日と終了日。期間を後から伸縮させない。
  • エントリーとイグジットの定義:成立条件、注文種別、保有期間の上限。「良さそうなところで決済」は定義になりません。
  • コストの扱い:スプレッド、スリッページ、手数料、スワップ。固定値で置くのか実測分布を使うのかを明示します。
  • 評価指標:平均損益、勝率、期待値、最大ドローダウン(資産曲線の山からの最大下落幅)のうち、何を主指標にするか。
  • 試行回数:AIに何通り評価させたか。この数字が後の補正で必要になります。

最後の項目は見落とされがちですが、これを記録していないと多重比較の補正ができません。AIに探索させる際は、評価した条件の総数を出力させておきます。

偶然を外すための検証手順

一度に全部やる必要はありません。上から順に通し、どこかで落ちたらそこで打ち切るのが効率的です。

手順 やること 分かること
ホールドアウト 探索に使わない期間を最初に切り離し、最後に一度だけ当てる 探索データ外で再現するか
ウォークフォワード 期間を前へずらしながら「学習→検証」を繰り返す 時期によらず安定するか
並べ替え検定 リターン系列の順序をランダムに入れ替え、同じ探索を多数回行う 偶然でも同程度の成績が出る頻度
ブートストラップ 取引結果を復元抽出して成績の分布を作る 成績のばらつきの幅
多重比較の補正 ボンフェローニ補正などで試行回数を加味する 補正後も残る有意性

このうち並べ替え検定(パーミュテーション検定)は、AI探索との相性が良い方法です。実際の値動きの順序を壊したデータに対して、まったく同じ探索処理を何度も走らせます。壊したデータには本来パターンは存在しないはずなので、そこで得られる最良成績の分布が「偶然の上限」の目安になります。本物のデータで得た成績がその分布の中に埋もれるなら、発見とは呼べません。

多重比較を扱う専用の枠組みとしては、ホワイトのReality Check、ハンセンのSPA検定、ベイリーらが提案したDeflated Sharpe Ratio(試行回数を加味してシャープレシオを割り引く指標)などが知られています。名称だけでも知っておくと、文献を当たるときの入口になります。

統計的に残っても、コストで消えることがある

補正後も有意だったとして、次に見るのは効果量です。平均して何pips残るのか、その値がスプレッドとスリッページの合計を超えているのか。統計的有意性はサンプル数が多ければ小さな差でも検出しますが、トレードでは執行コストを超えない優位性に意味はありません。

たとえば次のような場面です。ある条件で平均0.8pipsの優位が有意に検出されたとします。しかし実効コストが往復で1.2pips程度なら、検証上の優位はそのまま赤字に変わります。コストの見積もりについては実効コストの測り方の考え方を先に通しておくと、判断がぶれにくくなります。

この手順が機能しない相場条件

上の検証を通しても安心できない場面があります。

  • サンプル数が足りない:該当イベントが数十回しかない場合、どの検定も検出力が落ち、「偶然ではないとは言えない」までしか言えません。
  • 構造変化が起きている:金融政策の枠組みや市場参加者の構成が変わった前後をまたぐと、過去の統計が将来の母集団を代表しません。検定は「同じ仕組みが続く」ことを前提にしています。
  • サンプルが独立でない:重なり合う保有期間、相関の高い通貨ペアをまとめた集計などは、見かけのサンプル数を水増しします。
  • 極端イベントが結果を支配している:数回の大きな値動きが平均を作っている場合、それは法則ではなく事故の記録です。中央値や取引を一件ずつ除いた感度分析で確認します。
  • ホールドアウトを何度も使った:一度でも結果を見て条件を調整したら、その期間はもう検証データではありません。

探索ログを残す

検証の再現性を担保するのは、結論ではなく過程の記録です。日付、使ったデータの範囲、AIに与えたプロンプト、評価した条件数、落とした候補とその理由。これを残しておくと、半年後に同じ着想が浮かんだときに二度手間を防げます。AIにコードを書かせる場合は、出力をそのまま信じず生成コードの穴を先に潰す作業も併せて必要になります。

まとめ

AIによるパターン探索は、仮説を大量に生み出す道具としては有用です。ただし生み出された仮説は、そのままでは「偶然に恵まれた候補」と区別がつきません。試行回数を記録し、ホールドアウトと並べ替え検定で偶然の分布を作り、多重比較の補正を通し、最後に執行コストと比べる。この順序を守ることで、少なくとも明らかに偶然であるものは落とせます。

一方で、どれだけ検証を重ねても将来の再現は保証されません。検証は「過去にこうだった」を確かめる作業であり、「これから先もこうなる」を保証する作業ではありません。相場には損失のリスクが常にあり、レバレッジを使う取引では元本を超える損失が生じる可能性もあります。この記事は検証手順の整理であって、特定の売買を勧めるものではありません。実際に資金を投じるかどうかは、ご自身の責任と判断で決めてください。

この記事は、AI で下書きを作り、益山康秀(運営者)が内容を確認して公開しています

この記事は情報の提供を目的としたもので、特定の金融商品の売買をすすめるものではありません。売買の判断は、ご自身の責任で行ってください。(運営者情報)

運営者を応援する

AIとトレード の他の記事

AIとトレード

AI要約が落とす6つの情報と確認手順

AI要約では条件節・程度表現・発言者の属性・時点・比較基準、そして「書かれなかったこと」が構造的に落ちます。抜けやすい6類型の一覧と、原文に戻る確認手順、要約が機能しない相場条件を整理しました。

AIとトレード

AI生成の売買コードで最初に潰す3つの穴

AIが生成したバックテストコードには、未来参照・執行前提・時刻規約の3つの穴が繰り返し現れます。切断テストやコスト感応度測定など、損益曲線を見るだけでは気づけない欠陥を自分で検出する具体的な手順と、その検証が機能しない相場条件を整理します。

Amazonのアソシエイトとして、メディカルリテラシーラボは適格販売により収入を得ています。