English Deutsch
preview
知っておくべきMQL5ウィザードのテクニック(第77回):ゲーターオシレーターとA/Dオシレーターの使用

知っておくべきMQL5ウィザードのテクニック(第77回):ゲーターオシレーターとA/Dオシレーターの使用

MetaTrader 5テスター |
90 2
Stephen Njuki
Stephen Njuki

はじめに

主要な取引シグナルを生成する際のインジケーターの組み合わせの探求を続ける中で、今回はゲーターオシレーター(Gator Oscillator)とA/Dオシレーター(Accumulation/Distribution Oscillator)に注目します。A/Dオシレーターとは異なり、ゲーターオシレーターは方向性に中立ですが、どちらもモメンタムと出来高を追跡してシグナルを確認する補完的な役割で使用します。ゲーターオシレーターが方向性に中立であるということは、トレンドを把握するために、別のインジケーターまたは価格の動きを頼る必要があることを意味します。本記事では、後者を使用します。


ゲーターオシレーター

ゲーターオシレーターは、ビル・ウィリアムズによって作られたもので、彼のもう1つの代表的なインジケーターであるアリゲーターの中で、3本の移動平均線の収束・拡散の度合いを測定するために開発されました。アリゲーターは、「顎」「歯」「唇」の3本の有名なバッファで構成されています。一方、ゲーターオシレーターは、このアリゲーターを「可視化」する役割を果たし、そのフェーズを「睡眠」「覚醒」「捕食」「満腹」の4つに定義します。これら4つのフェーズは、トレンド相場やレンジ/ボックス相場などのサイクル上のポイントに対応しており、特にトレンドの始まり(顎が開く)や終了(顎が閉じる)を見極めるのに有用です。 

支持者によると、このインジケーターの強みは、ゼロラインの上下で緑・赤のヒストグラム色でトレンドフェーズの変化を視覚的に分かりやすく示せる点です。一方、弱点は、それ単体では予測的ではなく、実際のエントリー/エグジットの判断には価格の動きや他のインジケーターと組み合わせる必要がある点です。ゲーターオシレーターの計算式は次の手順で定義されます。まず、中央値価格を算出します。

formg1

次に、「顎」、「歯」、「唇」の移動平均バッファを示します。

formg2

ここで

  • SMMA(シリーズ, n):期間nの平滑移動平均、「シリーズ」は価格タイプ。ここでは中央値価格を使用。
  • jaw_period=13、jaw_shift=8
  • teeth_period=8、teeth_shift=5
  • lips_period=5、lips_shift=3

この3つのバッファを定義した後、ヒストグラムの上限値および下限値を設定します。

formg3

ここで

  • ∣⋅∣:絶対値
  • Gator_Up(ゼロライン上にプロット)、Gator_Down(ゼロライン下にプロット、負値)

この「アリゲーターライン」、すなわち「顎」「歯」「唇」の3本のバッファは、前方シフトを伴ったSMMAを使用しており、通常の移動平均線のクロスオーバーとは異なり、市場のフェーズを先読みする役割を持ちます。Gator_Upヒストグラムは顎と歯の絶対差を表しており、これが増加すると、ゲーターの口が開き、トレンドが始まることを示唆します。一方、Gator_Downヒストグラムは歯と唇の絶対差の負値であり、これが増加(より負になる)すると、トレンドフェーズの継続または終了を確認できます。バーの色は通常、バーの長さが伸びる場合は緑、縮む場合は赤、横ばいの場合は前のバーの色を維持します。

ゲーターオシレーターは、ボラティリティの低い市場を避けてエントリーするタイミングを見極めるのに役立ちます。エントリーはヒストグラムバーが両方とも拡大しているとき、すなわち緑のシグナルが示す「捕食フェーズ」のみを対象とすることが推奨されます。このインジケーターはトレンドフォローに適しており、レンジ取引や平均回帰型取引には向きません。また、これらの移動平均バッファにシフトを設定することは非常に重要で、シフトを0に置き換えると、全く異なる、あまり役に立たないインジケーターとなります。最後に、ブレイクアウトや高値更新・安値更新の確認に価格の動きを組み合わせることが必須です。これはゲーターオシレーターが方向性に中立であるため、唯一の有効な利用方法となります。


