GMMA・グッピーのダウンロードと解説|MT4インジケーター


Guppy Multiple Moving AverageというMT4のインジケーターが欲しいです。

FXの不労所得だけで年収2000万を達成しました。
このお悩みに誠意をもって回答します。
この無料EAで不労所得が稼げます
累計テスト120年以上・リアル取引公開2020年~

このページでわかること・できること
MT4インジケーターGMMAをダウンロード
GMMAの使い方や計算方法について

GMMAのダウンロード
ここからインジケーターのダウンロードが可能。
ダウンロードするインジケーターファイルは.ex4ファイルとなる。
ファイルをMT4のインジケーターフォルダへ移動すれば使用可能だ。
GMMAのインストール
ダウンロードしたGMMAインジケーターはMT4のデータフォルダからindicatorsフォルダを探しファイルを移動する。
indicatorsフォルダにファイルを移動し、MT4を再起動するとインストールが完了する。
GMMAインジケーターとは?
Guppy Multiple Moving Average(GMMA)は、オーストラリアのトレーダーであるDaryl Guppyによって開発された技術分析ツールだ。このインジケーターは、複数の移動平均線を使用してトレンドの強さや方向性を評価し、トレンドの変化を予測するために設計されている。GMMAは主にトレンドフォロー型のトレーダーに利用される。
GMMAの構成
GMMAは以下の2つの移動平均線クラスターで構成されている。
- 短期移動平均線クラスター:
- 短期移動平均線は、価格の短期間の動きを反映する。
- 一般的に使用される期間は、3日、5日、8日、10日、12日、15日。
- これらの移動平均線は、トレーダーの短期的な市場の関心を反映している。
- 長期移動平均線クラスター:
- 長期移動平均線は、価格の長期間の動きを反映する。
- 一般的に使用される期間は、30日、35日、40日、45日、50日、60日。
- これらの移動平均線は、投資家の長期的な市場の関心を反映している。

簡単に言えば、短期MAの束と長期MAの束が色分けされて、視覚的にトレンドをわかりやすくさせているんですね。
GMMAの特徴と使い方

- トレンドの識別:
- 短期クラスターと長期クラスターの両方が平行に動いている場合、それは強いトレンドを示す。
- 短期クラスターが長期クラスターを上回っている場合、それは上昇トレンドを示す。
- 短期クラスターが長期クラスターを下回っている場合、それは下降トレンドを示す。
- トレンドの強さの評価:
- 短期クラスターと長期クラスターの間の距離が広い場合、トレンドは強いと判断される。
- 距離が狭い場合、トレンドは弱いか、トレンドが転換する可能性があると判断される。
- トレンド転換のシグナル:
- 短期クラスターが長期クラスターを上から下へクロスする場合、それは下降トレンドへの転換シグナルとなる。
- 短期クラスターが長期クラスターを下から上へクロスする場合、それは上昇トレンドへの転換シグナルとなる。
- エントリーとエグジットのタイミング:
- 短期クラスターが長期クラスターを上抜けたときは買いのエントリーシグナル。
- 短期クラスターが長期クラスターを下抜けたときは売りのエントリーシグナル。
- 逆にエグジットのタイミングとしても使用される。
GMMAのメリット
- トレンドの可視化:複数の移動平均線を使うことで、トレンドの強さと方向性が明確になる。
- トレンド転換の早期検出:短期移動平均線が早期に反応するため、トレンドの転換点を早期に検出するのに役立つ。
- シンプルな視覚的分析:複数の移動平均線を使っているため、チャート上でトレンドの状態を簡単に視覚的に把握できる。

わかりやすいので、かんたんに勝てそうな気がしてきます
GMMAのデメリット
- 遅延指標:移動平均線は過去の価格データに基づいて計算されるため、リアルタイムでの価格変動には遅延がある。
- レンジ相場でのパフォーマンス低下:トレンドが明確でないレンジ相場では、誤ったシグナルが発生しやすくなる。

