堅牢なFX戦略の条件 — チャートではなく、プロセスを見る

14 8月 2026, 01:15
Yuki Mizuno
0
2

毎週どこかのフォーラムで、滑らかなエクイティカーブを貼って「この戦略は実運用に耐えますか」と尋ねる投稿を見かけます。気持ちはよく分かりますが、この質問にチャートから答えることはできません。カーブが示しているのは、ある一組のルールが、ある一区間の歴史と出会ったときに何が起きたか、それだけです。そのルールが「どうやって見つかったのか」については何も語りません。そして私たちの経験では、耐久性を決めるのはまさにそこです。

私たち自身の研究では、約20年分のUSDJPYティックデータに対してトレードのアイデアを検証してきました。機械的なルールへ翻訳した86本の仮説のうち、約95%は棄却されています。生き残った少数は、バックテストの見栄えが他より良かったから生き残ったのではありません。派手な数字とは関係のないチェックを通過し続けたから残ったのです。本記事では、そのチェックの中身を説明します。

バックテストのスコアだけでは重みを支えられない理由

まったく同じエクイティカーブを持つ2つの戦略を想像してください。ひとつは、市場のセッションの振る舞いについての観察から先にルールを書き下ろし、一度だけ検証したもの。もうひとつは、同じデータに対して500通りのバリエーションを試した中のベスト成績です。チャートは同じでも、それぞれが今後も機能し続ける確率は、まるで比べものになりません。

理由は選択効果です。ルールとパラメータの広い空間を探索すれば、偶然だけで過去にフィットする組み合わせが必ず出てきます。探索すればするほど、「最良の偶然」は立派に見えていきます。これは倫理の問題ではなく、算術の問題です。多くのアイデアを試す評価プロセスには、「何通り試したか」を織り込んだ生存基準が必要です。私たちの基準はそうなっており、20万回を超えるシミュレーションを通じて棄却率が95%近くに保たれた主因はそこにあります。

つまり最初の問いは「結果はどれくらい良いか」ではなく、「その結果を生んだ探索はどれくらい広く、基準はそれに応じて引き上げられていたか」です。

孤独な最適値

パラメータ表には、簡単な診断法が隠れています。最も成績の良い設定を取り、その近傍を見るのです — 同じルールで、各パラメータを少し上下にずらしてみます。最適値から離れるにつれて性能がなだらかに落ちていくなら、そのルールはおそらく実在する何かに反応しており、多少の誤差にも耐えます。逆に、最適値が負けセルに囲まれてぽつんと立っているなら、見つけたのはノイズの中の座標である可能性が高いでしょう。

私たちは、どれほど魅力的に見えても「孤独な最適値」を警戒信号として扱います。市場は漂流します。スプレッドは変わり、セッションは夏時間でずれ、ボラティリティのレジームは入れ替わります。ぴったり一点でしか機能しない設定は、世界が半歩動いた瞬間に機能しなくなる設定です。長期の検証を重ねる中で、私たちは「輝かしい尖り」よりも「平凡な台地」を選ぶようになりました。実際に手元に残るのは台地のほうだからです。

2次元にすると、この絵はさらに興味深くなります。パラメータは相互作用するので、単独の軸では安定して見える値が、2つの設定を同時に動かすと細い対角の尾根の上に載っていることがあります。ペアごとのグリッドをヒートマップにすれば、自分が立っているのが台地なのか、尾根なのか、孤島なのかはすぐに分かります。後で痛い目に遭うのは孤島です。

この確認のコストはわずかです。最適化された値を信じる前に、直近の近傍を走らせて、頂点ではなく「形」を見てください。

時間には矢印がある

一般的な機械学習のクロスバリデーションの習慣は、トレード研究には移植しにくいものです。データをランダムに学習用と検証用へ振り分けるのは厳密そうに見えますが、時系列では静かに情報が漏れます。市場の振る舞いには自己相関があります。ボラティリティは群れ、トレンドは持続し、同じ年はレジームを共有します。同じ時期の断片が分割の両側に座っていれば、その「アウトオブサンプル」検証は、ルールを適合させた当の状況を部分的にサンプリングしているにすぎません。

だから私たちは年代順に、そして年代順にのみ分割します。古いデータは発見に、後の区間は検証に使い、直近の区間は最終判断まで封印されたホールドアウトとして残します。