A/Dオシレーター

本記事での2つ目のインジケーターは、A/Dオシレーター(蓄積/分配オシレーター)です。このインジケーターは、価格と出来高を用いて買い圧力と売り圧力を測定します。実際の資金フローを捉え、蓄積(いわゆるスマートバイイング)や分配(スマートセリング)を特定します。使用時には、価格とのダイバージェンスが状況によって赤信号または青信号となることがあります。たとえば、価格が上昇しているのにA/Dが下落している場合、隠れた分配がおこなわれている可能性を示唆します。このインジケーターの強みは、価格だけでなく出来高も統合している点であり、トレンドの持続性をより正確に把握できます。一方、出来高の少ない市場や操作されやすい薄商いの市場では弱点があります。

さらに、FX取引においてはティックボリュームのみを使用する制約があります。このインジケーターの計算式は、まずマネーフロー乗数を算出することから始まります。具体的には以下の通りです。

formad1

ここで

  • Hight − Lowt ≠ 0。0の場合はNaN(ゼロ除算を避けるため)に設定します。

次に、マネーフローボリュームを計算する必要があります。これは以下の式で表されます。

formad2

続いて、ADL(累積分配ライン)を求めます。

formad3

これは、過去のマネーフローボリュームの累積値です。最後に、実際のA/Dオシレーターの値を求めます。計算式は以下の通りです。

formad4

ここで

  • EMA(シリーズ,n):期間nの指数移動平均。「シリーズ」はADLバッファ。
  • 通常使用される期間はfast_period=3、slow_period=10で、fast_period < slow_period です。本記事では、A/Dオシレーターとゲーターオシレーターを同期させるために、2つの期間にそれぞれフィボナッチ数の5と13を使用します。

マネーフロー乗数は、当日の価格範囲内で終値がどこに位置するかを示します。+1は上限、-1は下限、0は中央値を示します。マネーフローボリュームはこの乗数を出来高で重み付けしたものであり、出来高が多い価格変動ほど重要と見なされます。ADLはマネーフローの累積であり、買い手と売り手のどちらが市場を支配しているかを示します。最終的に、A/Dオシレーターは符号付き出来高インジケーターとして機能し、ADL上の高速EMAと低速EMAの差を示します。値が正なら買い優勢、負なら売り優勢を意味します。

まとめると、A/Dオシレーターはトレンドの確認に有用です。たとえば、価格が上昇しているときにチャート上の価格変動が「実体」を伴っているかどうかを判断できます。価格とA/Dのダイバージェンスは、現在のトレンドが偽であるか終了しつつあることを示す早期警告として機能します。このインジケーターは、流動性の低い市場や、出来高データが欠損または誤っている状況では有用性が制限されます。主に確立された取引パターンのフィルタやダイバージェンス検出器として利用するのが適しています。単独でのエントリー/エグジットツールとしては不向きです。 

以上の2つのインジケーターを紹介したうえで、次に10種類のシグナルパターンに注目します。今回の学習対象はGBP/JPYペアで、2023年の30分足チャートを使用し、2024年をフォワードウォークテスト年とします。10種類のシグナルパターンはそれぞれインデックスが割り当てられており、ルールに従って順番にテストします。

インデックスは0から9まで割り当てており、EAが利用するマップ値を計算しやすくしています。たとえばインデックスが1の場合、パラメータPatternsUsedを2¹=2に設定します。インデックスが4の場合は2⁴=16です。同様に続きます。パターンは10個しか存在しないため、このパラメータに意味を持って設定できる最大値は1023です。0〜1023の値のうち、2の累乗ではない数値は複数のパターンを組み合わせたものを表します。


出来高確認ブレイクアウト(ゲーター「覚醒」+A/D急上昇)(Pattern_0)

