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){
// クロージング処理
}
[関連図書]