分割そのものより重要なのが、この封印のルールです。一度でも見てしまったホールドアウトはもうホールドアウトではありません。儀式的な名前のついた学習データです。私たちの研究プロトコルでは、探索中に閲覧した期間は最終テストの資格を失い、未使用の期間がその席に入ります。官僚的に感じられるでしょうが、「後知恵でしか機能しなかった戦略」の昇格を初めて防いでくれた日から、見え方が変わります。

関連する罠が、証拠の数え方です。ひとつのニュースイベントが1時間に12回のトレードを生んだ場合、独立な観測が12個あるのではありません。ひとつのイベントを12回観測しただけです。私たちはサンプルサイズをトレード数ではなくイベント数で数え、信頼区間もそれに合わせて推定します。トレード単位の数え方はあらゆる統計量を実際より立派に見せます。よく裏付けられているように見えた戦略がアウトオブサンプルで崩れる、静かな理由のひとつです。

結果を見る前にルールを決める

私たちが使っている過学習対策のうち最も強力なものは、統計的な手法ではありません。手続きです。何かを走らせる前に、何を探索するのか、どの指標で判定するのか、どんな結果が出たら棄却なのかを書き下ろす。そして、ゴールポストを動かさない。それだけです。

これが防いでくれる失敗パターンは、締め切りに追われて研究をしたことのある人なら誰でも知っています。テストの結果が期待外れだったので、評価期間を少しずらす。ある指標の見栄えが悪いので、別の指標に差し替える。ひとつひとつの調整は合理的に感じられます。しかし合わさると、基準のほうが曲がり続けるので、いつか必ず何かが「合格」します。

事前登録には居心地の悪い帰結があります。正直な結論が「この探索空間にエッジは存在しなかった」になることがあるのです。私たちはそれを、基準を緩めて再挑戦すべき失敗ではなく、正式で正当な結果として記録します。研究の観点では、記録された行き止まりは資産です。その後に続くすべての研究のために、地図を狭めてくれます。

ルックアヘッドは「バグ」ではなく「順序制約」である

バックテストをする人は、いずれ必ずルックアヘッドバイアスに出会います。ふつうは「うっかり未来のデータを使ってしまうこと」と説明されますが、私たちは3つのタイムスタンプを持つエンジニアリング上の不変条件として扱うほうが有用だと考えています。特徴量が完全に観測可能になる瞬間、シグナルが発火する瞬間、注文が約定する瞬間。この3つは順序を守らなければなりません。特徴量はそれを使うシグナルより前に完成していること。シグナルは約定より前であること。

こう言い換えた瞬間、これは曖昧な注意書きではなく、テスト基盤で機械的に強制できるものになります。古典的なミス — まだ形成中のバーの終値を読んでしまう — は、単に最初の不等式の違反です(この例は説明のための一般例であり、事故報告ではありません。このバグ類型の標準形です)。より見つけにくい違反は派生特徴量に潜みます。ウィンドウがまだ経過しきっていないインジケータや、その日が終わる前に消費される日次統計です。自動化された順序チェックは、これらをすべて同じやり方で捕まえます。それこそが望ましい性質です。エクイティカーブの目視では、どれひとつ捕まえられないからです。

迷ったら、小さい機械を選ぶ

テスト性能が同等の2つの設計があれば、私たちは可動部品の少ないほうを取ります。これは美学の問題ではありません。フィルタやパラメータを足すたびに探索空間は広がり、探索空間が広がるほど、観測された性能が「実力」ではなく「暗記」である確率が上がります。単純なシステムは、実運用で何かがおかしくなったときに原因を推論しやすく、プラットフォームや市場の変化をまたいで保守しやすくもあります。

この規律が効いてくるのは、小さな条件をひとつ足すとバックテストが改善するときです。たいてい改善します — 自由度を足すというのはそういうことです。私たちが自分に課している問いは、その追加に「改善という数字」以外の存在理由があるか、です。フィルタを入れる根拠がそれの生み出す数字だけなら、そのフィルタは入れません。

説明のテスト

最後のチェックは最も技術的でなく、私たちの結果では最も選別力がありました。統計を生き残ったすべての候補に対して、こう問います。このエッジはどんな市場の振る舞いによって存在するのか。その反対側にいるのは誰なのか。答えられなければ、その候補は棄却です — バックテストの見栄えが気に入っていた候補も含めて。

