English Deutsch
preview
知っておくべきMQL5ウィザードのテクニック(第84回):ストキャスティクスとFrAMAのパターンの使用 - 結論

知っておくべきMQL5ウィザードのテクニック(第84回):ストキャスティクスとFrAMAのパターンの使用 - 結論

MetaTrader 5トレーディングシステム |
81 1
Stephen Njuki
Stephen Njuki

はじめに

前回の記事では、ストキャスティクスとフラクタル適応型移動平均(FrAMA: Fractal Adaptive Moving Average)のインジケーターペアにおける最初の5つのシグナルパターンを検証しました。限られたテスト期間ではありましたが、いずれのパターンも良好なフォワードウォークを示し、1年間の学習期間の後、続く1年間を検証期間としてテストをおこないました。

これらのテストでは、各シグナルパターンに適した市場環境を意識しつつ、それぞれの市場タイプに「適切」と考えられる資産を選定しました。検討した市場のアーキタイプは、トレンド型/平均回帰型、自動相関型/非相関型、高ボラティリティ/低ボラティリティの市場です。これらの市場タイプに対して、各パターンがより効果的に機能すると考えられる資産クラスを割り当てましたが、フォワードテストの結果を見る限り、その選定は概ね妥当であったと考えられます。

そのため、本記事においても、前回の記事で用いた資産タイプと市場アーキタイプの組み合わせを踏襲し、このインジケーターペアにおける残り5つのシグナルパターンを検討していきます。


Pattern_5:低ボラティリティフラットラインブレイクアウト

6つ目のパターンであるPattern_5は、穏やかな、もしくは低ボラティリティの市場環境で機能するよう設計されています。このパターンの要件は、価格およびFrAMAの双方が方向感を失い、値動きが収束している価格圧縮ゾーンを特定し、その後にいずれかの方向へ動意が発生する直前の局面を捉えることにあります。本質的には、長期間にわたるボラティリティ収縮の後、ボラティリティが拡大へ転じる初期の瞬間を捕捉することを目的としています。このような相場レジームは、前回の記事で検証に用いた資産でも頻繁に観測されました。その資産とはUSD/JPYです。この通貨ペアは、急激な値動きと長期間の保ち合いが交互に現れる傾向が非常に強く、こうした特性はこのパターンの前提とよく一致しています。MQL5では、これを次のように実装します。

買いシグナル(Pattern_5):FrAMA横這い + ストキャスティクスが30未満で上方向にクロス

p5buy

//+------------------------------------------------------------------+
//| Check for Pattern 5.                                             |
//+------------------------------------------------------------------+
bool CSignalFrAMA_Stochastic::IsPattern_5(ENUM_POSITION_TYPE T)
{  if(T == POSITION_TYPE_BUY)
   {  return((FlatFrama(X()) && CrossUp(K(X()), D(X()), K(X() + 1), D(X() + 1)) && K(X()) < 30)  ? true : false);
   }
   else if(T == POSITION_TYPE_SELL)
   {  return((FlatFrama(X()) && CrossDown(K(X()), D(X()), K(X() + 1), D(X() + 1)) && K(X()) > 70) ? true : false);
   }
   return(false);
}

このパターンの内部ロジックはFlatFrama()メソッドに依存しています。この関数のコードは前回の記事で共有しましたが、基本的には、ハイパーパラメータである「m_pips」によって調整された許容範囲を用い、一定期間にわたってFrAMAの傾きがどの程度小さい状態に留まっているかを評価するものです。参考までに、同一の関数を以下に示しました。

//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
bool CSignalFrAMA_Stochastic::FlatFrama(int ind)
{  const double tol = m_pips * m_symbol.Point();
   for(int i = ind; i < m_past+ind; i++)
      if(MathAbs(FrAMASlope(i)) > tol) return false;
   return true;
}