エントリーの判断に使うのは危なそうですね
まとめ
GMMAは、トレンドの強さや方向性を評価するための強力なツールだ。短期と長期の移動平均線クラスターを使うことで、トレーダーはトレンドの状態を視覚的に確認し、エントリーやエグジットのタイミングを見極めることができる。しかし、移動平均線の遅延特性やレンジ相場でのパフォーマンス低下に注意する必要がある。他のテクニカル指標を併用するなどし、その有効性を高めることができる。
GMMAを使ったトレード
GMMAはトレンドの状況を視覚的に認識しやすくなっている。
トレードではその特性をいかして分析に利用したい。
ここでは、GMMAの特性をいかした思考を相場の状況ごとに分けて紹介する。
上昇トレンドと下降トレンド


上昇トレンドのGMMAは長期ラインが下、短期ラインが上で推移し、下降トレンドではその逆となる。
その特性で言えば短期ラインが上にある場面で買いポジションを、短期ラインが下にある場面で売りポジションを持てば良いことになるが、そう簡単でないことは言うまでもない。それは、MAクロスでのエントリーにはダマシがつきものだからだ。
ではどのようにしてGMMAをいかすのかと言えば、押し戻り判断への利用を推奨したい。
上記の画像では価格のきれいな押し戻りが確認できる。
短期ラインや、価格が長期を割らずV時(または逆V)にトレンド継続をしているポイントが見つかるはずだ。
トレンドに乗ることを目的とするのであれば、こういった押し戻りの場面でしっかりエントリーをしていきたい。
ラインがクロスする初動でエントリーできれば当然得られる利益も大きいが、前述した通り、クロスでのエントリーではダマシの確立が高まってしまう。
相場格言にもある通り「頭と尻尾はくれてやれ」という意識で、GMMAで確認できるトレンド継続のポイントに絞ったエントリーで流れについていく、そういったトレードはおすすめできる。
また、GMMAで確認できる戻しからのトレンドフォローも、平均足やオシレーター、上位足のトレンド方向など、フィルターを併用することでさらに精度を高めることもできるため、各自検証をしていただきたい。

GMMAはあくまでトレンド方向の確認に使用して、押しや戻りは別の指標で判断する、といった手法が効率よいということですね
トレンドが発生してない

