EA強化の秘策は不発!「レベル重要度」が効かなかった真実

平均回帰 · 1 min

研究73-76で yosuga を強化した水平レベル重要度()を BreakoutLong に適用(min_level_score: 重要度≥閾値の水平レベルを抜く"本物のブレイク"だけ取る・後方互換でNone=従来一致)。狙い=研究85の相関DD(-38%)の主因=ノイズ小ブレイクを削る。

本記事は「EA強化の秘策は不発!「レベル重要度」が効かなかった真実」の検証を、はじめての方にも分かるようにまとめたものです。

図: ブレイクアウトのエントリー例(XAUUSD 日足・実データ)。直近の高値を上抜けたところで買います。

図: ブレイクアウトのエントリー例(XAUUSD 日足・実データ)。直近の高値を上抜けたところで買います。

今回は、私たちが開発しているFX自動売買(EA)の一つ「BreakoutLong」について、あるアイデアを試した結果をお話しします。

どんなアイデアを試したの?

以前、別のEA「yosuga」を検証した際、「水平レベルの重要度」という考え方がとても有効でした。水平レベルというのは、チャート上のサポートライン(下値支持線)やレジスタンスライン(上値抵抗線)のような、多くのトレーダーが意識する価格帯のこと。その中でも「より多くの人が意識しているであろう重要なレベル」を特定し、それをトレード判断に活かす、というアイデアです。 「yosuga」では、この「レベル重要度」を使って、強いサポートラインでの押し目買い(価格が一時的に下がったところで買う逆張り戦略)を成功させることができました。 そこで私たちは、「このアイデアをBreakoutLongにも適用したらどうなるだろう?」と考えたんです。BreakoutLongは、まさにこの水平レベルを「ブレイク(突破)」した時にエントリーするEAですよね。 具体的には、min_level_score(ミニマムレベルスコア)という設定を導入して、「ある程度の重要度がある水平レベルを抜けた時だけエントリーする」ようにしてみました。狙いは、以前の研究(研究85)でBreakoutLongの課題となっていた「相関ドローダウン(DD)」を減らすこと。ドローダウン(DD)というのは、例えば登山でいう「山頂からどれだけ下りに転じたか」のように、最大資産から一時的にどれだけ損失が出たかを示す指標です。ブレイクアウトEAは、相場がノイズのように小さな動きを繰り返すときに、無駄なエントリーで損失を出しやすい傾向があります。この「ノイズのような小さいブレイク」を避けて、もっと「本物のブレイク」だけを狙うことで、DDを改善できるんじゃないか?という期待がありました。

どうやって試した?

このmin_level_scoreという設定を、様々な重要度の閾値(例えば「レベルスコアが10以上」とか「15以上」など)で変えながら、過去のデータでバックテストを行いました。複数の通貨ペアをまとめて検証する「バスケットテスト」や、直近の期間でのパフォーマンスを見る「前進検証」など、様々な角度から徹底的に効果を検証したんです。

結果はどうだった? — 残念!期待外れに終わりました

結論から言うと、残念ながらこのアイデアはBreakoutLongの強化にはつながりませんでした。むしろ、いくつかの点でパフォーマンスが悪化してしまったんです。

  1. バスケットテストのドローダウンが悪化! 複数の通貨ペアを同時に検証した結果、重要度が高いレベルだけに絞り込もうとすると、ドローダウンが改善するどころか、むしろ悪化してしまいました(例: -36.5%から-40.9%へ)。さらに、トレード効率を示すPF(プロフィットファクター = 総利益 ÷ 総損失。1を超えると黒字で、数字が大きいほど効率が良い)も、重要度を上げるほど単調に悪化(10.98 → 6.53 → 5.53)してしまったんです。これはつまり、重要なレベルだけに絞りすぎると、かえってトレードチャンスを逃してしまったり、損切りが増えてしまったりした、ということなんですね。
  2. 前進検証でも改善なし 直近の期間でテストする「前進検証」でも、従来のBreakoutLong(plainと呼んでいます)が6回中4回成功したのに対し、レベル重要度を適用したバージョンも同じく6回中4回で、改善は見られませんでした
  3. どんな設定でも従来のEAに勝てず min_level_scoreの設定値を色々変えてテストする「パラメータ頑健性」の検証でも、どんな設定にしても従来のBreakoutLongのパフォーマンス(PF 10.98)を超えることができませんでした。つまり、どの設定にしても、従来のEAより効率が悪かった、ということになります。
  4. M1(1分足)でのポジション過多も微減 1分足で検証した際、同時に保有できるポジション数の上限に達してしまう「抵触」が少しだけ減ったものの(3日から1日へ)、ドローダウンや最大同時損失(MC)はわずかに悪化してしまいました。