このブールロジックでは、最適化されたルックバック期間全体にわたってFrAMAの傾きが小さく、方向性が確認できない状態であったかどうかを判定しています。この条件が真を返す場合、直近の期間において低ボラティリティかつ方向感に乏しい相場環境が継続していたと解釈されます。これにストキャスティクスを組み合わせ、30または70付近といった閾値近傍でのクロスを用いることで、このパターンはモメンタムの再発生と同時に始まるボラティリティ拡大局面を先取りしようとする構造になっています。すなわち、価格とFrAMAがともに方向性を示していない静穏な相場環境を認識したうえで、ストキャスティクスが初期的な方向バイアスを示した段階でエントリーし、その後のボラティリティ上昇を想定するという考え方に基づいています。

USD/JPYを使用した点は重要な要素でした。この通貨ペアは、マクロイベントの合間に値幅の狭いレンジへと収束する傾向が強く、理論的にはボラティリティブレイクアウトモデルに適した市場といえます。FrAMAの適応性はUSD/JPYに見られる収縮局面を確認する役割を果たし、ストキャスティクスの再活性化は初期の方向性を示唆するシグナルとして機能します。実際にこの通貨ペアで学習をおこなったところ、特に2024年1月の日銀の金融政策を巡る期間において、このような低ボラティリティ局面が複数回観測され、理想的なセットアップが数多く存在しました。しかし、その後、想定されていた高ボラティリティ環境へ移行する過程、特に2024年以降のフォワードテスト期間においては、相場のボラティリティ構造が不規則かつ断続的なものへと変化しました。その結果、このパターンが前提としているような明確な収縮局面自体がほとんど出現しなくなり、このパターンが特定の市場レジームに強く依存していることが明らかになりました。これが、下記レポートに示されているように、フォワードテストにおいて十分な収益性を示すことができなかった理由の一部であると考えられます。

r5

フォワードパスにおいては、FrAMAの傾きに基づく判定が、実際にはボラティリティが急上昇している局面であっても複数のローソク足にわたって真と判定されるケースが頻発しました。その結果、誤ったブレイクアウトの検出や、エントリーが遅れる事象が発生しました。モデルは静穏な市場環境を前提としていましたが、実際には不規則なボラティリティ環境に直面していたといえます。このことは、傾きの小ささのみを基準とした二値的な条件では、新たなボラティリティレジームへの移行に十分な速度で適応できないことを示唆しています。今後の改善点としては、固定的なルックバック期間ではなく、相場環境に応じて変化する動的なルックバック期間の導入が必要となる可能性があります。



Pattern_6:トレンド再開 - 「W」および「M」フォーメーション

このパターンは、調整局面の後に発生するトレンドの再開を捉えることを目的として設計されています。ストキャスティクス上において、強気の場合は「W」、弱気の場合は「M」に視覚的に類似した、繰り返し現れるモメンタム構造を識別することで、モメンタムが一度低下し、安定した後、主要トレンドの方向へ再び勢いを取り戻す局面を特定します。このパターンでは、FrAMAの傾きを方向性確認のためのフィルターとして併用し、適応的なトレンド方向と整合しているセットアップのみを有効とします。理論上、この構造は典型的なトレンド継続型アルゴリズムに相当し、複数の推進波が連続して発生しやすいゴールドのような資産に適していると考えられます。これをMQL5で次のように実装します。

売りシグナル(Pattern_6):ストキャスティクスが80以上で「M」型のピークを形成 + FrAMAの傾きが上向き

p6sell

//+------------------------------------------------------------------+
//| Check for Pattern 6.                                             |
//+------------------------------------------------------------------+
bool CSignalFrAMA_Stochastic::IsPattern_6(ENUM_POSITION_TYPE T)
{  bool W = (K(X() + 2) < 20 && K(X() + 1) > K(X() + 2) && K(X()) < 20 && K(X()) > K(X() + 1));
   bool M = (K(X() + 2) > 80 && K(X() + 1) < K(X() + 2) && K(X()) > 80 && K(X()) < K(X() + 1));
   if(T == POSITION_TYPE_BUY)
   {  return((FrAMASlope(X()) < 0 && W)  ? true : false);
   }
   else if(T == POSITION_TYPE_SELL)
   {  return((FrAMASlope(X()) > 0 && M) ? true : false);
   }
   return(false);
}