トレンドが発生していない場合のGMMAはクロスを頻発し、長期と短期が近い状況にある。
こういった相場環境でトレンド初動を狙ったトレードを繰り返せば、損失を出し続けてしまうことになる。
トレンド発生時の解説でもお伝えした通り、MAクロスで初動を狙うことはおすすめできない。
MAを利用してトレードする場合、初動ではなくトレンドの継続に乗れるタイミングを計ることに利用したい。
逆に、GMMAが収束しているタイミングでレンジトレードを試みるという発想の切替は悪い考えではない。
そういった場合でも、オシレーターなどを併用してフィルタリングすると効果的だ。
また、監視チャートで収束していても、上位足でトレンドが発生している場合がある。
そういった場面では、上位足のトレンド方向に賭けて押し戻りでトレンドに乗っている方向でのエントリーも検討できる。
GMMAインジケーターのソースコード
//+------------------------------------------------------------------+
//| GMMA.mq4 |
//| Copyright 2024, FX-Bonus.net |
//| https://fx-bonus.net/ |
//+------------------------------------------------------------------+
#property copyright "Copyright 2024, FX-Bonus.net"
#property link "https://fx-bonus.net/"
#property version "1.00"
#property strict
#property indicator_chart_window
#property indicator_buffers 12
// デフォルトカラー
#property indicator_color1 Blue
#property indicator_color2 DodgerBlue
#property indicator_color3 MediumTurquoise
#property indicator_color4 DeepSkyBlue
#property indicator_color5 Aquamarine
#property indicator_color6 PaleTurquoise
#property indicator_color7 FireBrick
#property indicator_color8 MediumVioletRed
#property indicator_color9 Crimson
#property indicator_color10 Red
#property indicator_color11 OrangeRed
#property indicator_color12 PaleVioletRed
// 定数定義
#define SHORT_MA_COUNT 6
#define LONG_MA_COUNT 6
// インジケーターバッファ
double short_ma_buffers_0[], short_ma_buffers_1[], short_ma_buffers_2[];
double short_ma_buffers_3[], short_ma_buffers_4[], short_ma_buffers_5[];
double long_ma_buffers_0[], long_ma_buffers_1[], long_ma_buffers_2[];
double long_ma_buffers_3[], long_ma_buffers_4[], long_ma_buffers_5[];
//+------------------------------------------------------------------+
//| カスタムインジケーターの初期化関数 |
//+------------------------------------------------------------------+
int OnInit()
{
// バッファを設定
SetIndexBuffer(0, short_ma_buffers_0);
SetIndexBuffer(1, short_ma_buffers_1);
SetIndexBuffer(2, short_ma_buffers_2);
SetIndexBuffer(3, short_ma_buffers_3);
SetIndexBuffer(4, short_ma_buffers_4);
SetIndexBuffer(5, short_ma_buffers_5);
SetIndexBuffer(6, long_ma_buffers_0);
SetIndexBuffer(7, long_ma_buffers_1);
SetIndexBuffer(8, long_ma_buffers_2);
SetIndexBuffer(9, long_ma_buffers_3);
SetIndexBuffer(10, long_ma_buffers_4);
SetIndexBuffer(11, long_ma_buffers_5);
// スタイルと色を設定
SetIndexStyle(0, DRAW_LINE, STYLE_SOLID, 1, Blue);
SetIndexStyle(1, DRAW_LINE, STYLE_SOLID, 1, DodgerBlue);
SetIndexStyle(2, DRAW_LINE, STYLE_SOLID, 1, MediumTurquoise);
SetIndexStyle(3, DRAW_LINE, STYLE_SOLID, 1, DeepSkyBlue);
SetIndexStyle(4, DRAW_LINE, STYLE_SOLID, 1, Aquamarine);
SetIndexStyle(5, DRAW_LINE, STYLE_SOLID, 1, PaleTurquoise);
SetIndexStyle(6, DRAW_LINE, STYLE_SOLID, 1, FireBrick);
SetIndexStyle(7, DRAW_LINE, STYLE_SOLID, 1, MediumVioletRed);
SetIndexStyle(8, DRAW_LINE, STYLE_SOLID, 1, Crimson);
SetIndexStyle(9, DRAW_LINE, STYLE_SOLID, 1, Red);
SetIndexStyle(10, DRAW_LINE, STYLE_SOLID, 1, OrangeRed);
SetIndexStyle(11, DRAW_LINE, STYLE_SOLID, 1, PaleVioletRed);
// インジケーターの名前を設定
IndicatorShortName("Guppy Multiple Moving Average with Default Colors");
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| カスタムインジケーターの計算関数 |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
const int prev_calculated,
const datetime &time[],
const double &open[],
const double &high[],
const double &low[],
const double &close[],
const long &tick_volume[],
const long &volume[],
const int &spread[])
{
int short_ma_periods[SHORT_MA_COUNT] = {3, 5, 8, 10, 12, 15};
int long_ma_periods[LONG_MA_COUNT] = {30, 35, 40, 45, 50, 60};
// 短期移動平均の計算
for(int i = 0; i < SHORT_MA_COUNT; i++)
{
for(int j = prev_calculated; j < rates_total; j++)
{
double ma_value = iMA(NULL, 0, short_ma_periods[i], 0, MODE_EMA, PRICE_CLOSE, j);
switch(i)
{
case 0: short_ma_buffers_0[j] = ma_value; break;
case 1: short_ma_buffers_1[j] = ma_value; break;
case 2: short_ma_buffers_2[j] = ma_value; break;
case 3: short_ma_buffers_3[j] = ma_value; break;
case 4: short_ma_buffers_4[j] = ma_value; break;
case 5: short_ma_buffers_5[j] = ma_value; break;
}
}
}
// 長期移動平均の計算
for(int i = 0; i < LONG_MA_COUNT; i++)
{
for(int j = prev_calculated; j < rates_total; j++)
{
double ma_value = iMA(NULL, 0, long_ma_periods[i], 0, MODE_EMA, PRICE_CLOSE, j);
switch(i)
{
case 0: long_ma_buffers_0[j] = ma_value; break;
case 1: long_ma_buffers_1[j] = ma_value; break;
case 2: long_ma_buffers_2[j] = ma_value; break;
case 3: long_ma_buffers_3[j] = ma_value; break;
case 4: long_ma_buffers_4[j] = ma_value; break;
case 5: long_ma_buffers_5[j] = ma_value; break;
}
}
}
return(rates_total);
}
//+------------------------------------------------------------------+
ソースコードを詳細に解説
1.プロパティの設定
#property strict
#property indicator_chart_window
#property indicator_buffers 12
#property indicator_color1 Blue
#property indicator_color2 DodgerBlue
#property indicator_color3 MediumTurquoise
#property indicator_color4 DeepSkyBlue
#property indicator_color5 Aquamarine
#property indicator_color6 PaleTurquoise
#property indicator_color7 FireBrick
#property indicator_color8 MediumVioletRed
#property indicator_color9 Crimson
#property indicator_color10 Red
#property indicator_color11 OrangeRed
#property indicator_color12 PaleVioletRed
#property strict
:厳密なコンパイルモードを指定。これにより、コードのエラーや警告が厳しくチェックされる。#property indicator_chart_window
:インジケーターがチャートウィンドウに表示されることを指定。#property indicator_buffers 12
:インジケーターが12個のバッファを使用することを指定。#property indicator_color1
から#property indicator_color12
:各バッファのデフォルトカラーを設定。
2. 定数とバッファの宣言
#define SHORT_MA_COUNT 6
#define LONG_MA_COUNT 6
double short_ma_buffers_0[], short_ma_buffers_1[], short_ma_buffers_2[];
double short_ma_buffers_3[], short_ma_buffers_4[], short_ma_buffers_5[];
double long_ma_buffers_0[], long_ma_buffers_1[], long_ma_buffers_2[];
double long_ma_buffers_3[], long_ma_buffers_4[], long_ma_buffers_5[];
SHORT_MA_COUNT
とLONG_MA_COUNT
:短期と長期の移動平均の数を定義する。- 各バッファは、短期と長期の移動平均を保存するために使用される。
3. OnInit関数
int OnInit()
{
SetIndexBuffer(0, short_ma_buffers_0);
SetIndexBuffer(1, short_ma_buffers_1);
SetIndexBuffer(2, short_ma_buffers_2);
SetIndexBuffer(3, short_ma_buffers_3);
SetIndexBuffer(4, short_ma_buffers_4);
SetIndexBuffer(5, short_ma_buffers_5);
SetIndexBuffer(6, long_ma_buffers_0);
SetIndexBuffer(7, long_ma_buffers_1);
SetIndexBuffer(8, long_ma_buffers_2);
SetIndexBuffer(9, long_ma_buffers_3);
SetIndexBuffer(10, long_ma_buffers_4);
SetIndexBuffer(11, long_ma_buffers_5);
SetIndexStyle(0, DRAW_LINE, STYLE_SOLID, 1, Blue);
SetIndexStyle(1, DRAW_LINE, STYLE_SOLID, 1, DodgerBlue);
SetIndexStyle(2, DRAW_LINE, STYLE_SOLID, 1, MediumTurquoise);
SetIndexStyle(3, DRAW_LINE, STYLE_SOLID, 1, DeepSkyBlue);
SetIndexStyle(4, DRAW_LINE, STYLE_SOLID, 1, Aquamarine);
SetIndexStyle(5, DRAW_LINE, STYLE_SOLID, 1, PaleTurquoise);
SetIndexStyle(6, DRAW_LINE, STYLE_SOLID, 1, FireBrick);
SetIndexStyle(7, DRAW_LINE, STYLE_SOLID, 1, MediumVioletRed);
SetIndexStyle(8, DRAW_LINE, STYLE_SOLID, 1, Crimson);
SetIndexStyle(9, DRAW_LINE, STYLE_SOLID, 1, Red);
SetIndexStyle(10, DRAW_LINE, STYLE_SOLID, 1, OrangeRed);
SetIndexStyle(11, DRAW_LINE, STYLE_SOLID, 1, PaleVioletRed);
IndicatorShortName("Guppy Multiple Moving Average with Default Colors");
return(INIT_SUCCEEDED);
}
SetIndexBuffer
関数は、各バッファをインジケーターのバッファとして設定します。SetIndexStyle
関数は、各バッファのスタイル(線の種類、太さ、色)を設定します。IndicatorShortName
関数は、インジケーターの名前を設定します。
4. OnCalculate関数
int OnCalculate(const int rates_total,
const int prev_calculated,
const datetime &time[],
const double &open[],
const double &high[],
const double &low[],
const double &close[],
const long &tick_volume[],
const long &volume[],
const int &spread[])
{
int short_ma_periods[SHORT_MA_COUNT] = {3, 5, 8, 10, 12, 15};
int long_ma_periods[LONG_MA_COUNT] = {30, 35, 40, 45, 50, 60};
for(int i = 0; i < SHORT_MA_COUNT; i++)
{
for(int j = prev_calculated; j < rates_total; j++)
{
double ma_value = iMA(NULL, 0, short_ma_periods[i], 0, MODE_EMA, PRICE_CLOSE, j);
switch(i)
{
case 0: short_ma_buffers_0[j] = ma_value; break;
case 1: short_ma_buffers_1[j] = ma_value; break;
case 2: short_ma_buffers_2[j] = ma_value; break;
case 3: short_ma_buffers_3[j] = ma_value; break;
case 4: short_ma_buffers_4[j] = ma_value; break;
case 5: short_ma_buffers_5[j] = ma_value; break;
}
}
}
for(int i = 0; i < LONG_MA_COUNT; i++)
{
for(int j = prev_calculated; j < rates_total; j++)
{
double ma_value = iMA(NULL, 0, long_ma_periods[i], 0, MODE_EMA, PRICE_CLOSE, j);
switch(i)
{
case 0: long_ma_buffers_0[j] = ma_value; break;
case 1: long_ma_buffers_1[j] = ma_value; break;
case 2: long_ma_buffers_2[j] = ma_value; break;
case 3: long_ma_buffers_3[j] = ma_value; break;
case 4: long_ma_buffers_4[j] = ma_value; break;
case 5: long_ma_buffers_5[j] = ma_value; break;
}
}
}
return(rates_total);
}
OnCalculate
関数は、インジケーターのメイン計算ルーチン。rates_total
は、利用可能な全バーの数を表す。prev_calculated
は、前回の計算で処理されたバーの数を表す。short_ma_periods
とlong_ma_periods
は、短期および長期の移動平均の期間を格納する配列。for
ループを使用して、各移動平均を計算し、対応するバッファに値を格納する。iMA
関数は、移動平均を計算するMQL4の組み込み関数。- 計算された移動平均値は、
switch
文を使用して適切なバッファに割り当てられる。
MT4インジケーターまとめ
-
【無料】スキャルピングトレードのサインがでるMT4インジケーター特集【最新23選】
-
MT4からインジケーターを無料でダウンロード|1350種類から検索
-
Aroonのダウンロードと解説|MT4インジケーター
-
【無料】マルチタイムフレームのMT4インジケーター特集【最新版】
-
Schaff Trend Cycleのダウンロードと解説|MT4インジケーター
-
【MT4】スキャルピングで使えるオシレーター解説【無料インジケーター】
-
MT4【ZigZag】ジグザグの無料インジケーター特集【最新版】
-
BSIのダウンロードと解説|MT4インジケーター
-
平均足をサブウィンドウに表示するMT4インジケーター
-
GMMA・グッピーのダウンロードと解説|MT4インジケーター
-
【MT4】ピボットのインジケーター特集【無料】
-
RCIインジケーターのダウンロードと解説|MT4
-
【MT4】高値と安値がわかる無料インジケーター特集|High Low【海外FX】
-
TEMAのダウンロードと解説|MT4インジケーター
-
Donchian channelのダウンロードと解説|MT4インジケーター
-
ボリンジャーバンドをサブウインドウに表示するMT4インジケーター
-
市場の時間をチャートに表示するMT4インジケーター|MarketCrock
-
TMAのダウンロードと解説|MT4インジケーター
-
SuperTrendスーパートレンドのダウンロードと解説|MT4インジケーター
-
TTFのダウンロードと解説|MT4インジケーター
-
TSIのダウンロードと解説|MT4インジケーター
-
PivotPointsピボットポイントのダウンロードと解説|MT4インジケーター
-
平均足Smoothdのダウンロードと解説|MT4インジケーター
-
T3のダウンロードと解説|MT4インジケーター
まとめ
GMMA (Guppy Multiple Moving Average) は、複数の短期・長期移動平均線を使用し、トレンドの強さや方向性を視覚的に評価するインジケーターである。主にトレンド相場で有効であり、エントリーやエグジットのタイミング判断に使われる。遅延指標の特性から、レンジ相場では誤シグナルが発生しやすいため、他の指標との併用が推奨される。特に、押し戻りを狙ったトレードでその有効性を発揮する。