【MQL4勉強プログラミング】EAやインジケーターの開発でパラボリックSARを使用する方法!

iSAR()関数は、パラボリックSAR(Stop & Reverse)の値を取得するために使用します。

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

double iSAR(
string symbol,
int timeframe,
double step,
double maximum,
int shift
);

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

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

    種 類
    定 数
    内 容
    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
    月 足
  • double step
    パラボリックSARの値を算出するために使用する加速因子(=AF:Acceleration Factor)の増加単位を指定します。
    通常は「0.02」です。
    なお、この値を大きくするほどパラボリックSARは値動きに対して敏感に反応します。
  • double maximum
    パラボリックSARの値を算出するために使用する加速因子(=AF:Acceleration Factor)の最大値を指定します。
    通常は「0.2」です。
    なお、この値を大きくするほどパラボリックSARは値動きに対して敏感に反応します。
  • int shift
    パラボリックSARの値を取得したいバーの位置を指定します。
    パラボリックSARの値を取得したいバーが現在のバーであれば「0」、1本前のバーであれば「1」、2本前のバーであれば「2」……と記述します。

具体例

2本前のバーのパラボリックSARの値が2本前のバーの高値よりも大きく、かつ1本前のバーのパラボリックSARの値が1本前のバーの安値よりも小さければ、買いエントリーしたい場合は、以下のように記述します。


double SAR_1 = iSAR(NULL,0,0.2,0.02,1);
double SAR_2 = iSAR(NULL,0,0.2,0.02,2);

if(SAR_2 > High[2] && SAR_1 < Low[1])
  {
   int Ticket
   = OrderSend(Symbol(),OP_BUY,0.1,Ask,10,0,0,
               NULL,1515,0,Magenta);
  }
  • High[]の詳細については「こちら」を参照してください。
  • Low[]の詳細については「こちら」を参照してください。
  • OrderSend()関数の詳細については「こちら」を参照してください。
  • Symbol()関数の詳細については「こちら」を参照してください。
  • Askの詳細については「こちら」を参照してください。