上記ロジックに基づき、買いエントリーでは、ストキャスティクスの%Kが20未満の水準で2つの谷を形成し、かつ2つ目の谷が1つ目よりも高い位置にある「W」フォーメーションを探します。一方、売りエントリーでは、%Kが80を超える水準で2つの山を形成し、2つ目の山が1つ目より低い位置にある「M」フォーメーションを条件としています。いずれの場合も、FrAMAの傾きがレジームフィルタとして機能し、これらのフォーメーションが単なる調整局面の中で発生しているかどうかを確認します。この構造は、モメンタムの一時的な停滞が解消され、主要トレンドが再び動き出す瞬間を捉えることを狙っており、トレンド途中での再エントリーに特化したセットアップとなっています。

このシグナルパターンの検証対象としてゴールドを選択した理由は、その明確な「トレンド特性」にあります。ゴールドは再エントリーの機会が多い資産であり、長い推進波の合間に比較的小規模な調整が頻繁に発生します。このような価格構造は、今回狙っている「W/M」型のストキャスティクスフォーメーションにとって非常に適した環境といえます。さらに、ゴールドは機関投資家および個人投資家の参加がともに活発であるため、トレンド途中のモメンタム調整において、ストキャスティクスのようなオシレーターに周期的で調和の取れた動きが現れやすい傾向があります。FrAMAの傾きは、このようなストキャスティクスのシグナルが、基調となるトレンド方向と整合しているかを確認する役割を担っています。学習および最適化の段階では、このパターンは有望な結果を示し、波動構造に基づくトレンド継続局面を的確に識別することができました。しかし後に、この成功がボラティリティサイクルの一貫性に大きく依存していることが明らかになりました。フォワードテストではボラティリティ構造が大きく変化し、その影響が下記の結果に反映されています。

r6

Pattern_6は、2023年に見られたような構造的に整ったトレンド環境では良好に機能しましたが、2025年に示されているようなボラティリティが変動的な局面では十分に機能しませんでした。2024年から2025年にかけて、ゴールドの値動きの「リズム」が変化し、調整局面がより深く、かつ非対称になる傾向が強まり、「W/M」パターンが前提としている幾何学的構造が崩れたためです。フォワードウォークでの不収益な結果は、二値化されたシグナルを用いているにもかかわらず、静的な幾何学認識に依存している傾向を示しています。Pattern_5と同様に、Pattern_6の改善策としては、ボラティリティに応じて調整されるルックバック期間の導入や、FrAMAの傾きに動的な閾値を設けることで、より高いロバスト性を持たせることが考えられます。

ある意味で、このシグナルは、精度と適応性の間に存在する重要なトレードオフを強調しています。学習期間中のトレンド相場では、「W/M」ロジックは明確な調整局面を捉えることができましたが、フォワードテスト期間における市場環境のボラティリティ構造の変化には対応しきれませんでした。そのため、継続的な運用を前提とする場合には、動的なルックバックによるロバスト性の向上に加え、ONNXモデルを用いず、MQL5上で直接実装された強化学習による文脈認識の導入も、検討に値するアプローチであると考えられます。



Pattern_7:平均回帰型FrAMAタッチリバーサル

Pattern_6がボラティリティの対称性に苦戦するのに対し、次のパターンであるPattern_7は、それを活かすように設計されています。Pattern_7の設計は、価格が適応型平均であるFrAMAに接触し、ストキャスティクスが極端値から離れると発動する平均回帰の反発ロジックを体現しています。このシグナルパターンは、価格が短時間で均衡に戻り、再び振動サイクルを再開する瞬間を狙うものです。これはいわゆる「押し目買い」や「戻り売り」の典型的な例と言えます。