ここから学んだこと — ブレイクアウトEAの「宿命」

今回の結果から、とても大切な教訓が得られました。

レベル重要度は「押し目」には効くけど「ブレイク」には効かない!

以前「yosuga」で成功した「レベル重要度」のアイデアは、実は「押し目買い(逆張り)」のような戦略にはとても相性が良いんです。なぜなら、「強いサポートラインで買う」というロジックそのものが、レベルの重要性に依存しているから。 でも、BreakoutLongのような「ブレイクアウト(順張り)」のEAの場合は、すでに「抵抗線を抜ける」というロジックが組み込まれています。そこにさらに「重要なレベルを抜けた時だけ」という条件を重ねてしまうと、条件が厳しすぎ(過剰拘束)て、せっかくのトレードチャンスを逃してしまうことが分かりました。 これはまるで、美味しい料理を作ろうとして、調味料をたくさん入れすぎたら、かえって味がごちゃごちゃになってしまった、みたいな感じですね。以前行った「上位時間足フィルター(研究62)」や「出来高プロファイル(研究78)」の検証でも、同様にブレイクアウトEAのパフォーマンスを下げてしまった経験がありましたが、今回も同じタイプの失敗だったと言えます。

ブレイクアウトEAのドローダウンは「エントリーの質」の問題じゃない!

今回の検証で最も重要な発見は、BreakoutLongが抱える「相関ドローダウン」の原因は、「エントリーの質が悪かったから」というよりも、「トレンドフォロー型EAの宿命」のようなものだ、ということです。 相関ドローダウンとは、複数のEAや通貨ペアが同じタイミングで損失を出すこと。これは特に、相場がトレンドを出さずに「chop(レンジ相場)」を繰り返したり、「レジーム減衰期(トレンドが弱まり、方向感がなくなる時期)」に入ったりすると、複数のトレンドフォロー型EAが同時に逆行して損失を出しやすいんです。 これは、どんなにエントリーの条件を厳しくするフィルターをかけても、根本的には解決できない問題だ、ということが今回の研究で改めて明らかになりました。例えるなら、晴れた日はみんなで同じ方向に走れるけど、急に嵐が来たらみんなで同じように足を取られてしまう、みたいなイメージです。

ドローダウン管理の本当の解決策は?

このことから、BreakoutLongのようなトレンドフォロー型EAのドローダウンを管理する本当の解決策は、以下の3つのアプローチだと改めて確信しました。

  • a) 低リスク運用: そもそも一度のトレードで取るリスクを低く設定する。
  • b) MTF(マルチタイムフレーム)分散: 複数の時間足(例えば1時間足と4時間足など)でトレードを分散させる。
  • c) 真に無相関なスリーブ(指数): 全く異なるロジックや市場(例えば株価指数など)のEAと組み合わせることで、リスクを分散させる。 これらは、まさに私たちが現在開発を進めている「Core System v1.2.0」という新しいEA設計の根幹をなす考え方なんです。 今回の検証で、「裁量基盤(レベル重要度)」をBreakoutLongの強化に使うのは不適切である、ということが明確になりました。min_level_score機能自体は、将来の押し目買いのようなEAで役立つ可能性があるので残しておきますが、BreakoutLong本体のロジック変更はありません。 今回の研究結果は残念でしたが、EA開発において非常に重要な学びとなりました。これからも、一つ一つの検証を大切に、より良いEAを追求していきます。

この検証のつながり

この検証は、過去の次の検証を踏まえています(前回ダメだった→今回こうした、別ロジックとの比較など)。