最初のパターンは、ゲーターが休眠状態(「仮眠」)を経た後、オシレーターが覚醒を示した場合に登録されます。この際、1本のバーが緑に変わり、もう1本は赤のまま残ります。これは、ゲーターの顎/歯/唇が収束から拡散へ向かい始め、新たな上昇トレンド開始のサインと解釈されます。この強気のブレイクアウトの兆候は、A/Dオシレーターの急上昇が確認されることでさらに裏付けられます。A/Dの上昇、つまり出来高を伴った買い圧力の増加と新高値の更新や急激な上昇は、直近の価格上昇が出来高によって裏付けられていることを示します。したがって、この2つのサインがそろうことで、トレンドと出来高が一致した堅牢な上方向のブレイクアウトであることが確認できます。このパターンは、MQL5では以下のように実装されます。

//+------------------------------------------------------------------+
//| Check for Pattern 0.                                             |
//+------------------------------------------------------------------+
bool CSignalGator_AD::IsPattern_0(ENUM_POSITION_TYPE T)
{  if
   (
      clrRed == Color_UP(m_gator, X()) &&
      clrGreen == Color_LO(m_gator, X())
   )
   {  if
      (
         T == POSITION_TYPE_BUY &&
         High(X() + 2) > High(X() + 3) &&
         High(X() + 1) >= High(X() + 2) &&
         Close(X()) >= High(X() + 1) &&
         AD(X() + 1) > AD(X() + 2) &&
         AD(X()) > AD(X() + 1)
      )
      {  return(true);
      }
      else if
      (
         T == POSITION_TYPE_SELL &&
         Low(X() + 2) < Low(X() + 3) &&
         Low(X() + 1) <= Low(X() + 2) &&
         Close(X()) <= Low(X() + 1) &&
         AD(X() + 1) < AD(X() + 2) &&
         AD(X()) < AD(X() + 1)
      )
      {  return(true);
      }
   }
   return(false);
}

逆に弱気のパターンも、ゲーター覚醒に伴うヒストグラム色の反転によって示されます。ゲーターは方向性に中立であるため、この信号は下方向のブレイクアウトを示す場合もあります。この場合、A/Dラインは下落して新安値を付け、分配や売り圧力の強さを示します。ゲーターの方向性中立性により、このパターンでは価格の動きも考慮する必要があり、上記のコードでは高値や安値を参照している通りです。A/Dの下落は、取引量が価格下落に偏っていることを示し、弱気の仮説を補強します。

このパターンの強みは、ゲーターが「睡眠」から「顎を開く」へ移行するのを待つことで、新しいトレンドの始まりを捉えられる点です。また、A/Dによる出来高確認は、偽ブレイクアウトを排除するのに役立ちます。これら2つの条件が一致した場合、フォローする動きは強くなる傾向があります。これは、前述の学習期間およびテスト期間にわたるレポートでも一部確認できます。

r0

一方で、完全には納得できない場合もあり、これがこのパターンの弱点となります。問題はタイミングにある可能性があります。ゲーターの覚醒はわずかに遅れる場合があり、特に顎/歯/唇のバッファがブレイクアウトバーの確定後に交差するケースです。ニュースなどの影響による急激なブレイクアウトでは、緑のサインが出る前に価格が動いてしまうことがあります。また、出来高の急増は単発の場合もあり、特に流動性の低いアジア後場などではティックボリュームのスパイクが誤解を招くこともあります。


強いトレンド継続(アリゲーターの「食い込み」フェーズ + 持続的なA/D上昇トレンド)(Pattern_1)

2つ目のパターン(Pattern_1)は、確立された上昇トレンドの中での強気パターンとして示されます。この場合、ゲーターオシレーターは「捕食」モードにあり、上部ヒストグラムと下部ヒストグラムの両方が緑を示します。これは、顎/歯/唇のラインが広がり、トレンドが発生しているサインです。この状況では、A/Dオシレーターも価格の上昇に伴って安定した上昇を示し、一貫した蓄積(買い圧力)を表します。A/Dの持続的な上昇は、価格上昇が出来高に裏付けられていることを確認するものであり、各上昇の動きに十分な参加者がいることを意味します。この健全な組み合わせは、十分な勢いを持った強気トレンドを示します。トレーダーは、出来高の指標が好転している場合、短期的な小休止を利用してトレンドに乗ることができます。このパターンは、MQL5では以下のように実装されます。