説明できるエッジは、謎のエッジには与えられない2つのものをくれます。第一に、監視対象です。エッジの根拠となる現象が後日市場から消えたとき、エクイティカーブが白状するのを待つのではなく、証拠に基づいて戦略を引退させられます。第二に、正直な境界線です。なぜ機能するのかを知っていれば、どこでは機能しないはずかも分かります。これはどれだけバックテストを重ねても直接は得られない知識です。私たちのポートフォリオEAに最終的に搭載された4つの戦略は、いずれもUSDJPYの説明可能なセッション構造とフローの振る舞いに立脚しています。詳細は非公開ですが、この要求自体は非公開ではありませんし、純粋な統計なら通過させていたはずのアイデアを、この要求が振るい落としました。

これらすべてを生き残っても、意味しないこと

上のチェックをすべて通過した戦略にも、負ける期間は必ず来ます。私たち自身のポートフォリオのバックテストは2007〜2025年の19年連続プラスを示していますが、そのような記録でさえ、法則ではなく傾向を記述しているにすぎません。健全な研究プロセスを通過したという事実は、エッジの出所に対する確信を変えるだけで、エッジを分散から免除してはくれませんし、将来については何も保証しません。どんなトレーディングシステムにも負ける期間は起こり得ますし、過去の成績を予測として読むべきではありません。

耐久性は永続性でもありません。市場は戦略を引退させます。プロセスの価値は、出荷した時点でそのアイデアがおそらく本物だったと教えてくれること、そして現実が変わったときに気づくための理解を与えてくれることにあります。

ソースコードのいらない6つの質問

自分の戦略でも他人の戦略でも、信じる前にこう問う価値があります。この戦略が選ばれるまでに何通りのアイデアが試され、合格基準はそれを反映していたか。最適値の近傍のパラメータも機能するか、それとも孤立しているか。検証は年代順で、最後まで封印された期間があったか。評価ルールは結果が存在する前に固定されていたか。すべての特徴量がすべてのシグナルより前に観測可能だったと、パイプラインは証明できるか。そして、その利益がそもそもなぜ存在するはずなのか、市場の言葉で説明できる人がいるか。

これらの質問はどれも、戦略のコードへのアクセスを必要としません。だからこそ実際に使えるのです。これらが監査するのはプロセスであり、バックテストについての真実はプロセスの中にあります。

バックテストのスコアは過去を測ります。研究プロセスは、そのスコアがどれだけ信頼に値するかを測ります。この記事からひとつだけ習慣を持ち帰るなら、「どれだけ良い成績か」と尋ねる前に「これはどうやって見つかったのか」と尋ねることにしてください。

Origin-U Projectは、日本を拠点とする独立系のクオンツFXリサーチプロジェクトであり、ここで説明したチェックは私たち自身のシステムの実働基準です。本記事で解説した考え方は、Origin-U Projectが開発した商用USDJPYポートフォリオEA「BUSHIDO」に実装されています。

Origin-U リサーチノート — 全10回 第6回

← 前の記事: モンテカルロ・シミュレーションでトレーディングシステムを評価する  |  次の記事: バックテストとフォワードテストの違い — 同じEAで数字が変わる4つの理由

English version: What Makes a Robust Forex Strategy: Judging the Process, Not the Chart

シリーズ全10回

  1. USDJPY向けマルチストラテジー・ポートフォリオEAの作り方 — 86本の仮説検証が教えてくれたこと
  2. アルゴリズムトレードで分散が重要になる本当の理由
  3. 利益よりも先にリスク管理 — トレーディングシステムは「負ける側」から設計する
  4. 私たちがマーチンゲールとグリッドを使わないと決めた理由 — 検証の記録
  5. モンテカルロ・シミュレーションでトレーディングシステムを評価する
  6. 堅牢なFX戦略の条件 — チャートではなく、プロセスを見る
  7. バックテストとフォワードテストの違い — 同じEAで数字が変わる4つの理由
  8. トレードのアイデアを実装前にどう評価するか — 86本の仮説を検証した手順
  9. 低ドローダウンのトレーディングシステム設計 — ドローダウンは「結果」ではなく「入力」である
  10. 長期USDJPYリサーチから学んだこと — 20年分のティックデータが教えてくれたもの