このパターンをテストするための資産としてゴールドを選んだ理由は、方向性の強いインパルスと落ち着いたレンジ相場を交互に繰り返す性質を持つためです。ゴールドの値動きはタッチ&リコイルのシーケンスが豊富で、1980年以降のチャートを観察すると、特にレンジ相場の期間が非常に長いことがわかります。たとえば、1980年4月から2006年7月まではほぼレンジ相場でした。同様に、最近では2012年7月から2020年7月まで再びレンジ帯でした。現在は上位時間足で見ると上昇基調にあり、史上最高値付近にあります。この背景から、FrAMAは適応的な均衡値を提供し、ストキャスティクスの%Kの傾きが短期的なエントリーの精度を高めるのに役立ちます。このパターンは、MQL5では以下のように実装されます。

買いシグナル(Pattern_7):価格がFrAMAにタッチ + ストキャスティクスが30を超えてて上昇

p7buy

//+------------------------------------------------------------------+
//| Check for Pattern 7.                                             |
//+------------------------------------------------------------------+
bool CSignalFrAMA_Stochastic::IsPattern_7(ENUM_POSITION_TYPE T)
{  bool touch = (Low(X()) <= FrAMA(X()) && High(X()) >= FrAMA(X()));
   if(T == POSITION_TYPE_BUY)
   {  return((touch && K(X() - 1) < 20 && K(X()) > 30)  ? true : false);
   }
   else if(T == POSITION_TYPE_SELL)
   {  return((touch && K(X() - 1) > 80 && K(X()) < 70) ? true : false);
   }
   return(false);
}

上記のコードでは、価格のローソク足の範囲がFrAMAラインを横切ったかをチェックしています。これにより、市場が実際に適応型平均にタッチしたことを確認しています。買いシグナルの場合、ストキャスティクスの%Kは20以下から30以上へ上昇する必要があります。これは売られ過ぎゾーンからの離脱を表します。売りシグナルの場合、%Kは80以上から70以下へ下降する必要があります。これは買われ過ぎ状態からの平均回帰の開始を示します。つまり、このコードは価格が平均に到達し、勢いが逆転したかを判定しており、特にレンジ相場でのカウンタスイング条件として信頼できる可能性があります。

ゴールドを選んだ理由は、長期のレンジ相場があるため、トレンドに転換するタイミングを見極める重要性があるからです。FrAMAはゴールドのボラティリティサイクルに応じてスムーズに適応し、4時間足のような下位時間足でも、価格はインパルスの伸びの後に適応型平均に戻る傾向があります。FrAMAにタッチするイベントは、ほとんどの場合、投機ポジションの消耗と勢いの反転が重なることが多いです。ストキャスティクスは新たな勢いを確認するフィルタとして機能し、トレンド継続に巻き込まれるリスクを軽減します。2023年から2024年にかけての学習期間では、フォワードテストでも一定の利益が確認されました。

r7

選択したパラメータでPattern_7を学習させた場合、取引頻度は約4~5本のローソク足に1回、ほぼ1日1回程度でした。これは効率的なフィルタリングが達成できたことを示しています。オプティマイザが73で収束した場合、100を目標とする複雑な基準を用いても、利益に一貫した寄与を示すことが期待できます。テスト期間では、2023年10月から2024年3月にかけてパフォーマンスがピークに達しており、これはトレンド後のレンジ相場が特徴的な時期でした。これにより、パターンの回帰的な設計が検証されました。

フォワードテストでは、Pattern_7はボラティリティの変化にも関わらず堅調に機能しました。FrAMAのタッチ条件は振幅に応じて自動で調整されます。2025年初頭には、ゴールドがレンジ内で調整した後、FrAMAを突破し、ストキャスティクスが反発するという典型的なリバーサルが多数発生しました。以前の%Kは確認にラグがありましたが、遅れたエントリーで利益を損なうことはありませんでした。

まとめると、Pattern_7は、適応型平均を用いた平均回帰が離散的なブール論理で表現可能であることを示しています。ブール論理とは、複数のインジケーター条件がすべて成立した場合にのみパターンが成立することを意味します。前回の記事で見たシグナル、確かPattern_1だったと思いますが、それと組み合わせることで、柔軟で強固な相場環境の切り替え基盤を形成できると思います。