//+------------------------------------------------------------------+
//| Check for Pattern 1.                                             |
//+------------------------------------------------------------------+
bool CSignalGator_AD::IsPattern_1(ENUM_POSITION_TYPE T)
{  if
   (
      clrGreen == Color_UP(m_gator, X() + 1) &&
      clrRed == Color_LO(m_gator, X() + 1) &&
      clrGreen == Color_UP(m_gator, X()) &&
      clrGreen == Color_LO(m_gator, X())
   )
   {  if
      (
         T == POSITION_TYPE_BUY &&
         Close(X() + 1) > Close(X() + 2) &&
         Close(X()) > Close(X() + 1) &&
         AD(X() + 1) > AD(X() + 2) &&
         AD(X()) > AD(X() + 1)
      )
      {  return(true);
      }
      else if
      (
         T == POSITION_TYPE_SELL &&
         Close(X() + 1) < Close(X() + 2) &&
         Close(X()) < Close(X() + 1) &&
         AD(X() + 1) < AD(X() + 2) &&
         AD(X()) < AD(X() + 1)
      )
      {  return(true);
      }
   }
   return(false);
}

一方、弱気の場合もゲーターの読みは同様です。ゲーターオシレーターは方向性に中立であるため、捕食フェーズで両ヒストグラムが緑のままでも、価格が下落していることがあります。この場合、A/Dラインが安定して下落していることは、売り圧力が継続しており、出来高を伴った売りがおこなわれていることを示します。ゲーターがトレンドの勢いを確認し、A/Dが売り圧力を示すことで、下降トレンドが継続していることが分かります。このパターンを、使用されるパターンの入力を 2に割り当ててテストすると、次のレポートが生成されます。

r1

Pattern_1をテストした結果、Pattern_0よりも説得力のある結果が得られました。これは、トレンドフォローと出来高確認を組み合わせたパターンの強みによるものです。捕食フェーズに焦点を絞ることで、「最も利益を得やすいポイント」を特定できます。顎/歯/唇のバッファは正しい順序で強く拡散し、明確な方向性を示します。A/Dオシレーターも同意していることで、トレンドが内部的に弱まっておらず、ダイバージェンスも見られず、大口プレイヤーの関心も失われていないことが確認できます。特にFXにおいて、H1〜H4の時間足でこのような整合性がある場合、信頼できるトレンド継続のサインとなります。このパターンは、トレーダーが比較的長く勝ちポジションを維持できる状況を示しています。弱気チャートの例としては、Pattern_1が捕食フェーズでA/Dが下降している状況として表されます。

p1

プルバック継続エントリー(ゲーターの「戻し」後再開+A/Dが維持)(Pattern_2)

次のシグナルパターンは、プライスアクション上昇トレンド内で定義されます。このようなトレンドでは、上昇フラッグのような一時的な押しや横ばいの動きがよく見られます。ゲーターオシレーターは、この際に一時的にトレンドの勢いが弱まったことを反映し、上部または下部のヒストグラムのどちらかが赤に変わり、もう一方は緑のまま残ることがあります。これは、顎/歯/唇のラインが収束し始めた、いわゆるゲーターの戻し段階(fill-out stage)を意味します。こうした状態はモメンタムの一時停止によるものです。重要な点として、このプルバックの間、A/Dオシレーターは横ばいかわずかに上昇していて、特筆すべき分配(売り圧力)が発生していないことを示しています。むしろ、この押し目では出来高が静かに蓄積されている場合があります。

このため、強気の再エントリーのための継続パターンが成立します。条件としては、ゲーターオシレーターが上部・下部ヒストグラムともに再び緑に変わった時点です。さらに、A/Dオシレーターが最近の高値付近にあることが望ましく、強気の出来高が依然として維持されていることを確認します。これをMQL5で次のように実装します。

