Damiani フィルタ(関数版:MetaTrader4用)のソース

公開されているインディケーター Damiani_volatmeter のソースより抜き出して、私が関数版に書き直したものがこちらです。

ご自分の EA にお使いください。

戻り値はトレンド相場のとき1、レンジ相場のとき0です。

//+------------------------------------------------------------------+
//            Damiani volatmeter 関数版 終値を使用
//
// 戻り値はトレンド相場のとき1、レンジ相場のとき0
//+------------------------------------------------------------------+

//---- input parameters
extern int       Viscosity=13;
extern int       Sedimentation=50;
extern double    Threshold_level=1.3;
extern bool      lag_supressor=true;

double   lag_s_K=0.5;
double   s0 = 0; 
double   s1= 0;
double   s2 = 0;
double   s3 = 0;
double   vol=0;
double t=Threshold_level;

int damiani_f()
{

      double sa=iATR(NULL,0,Viscosity,1) ;
      double ia = iATR(NULL,0,Sedimentation,1) ;
      if(lag_supressor){
         if (ia == 0) vol = 1.0 ;
         else vol= sa/ia + lag_s_K*(s1-s3) ;   
      }else{
         if (ia == 0) vol = 1.0 ;
         else vol= sa/ia ;   
      }

      double anti_thres=iStdDev(NULL,0,Viscosity,0,MODE_LWMA,PRICE_TYPICAL,1) ;

      double isd = iStdDev(NULL,0,Sedimentation,0,MODE_LWMA,PRICE_TYPICAL,1) ;
      if (isd == 0) anti_thres = 1.0 ;
      else anti_thres = anti_thres/isd ;

      t=t-anti_thres;

      s3 = s2; s2 = s1; s1= s0; 
      s0 = vol;

      if (vol>t){
      	return(1);
      }else{
      	return(0);
      }

}

###

コメントを残す

メールアドレスが公開されることはありません。 ※ が付いている欄は必須項目です