【MQL4勉強プログラミング】EAやインジケーターの開発でゲイターオシレーターを使う方法!

iGator()関数は、ゲイターオシレーターの値を取得するために使用します。

ゲイターオシレーターは、短期・中期・長期の移動平均線を現在の位置よりも右方向にずらして表示させることで、相場のトレンドの発生の有無を判断するインジケーターであるアリゲーター(カオスアリゲーターともいいます。)における、各々の移動平均線の差をとったものです。

iGator()関数は、以下のように定義されています。

double iGator(
string symbol,
int timeframe,
int jaw_period,
int jaw_shift,
int teeth_period,
int teeth_shift,
int lips_period,
int lips_shift,
int ma_method,
int applied_price,
int mode,
int shift
);

各引数の意味は、以下のとおりです。

  • string symbol
    ゲイターオシレーターの値を計算する通貨ペア名を指定します。
    通貨ペア名は、「気配値表示ウィンドウ」に表示されているとおりに記述します。
    特定の通貨ペア名を指定せず、EA等を適用したチャートの通貨ペアのゲイターオシレーターの値を取得したい場合は、「NULL」と記述します。
  • int timeframe
    以下の表に従って、ゲイターオシレーターの値を計算する時間軸を指定します。

    timeframeの種類

    種 類
    定 数
    内 容
    PERIOD_CURRENT
    現在の時間足
    PERIOD_M1
    1分足
    PERIOD_M5
    5分足
    PERIOD_M15
    15
    15分足
    PERIOD_M30
    30
    30分足
    PERIOD_H1
    60
    1時間足
    PERIOD_H4
    240
    4時間足
    PERIOD_D1
    1440
    日 足
    PERIOD_W1
    10080
    週 足
    PERIOD_MN1
    43200
    月 足
  • int jaw_period
    長期移動平均線の値を計算する期間を指定します。
    通常は「13」です。
  • int jaw_shift
    長期移動平均線の表示を右方向にシフト(ずらす)するバーの個数を指定します。
    通常は「8」です。
  • int teeth_period
    中期移動平均線の値を計算する期間を指定します。
    通常は「8」です。
  • int teeth_shift
    中期移動平均線の表示を右方向にシフト(ずらす)するバーの個数を指定します。
    通常は「5」です。
  • int lips_period
    短期移動平均線の値を計算する期間を指定します。
    通常は「5」です。
  • int lips_shift
    短期移動平均線の表示を右方向にシフト(ずらす)するバーの個数を指定します。
    通常は「3」です。
  • int ma_method
    以下の表に従って、計算する移動平均線の種類を指定します。

    移動平均線の種類

    種 類
    定数
    内 容
    MODE_SMA
    単純移動平均線
    MODE_EMA
    指数移動平均線
    MODE_SMMA
    平滑移動平均線
    MODE_LWMA
    線形加重移動平均線

    通常は「平滑移動平均線」です。

  • int applied_price
    以下の表に従って、移動平均線の値の計算に使用する価格データを指定します。

    計算に使用する価格データの種類

    種 類
    定数
    内 容
    PRICE_CLOSE
    終 値
    PRICE_OPEN
    始 値
    PRICE_HIGH
    高 値
    PRICE_LOW
    安 値
    PRICE_MEDIAN
    中央値

    (高値+安値)÷2
    PRICE_TYPICAL
    代表値

    (高値+安値+終値)÷3
    PRICE_WEIGHTED
    加重終値

    (高値+安値+終値+終値)÷4

    通常は「中央値」です。

  • int mode
    ライン番号を指定します。
    「中期移動平均線と長期移動平均線の差」の値を取得したい場合は「1」と記述します。
    「短期移動平均線と中期移動平均線の差」の値を取得したい場合は「2」と記述します。
  • int shift
    ゲイターオシレーターの値を取得したいバーの位置を指定します。
    ゲイターオシレーターの値を取得したいバーが現在のバーであれば「0」、1本前のバーであれば「1」、2本前のバーであれば「2」……と記述します。

注意点

ゲイターオシレーターは、「中期移動平均線と長期移動平均線の差」を表すヒストグラム(「0」ラインを境にして上方に表示される)と、「短期移動平均線と中期移動平均線の差」を表すヒストグラム(「0」ラインを境にして下方に表示される)で表示されます。

具体例

1本前のゲイターオシレーターの「中期移動平均線と長期移動平均線の差」の値を取得したい場合は、以下のように記述します。


double Upper_Value_1
= iGator(NULL,0,13,8,8,5,5,3,MODE_SMMA,
         PRICE_MEDIAN,1,1);