//+------------------------------------------------------------------+
//| Check for Pattern 2.                                             |
//+------------------------------------------------------------------+
bool CSignalGator_AD::IsPattern_2(ENUM_POSITION_TYPE T)
{  if
   (
      clrRed == Color_UP(m_gator, X() + 1) &&
      clrGreen == Color_LO(m_gator, X() + 1) &&
      clrGreen == Color_UP(m_gator, X()) &&
      clrGreen == Color_LO(m_gator, X())
   )
   {  if
      (
         T == POSITION_TYPE_BUY &&
         High(X()) > High(X() + 1) &&
         Close(X()) <= Close(X() + 1) &&
         AD(X() + 1) > AD(X() + 2) &&
         AD(X()) > AD(X() + 1)
      )
      {  return(true);
      }
      else if
      (
         T == POSITION_TYPE_SELL &&
         Low(X()) < Low(X() + 1) &&
         Close(X()) >= Close(X() + 1) &&
         AD(X() + 1) < AD(X() + 2) &&
         AD(X()) < AD(X() + 1)
      )
      {  return(true);
      }
   }
   return(false);
}

弱気パターンも同様で、プライスアクションが明確な下降トレンドを示している場合、A/Dラインは下落からほとんど上昇せず、押し目での真の蓄積がないことを示します。弱気の継続エントリーも、強気パターンと同様に、ヒストグラムのうち1つが赤だった状況から全てが緑に変わったタイミングで確認されます。Pattern_2をテストすると、次のレポートが得られます。

r2

Pattern_2のテストでは、前2つのパターンよりもわずかに説得力のあるフォワードウォーク結果が得られました。ただし、エキスパートアドバイザー(EA)が備える適切なリスク管理措置は考慮されていません。テストは、テイクプロフィットのみ設定しストップロスは設定していない状態でおこなわれており、EAのクローズ閾値が事実上ストップロスとして機能しています。小規模テストのため、読者はこのパターンを実運用に用いる前に十分な注意が必要です。強気のエントリー例としてのチャート表示は以下の通りです。

p2



出来高ダイバージェンス反転(価格 vs. A/Dのダイバージェンス+ゲーターのトレンド弱化)(Pattern_3)

4つ目のシグナル(Pattern_3)は、カウンタートレンドの反転シグナルとして強気のセットアップが定義されます。これは、下降トレンドが弱まる兆しを示し、出来高の動きが強気の反発を示唆するときに発生します。通常、価格は安値を更新しますが、A/Dオシレーターは高値を更新するか、価格トレンドに逆行して上昇を始めます。この強気のダイバージェンスは、価格が下落していても出来高による買いが入り始めており、スマートマネーが安値で蓄積している可能性があることを意味します。

この時点でのゲーターオシレーターは方向性中立であり、下降トレンドが弱まっていることを示す場合があります。たとえば、下部ヒストグラムが緑から赤に変わることがあります。これはゲーターの戻し段階であり、顎/歯/唇のラインが収束していることを示します。場合によっては、上部と下部の両方のヒストグラムが赤に変わることもあります。このパターンは、MQL5では以下のように実装されます。

//+------------------------------------------------------------------+
//| Check for Pattern 3.                                             |
//+------------------------------------------------------------------+
bool CSignalGator_AD::IsPattern_3(ENUM_POSITION_TYPE T)
{  if
   (
      clrRed == Color_UP(m_gator, X() + 1) &&
      clrRed == Color_LO(m_gator, X() + 1) &&
      clrRed == Color_UP(m_gator, X()) &&
      clrGreen == Color_LO(m_gator, X())
   )
   {  if
      (
         T == POSITION_TYPE_BUY &&
         Close(X()) - Low(X() + 1) > 0.5 * (High(X() + 1) - Low(X() + 1)) &&
         AD(X() + 2) > AD(X()) &&
         AD(X()) > AD(X() + 1)
      )
      {  return(true);
      }
      else if
      (
         T == POSITION_TYPE_SELL &&
         High(X() + 1) - Close(X()) > 0.5 * (High(X() + 1) - Low(X() + 1)) &&
         AD(X() + 2) < AD(X()) &&
         AD(X()) < AD(X() + 1)
      )
      {  return(true);
      }
   }
   return(false);
}

