フィルタ追加で勝率UP?EAの「魔法」は本物か?

トレンド · 1 min

要望「フィルタを強くし様々に組合せ、トレード減OKで勝率/PFを上げる」。教訓(研究62/86/89/㊳=フィルタはISのPFを上げるがOOSで消える)に従い**IS/OOS両方+サブ期間+パラメータ+実システム**で多段審査。BreakoutLong実装済みフィルタ(htf/adx/rsi/sma

本記事は「フィルタ追加で勝率UP?EAの「魔法」は本物か?」の検証を、はじめての方にも分かるようにまとめたものです。

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

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

今回は、EAのトレード回数を減らしてもいいから、その分、もっと良いトレードだけを選んで、勝率やPF(プロフィットファクター)を上げられないか?というテーマで検証してみました。

どんなアイデア?

EAの性能をさらに良くする方法として、「フィルタをたくさん使って、質の高いトレードだけを選ぶようにすれば、勝率やPF(プロフィットファクター)が上がるんじゃないか?」というアイデア、皆さんも一度は考えたことがあるのではないでしょうか?トレード回数が減っても、その分確実に利益につながるなら嬉しいですよね。 ただ、これまでの研究で一つ教訓があるんです。それは、「フィルタをかけると、過去のデータで検証した期間(これをIS=In Sampleと言います)ではすごく成績が良くなるように見えるけど、まだEAが見たことのない未来の期間(OOS=Out of Sample)で試すと、その効果が消えちゃうことが多い」ということ。まるで魔法が解けてしまうみたいですよね。 そこで今回は、この教訓をしっかり踏まえて、本当に効果があるフィルタを見つけるために、すごく厳しい審査基準を設けて検証してみました。具体的には、ISとOOSの両方で成績を見るのはもちろん、さらに細かく期間を区切ったり(サブ期間)、フィルタの設定値(パラメータ)を変えてみたり、最終的には実際に動いているシステムに組み込んでどうなるかまで、何段階にもわたって徹底的にチェックしたんです。 今回の検証で使ったのは、私たちが開発しているBreakoutLong EAにすでに実装されているいくつかのフィルタです。例えば、htf(上位時間足のトレンド)、ADX、RSI、SMA_Slope(移動平均線の傾き)、ER、Levelといったものですね。これらを単独で使ったり、いくつか組み合わせてみたりして、どんな効果があるのかを探りました。 検証環境としては、FXの主要4通貨ペア(金は別枠で検証)を対象に、1時間足(H1)のデータを使って、複数のEAを同時に動かす「プール」という方式で分析しました。

どうやって試した?

まず最初に、全部で13種類のフィルタ構成(単独や組み合わせ)について、過去データでの検証期間(IS)と、未来を模した検証期間(OOS)の両方で、成績がどう変わるかを調べてみました。 フィルタを全くかけない「素の状態」のEA(これを「plain」と呼びます)のOOSでのPF(プロフィットファクター=総利益÷総損失。1を超えると黒字)は1.39でした。この数字が基準になります。 いくつかのフィルタを試した中で、特に目を引いたのが**「htfD1(日足のトレンドと一致する時だけトレードする)」というフィルタです。これを入れると、PFが1.39から1.48に改善しました!さらに、このhtfD1に「SMA_Slope(移動平均線の傾きがトレンド方向と一致する時だけトレードする)」を組み合わせると、PFは1.49と、わずかですがさらに良くなりました。これは素晴らしい発見です! もちろん、このPFの改善は、トレード回数が半分くらいに減るのと引き換えでした。勝率も37%から38%に少し上がった程度ですが、トレードの「質」が上がったことで、トータルでの利益効率を示すPFが改善した、ということですね。 一方で、「ADX」というフィルタは、残念ながら「毒」でした**。ADXを単独で使った場合(ADX20)はPFが1.27に下がり、htfD1と組み合わせた場合もPFが1.33と悪化してしまいました。ADXを入れた全ての組み合わせで成績が悪くなる傾向が見られたので、ADXは今回のEAには合わない、ということがはっきりしましたね。 また、「フィルタはたくさん重ねれば重ねるほど良いだろう!」と思いがちですが、今回の検証では、3個以上のフィルタを重ねて使うと、かえって成績が頭打ちになったり、悪化したりすることが分かりました。例えば、全ての6つのフィルタを重ねてみたところ、PFは1.38と、フィルタなしのplainよりも悪くなってしまいました。この結果から、「重ねるほど良い」というのは誤解で、今回のEAではhtfD1とSMA_Slopeの**2個の組み合わせが「スイートスポット」(一番良いバランス)**だった、と言えそうです。 ちなみに、このEAはトレンドフォロー型(大きなトレンドに乗って利益を狙うタイプ)なので、構造的に勝率はあまり高くないんです。だから、フィルタを入れても勝率自体はほとんど動きませんでした。成績改善は、PFという形で現れるんですね。

結果はどうだった?

フィルタ単体の効果は? (頑健性チェック)

次に、せっかく見つけた良いフィルタが、どんな相場状況でも効果を発揮するのか?という**「頑健性(ロバスト性)」をチェックしました。もし、たまたま特定の期間だけ良かった、というのでは意味がありませんからね。 htfフィルタがPFを改善した期間を細かく見ていくと、残念ながら4つの期間のうち2つの期間でしか、その効果がはっきりと現れませんでした**。これは、htfフィルタが「強いトレンドが出ている時に特に効果を発揮する」という特性があるためで、つまり「どんな相場でも万能!」とは言えない、ということが分かったんです。ちょっと残念な点ですね。 ただ、htfフィルタのパラメータ(設定値)を色々と変えて試してみたところ、どの設定でもフィルタなしのplain EAよりもPFが下がることはなく、一貫してPFが改善する傾向が見られました(PF1.22が1.22〜1.26に)。改善幅は小さいですが、この「一貫性」は評価できるポイントです。

実際のシステムに組み込んだら? (最終チェック)

そして、いよいよ最終段階!実際に動いている私たちのEA「v1.4.0」に、今回見つけた**「HTF(上位時間足トレンド一致)」フィルタを核として組み込んでみたらどうなるか**を検証しました。具体的には、1時間足(H1)や4時間足(H4)のトレードを、日足(D1)のトレンドでフィルタリングする、というイメージです。 その結果がこちらです!

  • PF(プロフィットファクター)が1.61から1.69に向上!
  • モンテカルロシミュレーション(MC=Monte Carlo Simulation。未来の不確実性を考慮したシミュレーション)での合格率が94%から95%にアップ!
  • ドローダウン(DD=Drawdown。資産の最大減少率。登山でいう「どれだけ下りに転じたか」のようなもの)が-8.3%から**-8.1%に改善!**
  • トレード回数は6168回から5177回に減少! (-16%減です。質の高いトレードを選んだ結果ですね。)
  • 月平均利益率(M1)は1.91%から2.04%に微増! しかも、利益が0だった日数は変わらずゼロを維持できました。 これらの数値を見ると、「おっ、これはかなり良い改善じゃないか!」と思われるかもしれません。 しかし、ここで冷静に見てみると、一つ重要な点が見えてきました。月利(月平均利益率)で見ると、0.77%から0.74%へと、ごくわずかですが「微減」しているんです。また、リスクを考慮した上での効率を示す「DD10%換算」という指標も、0.92%から0.91%とほぼ横ばいでした。 これはつまり、PFやモンテカルロ合格率、ドローダウンといった「EAの品質」は底上げされたものの、リスクに対するリターンの効率(リスク調整効率)は、実はほとんど変わっていない、ということを示しています。なんだか複雑な気持ちになりますよね。

ここから学んだこと

今回の検証から、いくつか大切なことが分かりました。 まず、たくさんのフィルタを重ねて使う中で、本当に効果があったのは「HTF(上位時間足のトレンドと一致する時だけトレードする)」フィルタだけでした。これが今回の検証で見つけた「本物のフィルタ」と言えるでしょう。 ただし、このHTFフィルタは、単にEAの性能を「タダで上乗せしてくれる魔法のフィルタ」というわけではありませんでした。代わりに、「リターンがごくわずかに減るのと引き換えに、PFやモンテカルロ合格率、ドローダウンといったEAの品質を高めてくれる」という、一種の「品質トレードオフ」の関係にあることが分かったんです。 以前の研究(研究62)で、「個々のフィルタを改善しても、システム全体の改善にはつながらないことが多い」という教訓がありましたが、今回はその教訓を部分的に更新する結果となりました。つまり、v1.4.0という現行システムにおいては、HTFフィルタによってPFやMC合格率、ドローダウンは確かに底上げされるけれど、リスクに対する利益の効率(リスク調整効率)は変わらない、ということですね。 でも、これはこれで素晴らしい発見です!もしあなたが、「とにかく安定して継続的に利益を出金したい」とか、「ドローダウンをできるだけ抑えたい」といった「整合性や低ドローダウンを最優先する」タイプの運用を目指しているなら、このHTFフィルタはまさに望ましい方向性を示してくれます。 そのため、私たちはこのHTFフィルタを組み込んだバージョンを、「高品質・安全寄り運用オプション(v1.4.1候補)」として記録しておくことにしました。これは、EAの安定性を重視する方にとって、非常に魅力的な選択肢になるはずです。 最終的に、このHTFフィルタを導入するかどうかは、皆さんの運用方針次第です。「少しでもリターンが高い方がいい」という方は、現状のv1.4.0を選ぶのが良いでしょう。一方で、「PFやモンテカルロ合格率、ドローダウンが改善されることで、より安心して運用したい」という方は、HTFフィルタ版を検討する価値がある、というわけですね。 そして、今回の検証で改めてはっきりしたのが、トレンドフォロー型のEAでは勝率を構造的に上げるのは難しいということ、そしてADXフィルタや、過剰なフィルタの重ね掛けは逆効果になるということでした。この点も、今後のEA開発や運用に役立つ大切な教訓です!

この検証のつながり

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