Pattern_8:高ボラティリティ中間線クロスモメンタム

前回の記事の最後で見たパターン(Pattern_4)がボラティリティ急騰の端を捉えたのに対し、今回の9番目のシグナルパターンは、ボラティリティの後に続く内部モメンタムの移行に注目しています。このパターンは、価格が高ボラティリティの状態でFrAMAの中間線を再び強い勢いで横切るタイミングを捉えることを目的としています。これは、ボラティリティが単に高まるだけでなく、方向性を再確認していることを意味します。

言い換えると、このパターンはボラティリティの継続を捉えるもので、ブレイクアウト後の第2のボラティリティインパルスを取引する狙いがあります。FrAMAの中間線クロスと中間レンジのストキャスティクスによる確認を組み合わせることで、ノイズによる急騰を除外しつつ、真の方向性の伸びを捉えることができます。MQL5では次のように実装します。

//+------------------------------------------------------------------+
//| Check for Pattern 8.                                             |
//+------------------------------------------------------------------+
bool CSignalFrAMA_Stochastic::IsPattern_8(ENUM_POSITION_TYPE T)
{  // Midline (50) cross via synthetic “moving” reference
   bool crossUpMid   = (K(X() + 1) <= 50.0 && K(X()) > 50.0);
   bool crossDownMid = (K(X() + 1) >= 50.0 && K(X()) < 50.0);
   if(T == POSITION_TYPE_BUY)
   {  return((FramaTurningUp()   && crossUpMid)  ? true : false);
   }
   else if(T == POSITION_TYPE_SELL)
   {  return((FramaTurningDown() && crossDownMid) ? true : false);
   }
   return(false);
}

上記の設定では、終値がFrAMAをストキャスティクスの中間線の方向に沿って横切った場合にブール型のシグナルを発動します。買いシグナルは、ストキャスティクスの%Kが55を上回るときに、上昇モメンタムが継続していることを確認するものです。売りシグナルは、ストキャスティクスの%Kが45ラインを下回ってクロスすることで、弱気圧力が持続していることを確認するものです。この9番目のパターンは、典型的な極端ゾーンに注目するのではなく、中間レンジのオシレーター値に着目することで、短期的な過剰反応を回避し、成熟したボラティリティ駆動型のトレンド継続を追跡します。

このパターンの対象資産としてUSD/JPYを選んだ理由は、過去の類似シグナルと同様にボラティリティ感度の高さです。USD/JPYの動きは、低ボラティリティ期と鋭い方向性の追随が交互に現れることが多いと前述しました。Pattern_8は、初期のボラティリティ急騰の後に、価格が適応平均を再び上下にクロスする第2段階の加速局面を狙うためのものです。

FrAMAの適応能力により、市場環境が変化した場合でも中間線は現在の構造的平均を反映します。ストキャスティクスの50付近の閾値は、この動きが本物の方向性を伴っているか、それともノイズによるものかを確認します。以下のレポートでわかるように、このパターンは、フォワードテストでも利益を上げることができました。

r8

最適化/学習時、最適な入力設定は訓練期間において、ボラティリティに沿った安定した収益性を示しました。最も良いパフォーマンスは、2023年末と2024年初頭の2つの期間に集中しており、長期圧縮の後の大きな方向性の動きを活用しました。%Kの45/55レンジを用いることで、中間帯クロスモメンタムがある程度持続力を持ち、ボラティリティの高い局面において極端なストキャスティクスゾーンよりもパフォーマンスが良いことを確認できました。

フォワードウォークでも利益が出ており、特に2025年初頭には日銀が政策金利を0.25%から0.5%に引き上げて世界を驚かせた局面で有効でした。この時、USD/JPYは高値にあり、方向性の追随は断続的でしたが、このシグナルパターンは偽シグナルを回避し、有効なクロスモメンタム条件が発生した場合のみ発動しました。特筆すべきは、ドローダウンが約10.4%と抑えられており、変化するボラティリティ環境下でもパターンのパフォーマンス維持能力が備わっていることが確認できました。