弱気パターンは、上昇トレンドが終焉に近づいた際に発生します。価格が高値を更新する一方で、A/Dラインが新高値を更新できず下降を始める場合、弱気の出来高ダイバージェンスを示します。言い換えると、価格が新高値に達しても蓄積が減少したり、分配が始まっていることを意味します。この段階で、ゲーターオシレーターは上昇トレンドの勢いが弱まっていることを示します。先述の強気シグナルと同様に、上部ヒストグラムが緑から赤に変わる、あるいは両方のヒストグラムが赤になることがあります。

これは、顎/歯/唇が収束してモメンタムが失われつつあることを示すサインです。基本ルールとしては、A/Dで確認されない新高値への価格スパイクがある場合、ゲーターは「捕食」フェーズから「満腹」フェーズに移行し、弱気の反転シグナルが発生していると見なされます。ビル・ウィリアムズの言葉を借りれば、「アリゲーターは満腹の後に再び眠ろうとしており、ベアが支配権を握るかもしれない」という状況です。Pattern_0〜Pattern_2と同じ期間でテストした結果は以下の通りです。

r3

このパターンはフォワードテストでは苦戦し、最終的には利益を出すことができませんでした。  弱点は確認タイミングの難しさにあります。ダイバージェンスは反転が起こるまで一定期間続くことがあり、「市場はダイバージェンスが続く間、資金が尽きるよりも長く存在する」ことがあります。特にFXトレーダーはレバレッジを使用するため、この点は非常に重要です。ゲーターが1本のバーの赤変化などの初期シグナルを示しても、その後トレンドが一時的に続く場合があります。たとえば、価格が新安値を付けたり、A/Dが上昇せず横ばいになる場合があります。このようなダブルボトムシナリオは、早期エントリーを振り回す可能性があります。基本的に、単一のダイバージェンスだけでは即座に反転が保証されないため、価格がトレンドラインをブレイクする、あるいは顎/歯/唇のバッファが交差するなどの追加確認が必要です。

さらに、非常に強いトレンドでは出来高ダイバージェンスが失敗することもあります。大きなトレンドでは最終的な高値/安値を形成する前に複数の小さなダイバージェンスが生じることがあります。A/Dは累積的な指標であるため、長期トレンドの後では、価格がさらに1〜2回の極値を更新できる場合でも、A/Dは同じ速度で上昇できずダイバージェンスを示すことがあります。したがって、最初のダイバージェンスだけに依存するのはリスクが高いです。さらに、ニュースイベントなどによりダイバージェンスのセットアップが無効化されることもあります。例えば、強気のダイバージェンスが形成されている最中にネガティブなファンダメンタルショックが発生すると、価格が新安値に下落し、出来高も伴ってダイバージェンスが無効になる場合があります。


トレンドの疲弊とエグジットシグナル(ゲーター「満腹」フェーズ+出来高減少)(Pattern_4)

このインジケーターの組み合わせにおける合計10個のシグナルパターンを紹介しますが、本記事では最初の5つのみを取り上げます。Pattern_5〜Pattern_9は次回の記事で扱います。 

本記事最後のパターン(Pattern_4)は、強気パターンとして「トレンドの疲弊」に基づいています。長期にわたる下降トレンドでは、鋭いダイバージェンスによる反転ではなく、トレンドの勢いが弱まる時点が訪れます。この際、ゲーターオシレーターはビル・ウィリアムズの言う「満腹」フェーズに移行します。これは、上部・下部ヒストグラムが緑であった「捕食」フェーズの次の段階です。その後、どちらか一方のヒストグラムが赤に変わります。前述の通り、これは顎/歯/唇のラインが収束し始め、下降トレンドの勢いが弱まっていることを示しています。しかし、直ちにダイバージェンスや反転が発生するわけではなく、市場は停滞したりレンジに入ることがあります。重要な点は、下降トレンドが終わりに近づいている可能性が高いことです。

同時に、A/Dオシレーターは横ばいになるか、わずかに上昇し始めます。これは、激しい分配が停止し、売り手が支配的でなくなり、出来高の圧力がもはや強くマイナスではないことを示しています。完全な強気ダイバージェンスではないものの、出来高はさらなる下落を確認していません。ショートポジションを保有しているトレーダーにとって、ゲーターがもはや下方向に拡大せず、出来高も下落しない状況は、確実なエグジットシグナルとなります。弱気トレンドは勢いを失っており、積極的なトレーダーは市場の底打ちを見越して、蓄積が始まることを予測しつつ反転に備えることができます。MQL5では、このパターンを以下のように実装します。

