MT4 ParabolicSAR シグナル判定

投稿者: | 12月 28, 2016





MT4でのParabolicSARによるシグナル判定処理をご紹介します。

/*------------------------------------------------------
関数名   Signal_ParabolicSAR

内容     パラボリックエントリ判定

引数     なし
   
戻り値   1:買いシグナル、-1:売りシグナル

-------------------------------------------------------*/
extern string SIGNAL_AR_Parameters="---SIGNAL_SAR---";
extern double SIGNAL_SAR_STEP = 0.02;
extern double SIGNAL_SAR_MAXIMUM = 0.2;

int Signal_ParabolicSAR (){

   double SAR0 = iSAR(NULL, 0, SIGNAL_SAR_STEP, SIGNAL_SAR_MAXIMUM, 0);
   double SAR1 = iSAR(NULL, 0, SIGNAL_SAR_STEP, SIGNAL_SAR_MAXIMUM, 1);
   
   double Close0 = iClose(NULL, 0, 0);
   double Close1 = iClose(NULL, 0, 1);
      
   int rtn =0;

   // 買いシグナル
   //パラボリックが足の下に転換(上昇トレンドを示唆)
   if(SAR0 < Close0 && SAR1 > Close1){         
      rtn = 1;      
   }

   // 売りシグナル   
   //パラボリックが足の上に転換(下降トレンドを示唆)
   if(SAR0 > Close0 && SAR1 < Close1){
      rtn = -1;
   }

   return rtn;   
}

クロージング判定処理(決済)はシグナル判定処理の逆判定をします。

   //---------------------------------------------
   // パラボリックによる手仕舞い
   //---------------------------------------------
   exit_entry = Signal_ParabolicSAR ();   
   if(type == OP_SELL && exit_entry>0 ){   
      // クロージング処理
   }
   
   if(type == OP_BUY && exit_entry<0){   
      // クロージング処理
   }

[関連図書]