Pattern_9:分離型行き過ぎリバーサル

最後のシグナルパターンは、逆張り型の分離検出器として設計されています。このパターンは、価格のモメンタムが適応型平均(本稿ではFrAMA)から大きく乖離したときの疲弊を捉え、その後オシレーターが発散的な挙動を示すことを狙っています。構造的トレンドとストキャスティクスの値との短期的な乖離から利益を得ることを目的としており、SPX 500のような複合指数では、複数の連動セクターが一時的に行き過ぎた後に平均値へ戻る現象がよく見られます。このパターンは、MQL5では以下のように実装されます。

売りシグナル(Pattern_9):FrAMA上向き + ストキャスティクスが90を上回りかつ下降中

p9sell

//+------------------------------------------------------------------+
//| Check for Pattern 9.                                             |
//+------------------------------------------------------------------+
bool CSignalFrAMA_Stochastic::IsPattern_9(ENUM_POSITION_TYPE T)
{  if(T == POSITION_TYPE_BUY)
   {  return((FrAMASlope(X()) < 0 && K(X()) < 10 && K(X()) >= K(X() + 1))  ? true : false);
   }
   else if(T == POSITION_TYPE_SELL)
   {  return((FrAMASlope(X()) > 0 && K(X()) > 90 && K(X()) <= K(X() + 1)) ? true : false);
   }
   return(false);
}

買いシグナルは、価格がFrAMAを大きく下回り、ストキャスティクスが深い売られ過ぎゾーンに到達したときに発生します。売りシグナルは、価格が適応型平均より大幅に上方にあり、オシレーターが極端な買われ過ぎゾーンにある場合です。行き過ぎの度合いを定量化するために、3倍ポイントの乖離係数を使用しています。この係数は、明確な乖離が発生した場合にのみシグナルを発動させることを目的としています。また、オシレーターによって内部モメンタムの飽和を確認することで、高確率のリバーサルを示唆します。

このパターンの対象資産としてSPX 500指数を使用した理由は、その複合性にあります。構成セクターの同期した行き過ぎは、平均回帰前に発生することが多く、逆張りシグナルを検証する優れた環境となります。過去の広範な指数では、セクター間のローテーションによる分離が見られました。たとえば、テクノロジーとエネルギーが価格動向で乖離しているにもかかわらず、指数自体は新高値を更新することがあります。しかし、このパターンは、Pattern_5やPattern_6と同様にフォワードテストでは良好な結果を示しませんでした。これは、SPX 500の構造的な強靭性(ETFのリバランスを含む)が、セクター間の乖離の持続期間を制限する可能性があるためです。そのため、当初は行き過ぎに見えても、簡単にモメンタム継続に変わることがあり、早すぎるリバーサルエントリーにつながる場合があります。フォワードウォークの結果は以下の通りです。

r9

このパターンの学習では、特に2023年中期から2024年初頭のレンジ期間において、インサンプルで良好なパフォーマンスが確認されました。この期間は、短期的な行き過ぎの後に小さなプルバックが発生した局面でした。また、最適化ウィンドウにはバランスの取れたボラティリティ局面が含まれていたため、パターンは比較的適切に調整されていたといえます。ブール型の閾値チェックは、行き過ぎと急速な反発を「きれいに」切り分けていました。しかし、利益の大部分はわずか3つのクラスタに集中しており、堅牢性よりも時間的集中が目立ちました。

フォワードウォークでは、不利なポジションを継続的に取る結果となりました。2025年の市場はセクターローテーション相場で、価格は3倍ポイントの乖離を頻繁に超える一方、持続的なトレンドの中に留まることが多くありました。ストキャスティクスの%Kもほとんど極端値付近に張り付いたままで、買われ過ぎ/売られ過ぎが疲弊を意味するという前提は成り立ちませんでした。二値ルールはリバーサルを示すのではなく、むしろマクロ要因に駆動されたトレンドのモメンタムを削ぐ結果となりました。まとめると、Pattern_9はボラティリティの持続を疲弊と誤認してしまい、行き過ぎロジックを動的な市場で使用する際の典型的な失敗例であることが分かりました。