//+------------------------------------------------------------------+
//| Check for Pattern 4.                                             |
//+------------------------------------------------------------------+
bool CSignalGator_AD::IsPattern_4(ENUM_POSITION_TYPE T)
{  if
   (
      clrGreen == Color_UP(m_gator, X() + 1) &&
      clrRed == Color_LO(m_gator, X() + 1) &&
      clrRed == Color_UP(m_gator, X()) &&
      clrGreen == Color_LO(m_gator, X())
   )
   {  if
      (
         T == POSITION_TYPE_BUY &&
         Close(X()) > Close(X() + 1) &&
         Low(X() + 1) > Low(X()) &&
         AD(X()) > AD(X() + 1)
      )
      {  return(true);
      }
      else if
      (
         T == POSITION_TYPE_SELL &&
         Close(X()) < Close(X() + 1) &&
         High(X() + 1) < High(X()) &&
         AD(X()) < AD(X() + 1)
      )
      {  return(true);
      }
   }
   return(false);
}

弱気パターンも同様で、長期上昇トレンドが終焉に近づいた際に形成されます。ゲーターオシレーターは「捕食」の後に「満腹」フェーズに入り、上部・下部ヒストグラムのどちらかが緑から赤に変わり、顎/歯/唇のバッファが圧縮されつつあることを示します。価格は依然として高値付近にある場合がありますが、横ばいや小さな振れが目立ち始め、ゲーターの価格上昇に対する勢いが弱まっていることが分かります。同時に、A/Dラインは上昇が停止するか、わずかに上がる程度で、買いの勢いが衰え、買い手が積極的にラリーを押し上げていないことを示します。

この状況は、利益確定や単純な買い手の疲れによるものかもしれません。トレーダーは、追加のインジケーターで確認できれば、ショート準備としてこのサインを売りシグナルとして活用できます。トレンド方向における出来高とモメンタムの流れが逆転しつつあることが分かるためです。このパターンをテストすると、次のレポートが得られます。

r4

このパターンのテストでは、フォワード期間では横ばいにとどまりました。厳密に言えば、一定の有効性を示していますが、Pattern_2やPattern_1と比べるとパフォーマンスは劣ります。このシグナルパターンの強みは、鋭いダイバージェンス信号とは異なり、トレンドの終わりを穏やかに捉える点にあります。これは、取引管理に特に有用で、「いつ勝ちポジションを手仕舞うか」という問いに答える助けとなります。長期にわたる緑の連続後のゲーターの最初の赤バーは、変化が起きつつある強力な警告です。

これをA/Dオシレーターの横ばいや出来高の減少と組み合わせることで、トレンド方向を維持して持ち続けることは、利益の逓減しか生まないことが明確になります。トレンドの勢いと出来高の勢いは徐々に失速し、相場の振り回しや緩やかな反転が訪れる前兆となります。このため、急激な反転よりも早めに対応する余裕がトレーダーに与えられます。 


結論

ここまでで、ゲーターオシレーターとA/Dオシレーターを組み合わせて生成できる、合計10種類のシグナルパターンのうち、最初の5つを見てきました。このインジケーターの組み合わせは、出来高を意識したより高度なシグナル検出を可能にし、トレンドフォローや取引管理精度の向上に寄与します。前述の通り、両者の相互作用により多次元的なフィルタが提供され、モメンタムの確認、トレンドの疲弊の早期発見、そして単一インジケーターだけでは誤動作しやすい偽シグナルの回避が可能になります。

しかし、どんな方法も完璧ではありません。シグナルのタイミング、遅れたエントリー、出来高データの特性には依然として注意が必要です。基本的には、このインジケーターのペアリングは、MQL5ウィザード(初心者にも参考になる良いリソースです)を用いてEAを組み立てることで、トレンドや出来高だけでは捉えきれないニュアンスを加えた、体系的トレーダー向けの強力なツールキットとなります。Pattern_5~Pattern_9については次の記事で説明します。

名前 説明
WZ-77.mq5 ヘッダでインクルードファイルを示す、ウィザード作成EA
SignalWZ_77.mqh ウィザードでEAを組み立てるために使用されるカスタムシグナルクラスファイル

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

添付されたファイル |
WZ-77.mq5 (7.94 KB)
SignalWZ_77.mqh (50.12 KB)
最後のコメント | ディスカッションに移動 (2)
Dominic Michael Frehner
Dominic Michael Frehner | 11 8月 2025 において 17:16
こんにちは、@Stephen Njuki

記事をありがとうございます!M30タイムフレームでGBPJPYのどのインプットを使用しましたか?結果が再現できません。よろしくお願いします!
Silk Road Trading LLC
Ryan L Johnson | 11 8月 2025 において 21:21
Dominic Michael Frehner #:
こんにちは、@Stephen Njuki

記事をありがとうございます!M30タイムフレームでGBPJPYのどのインプットを使用しましたか?結果が再現できません。よろしくお願いします!

記事の中でGBPJPYに言及している文は以下の通りです:

「2024年をフォワードウォークテスト年として、2023年の30分足でGBPJPYのペアを使ってトレーニングします。

  1. FX市場はオフエクスチェンジ(店頭取引)であるため、各ブローカーディーラーは独自のデータフィードを提供しています。あなたが著者とまったく同じブローカー・ディーラーを持っている確率は低い。
  2. あなたは2023年に訓練を受け、2024年に前進したのですか?これが、著者の結果をほぼ再現するための最善の方法だろう。
  3. ここで重要なのは、著者が上記のように述べているように、自分の環境に従ってEAを訓練し、歩みを進めるかどうかは、おそらくあなた次第だということだ。これは一般的に、どのような既製のEAにも言えることです。
初心者からエキスパートへ:Reporting EA - ワークフローの設定 初心者からエキスパートへ:Reporting EA - ワークフローの設定
ブローカーは、多くの場合、あらかじめ定められたスケジュールに基づいて取引口座のレポートを定期的に提供します。これらの企業はAPI技術を通じて顧客の口座活動や取引履歴にアクセスできるため、取引パフォーマンスのレポートを代わりに生成することが可能です。同様に、MetaTrader 5ターミナルも詳細な取引履歴を保存しており、MQL5を利用することで完全にカスタマイズされたレポートの作成や、個別に設定した配信方法の定義が可能です。
取引システムの構築(第1回):定量的なアプローチ 取引システムの構築(第1回):定量的なアプローチ
多くのトレーダーは短期的なパフォーマンスに基づいて戦略を評価し、利益を生むシステムであっても早い段階で手放してしまうことがよくあります。しかし、長期的な収益性は、最適化された勝率とリスクリワードレシオ(RRR: Reward-to-Risk Ratio)によって形成されるポジティブな期待値、そして規律あるポジションサイジングに依存しています。これらの原則は、バックテストの結果をもとにPythonでモンテカルロシミュレーションをおこなうことで検証することができ、戦略が時間の経過とともに堅牢であるか、もしくは破綻する可能性が高いかを評価するうえで役立ちます。
MQL5で自己最適化エキスパートアドバイザーを構築する(第10回):行列分解 MQL5で自己最適化エキスパートアドバイザーを構築する(第10回):行列分解
行列分解は、データの特性を理解するために用いられる数学的手法です。行と列で整理された大規模な市場データに行列分解を適用することで、市場のパターンや特性を明らかにすることができます。行列分解は非常に強力なツールであり、本記事ではMetaTrader 5のターミナル内でMQL5 APIを活用し、市場データをより深く分析する方法を紹介します。
MQL5で他の言語の実用的なモジュールを実装する(第3回):Pythonのscheduleモジュール、強化版OnTimerイベント MQL5で他の言語の実用的なモジュールを実装する(第3回):Pythonのscheduleモジュール、強化版OnTimerイベント
Pythonのscheduleモジュールは、繰り返しタスクをスケジュールする簡単な方法を提供します。MQL5には組み込みの同等機能はありませんが、この記事ではMetaTrader 5でのタイムイベントの設定を容易にするために、類似のライブラリを実装します。