比較による考察

改めて、今回の探索では、ストキャスティクスとFrAMAを組み合わせた10のブール型シグナルパターンを検討しました。この結果、古典的なインジケーターが、文脈に応じたシグナルへと変換され、自動売買に適した形で利用できる可能性があることが分かりました。MQL5ウィザード用のコードも共有しており、エキスパートアドバイザー(EA)の組み立てに使うことで、新しいアイデアを迅速にプロトタイプ化できます。

各パターンは、すべての条件が満たされた場合にのみtrueを返すブール条件としてエンコードしました。これにより、市場のノイズに対するベクトル化フィルタのように振る舞い、チャート条件を効率的に二値状態へマッピングできます。この二値状態の出力は、機械学習モデルへの応用も容易であり、次回の記事では推論学習における利用を検討します。これらは、予測モデル向けにデータを正規化するパイプラインの一部となります。以下は、10のシグナルパターンをフォワードテストした結果の一覧です。

パターン 市場タイプ 対象資産 最適化利益率 フォワード利益率 状態 コメント
0 トレンド XAU USD 1.66 1.48 成功 強い方向性の継続性
1 平均回帰 XAU USD 1.52 1.39 成功 安定したオシレーション回復
2 自己相関 SPX 500 1.58 1.33 成功 同期したセクター回転を捉える
3 分離型 SPX 500 1.49 1.28 成功 信頼できる文脈フィルタ
4 高ボラティリティ USD/JPY 1.72 1.43 成功 強いインパルスの捕捉
5 低ボラティリティ USD/JPY 1.34 0.87 失敗 落ち着いた局面に過適合
6 トレンド XAU/USD 1.63 0.92 失敗 静的パターンのミスマッチ
7 平均回帰 XAU/USD 1.59 1.44 成功 優れた均衡反応
8 高ボラティリティ USD/JPY 1.74 1.52 成功 ボラティリティ第2段階の継続
9 分離型 SPX 500 1.47 0.84 失敗 構造的疲弊を誤認


結論

今回の10個のFrAMA-ストキャスティクスブール型シグナルパターンの検証を通じて、基本的なインジケーターの組み合わせでも、ノイズフィルタリングとしてブール出力にエンコードすることで、市場のさまざまなアーキタイプに対して多様な挙動を示すことが分かりました。各パターンは、構造化されたインジケーターロジックが、最適化データウィンドウを超えたフォワードテストでも堅牢性を維持できるかを判断する実験的な代理として機能しました。上記の比較表にまとめた結果から、7つのシグナルパターンは一定程度の利益転送に成功した一方で、その他のパターンは市場のレジーム依存性やボラティリティの非対称性によりパフォーマンスが低下したことが示されました。

利益を出したグループ(0、1、2、3、4、7、8)は、より高い堅牢性と適応力を示しました。しかし、本検証の結果は、限られたテスト期間および非常に特定の市場状況や条件下で得られたものであるため、ここから得られる洞察は参考にはなるものの、過信は禁物です。読者は、ここで示した結果に基づき実際の取引判断をおこなう前に、必ず独自の検証をおこなう必要があります。市場は常に変化し、ある局面でうまくいった手法も、別の局面では逆効果になる可能性があります。どの発見であっても、ライブ運用前には、長期データを用いた追加のフォワードシミュレーションや独立検証をおこなうことが不可欠です。

次回以降は、従来通りルールエンコーディングから一歩進み、機械学習の適用を検討します。具体的には推論学習を探索し、本記事でパフォーマンスが振るわなかったパターンの改善に果たせる役割があるかどうかを考察していきます。


免責事項

これは金融アドバイスではありません。本記事の目的は、市場の動向を断定することではなく、アイデアの議論を促すことにあります。目的は「聖杯」を示すことではなく、利用可能なチャンスの幅を探り、それをどう活用できるかを示すことです。最終的な作業や重要な精査は、読者自身がおこなう必要があります。提示された内容を活用する場合も、自己責任での判断が求められます。

名前 説明
WZ_83.mq5 ヘッダに参照ファイルの名前と場所をリストするウィザード組み立てEA
SignalWZ_83.mqh MQL5ウィザードがEAを組み立てる際に使用するカスタムシグナルクラスファイル

MetaQuotes Ltdにより英語から翻訳されました。
元の記事: https://www.mql5.com/en/articles/19890

添付されたファイル |
WZ_83.mq5 (8.5 KB)
SignalWZ_83.mqh (50.52 KB)
最後のコメント | ディスカッションに移動 (1)
CapeCoddah
CapeCoddah | 16 10月 2025 において 19:40

こんにちは、スティーブン、

非常に興味深い記事、特にパターン 0 です。

私は前の記事からあなたのコードをダウンロードし、コンパイルし、H4時間枠で4つの主要な米ドル通貨、EUR、GBP、CAD、JPYで1/1/25から10/1/25の期間で実行し、すべて損失を出しました。

まず第一に、特定の通貨用に再トレーニングする必要があるのでしょうか? 第二に、パターンの1つだけを使用する、またはいくつかのパターンを使用するように指定するにはどうすればよいのでしょうか? また、このEAは、あなたの優れた記事のいくつかを組み込むために使用することができますか?

ありがとうございます、

ケープコッダ

MQL5で自己最適化エキスパートアドバイザーを構築する(第15回):線形系同定 MQL5で自己最適化エキスパートアドバイザーを構築する(第15回):線形系同定
取引戦略の改善は困難な課題です。その大きな理由の一つは、戦略がどこで、なぜ誤作動しているのかを私たち自身が十分に理解できていない点にあります。本記事では、制御理論の一分野である線形系同定を紹介します。線形帰還系(フィードバックシステム)は、データから学習することでシステムの誤差を特定し、その挙動を意図した結果へと導くことができます。これらの手法は、必ずしも完全に解釈可能な説明を与えるものではありませんが、制御系が存在しない状態と比べれば、はるかに有用です。本記事では、線形系同定がどのようにアルゴリズムトレーダーを支援し、取引アプリケーションを制御下に保つことができるのかを探っていきます。
MQL5入門(第24回):チャートオブジェクトで取引するEAの構築 MQL5入門(第24回):チャートオブジェクトで取引するEAの構築
本記事では、チャート上に描かれたサポートラインやレジスタンスラインを検出し、それに基づいて自動で取引を実行するエキスパートアドバイザー(EA)の作成方法を解説します。
MQL標準ライブラリエクスプローラー(第2回):ライブラリコンポーネントの接続 MQL標準ライブラリエクスプローラー(第2回):ライブラリコンポーネントの接続
本記事では、MQL5標準ライブラリを用いてエキスパートアドバイザー(EA)を効率的に構築するために、クラス構造をどのように読み解くべきかを整理します。標準ライブラリは高い拡張性と機能性を備えていますが、その全体像が見えにくく、体系的な指針がないまま複雑なツールキットを渡されたように感じることも少なくありません。そこで本記事では、実際の開発現場でクラスを確実に連携させるための、簡潔かつ再現性の高い統合手順を紹介します。
MQL5における二変量コピュラ(第1回):依存関係モデリングのための正規コピュラおよびtコピュラの実装 MQL5における二変量コピュラ(第1回):依存関係モデリングのための正規コピュラおよびtコピュラの実装
本記事は、MQL5における二変量コピュラ(Bivariate Copula)の実装を紹介する連載の第1回です。本記事では、正規コピュラおよびtコピュラ(スチューデントtコピュラ)の実装コードを取り上げます。また、統計的コピュラの基礎概念や関連トピックについても解説します。本記事で紹介するコードは、Hudson and Thamesが提供するArbitragelab Pythonパッケージを参考にしています。