Navigation:Home > Content >

Demark.mq4

Time: 2011-04-01 | Download file:Demark.mq4

/*
              "Описание индикатора Т.ДеМарка " 
Во   вногие   пакеты   технического  включен  индикатор,  предложенный
Т.ДеМарком.  Близкий  по  смыслу  к  DMI,  но более просто вычисляемый
(DEMARK  в  отличие  от ADX, учитывает только экстремальные цены, а не
цены   закрытия)  он  дает  наглядные  сигналы  и  наравне  с  другими
осцилляторами  может  быть  применен  для  построения торговых систем.
Определение индикатора: если сегодняшний high выше вчерашнего high, то
аккумулируем  соответствующие  разности,  если  сегодняшний  low  ниже
вчерашнего,  то отдельно аккумулируем соответствующие разности (и те и
другие  -  положительные  величины).  Количество  свечей n, по которым
происходит    аккумулирование    (усреднение),   является   параметром
индикатора,  равного дроби: DEMARK = (накопленные за n свечей разности
high  -  high[-1]) / (  (накопленные  за  n  свечей  разности   high -
high[-1])  +  (накопленные  за  n свечей разности low[-1] - low) ) При
вызове   индикатора  он  запрашивает  длину  окна  усреденения  n;  по
умолчанию  предлагается  значение  n  = 13. Чтение этого индикатора во
многом  аналогично  RSI:  он  также образует области перекупленности и
перепроданности,  часто показывает хорошие дивергенции. В то же время,
во  вмогих  ситуациях  он  может  иметь  преимущества, так  как  более 
полно учитывает структуру свечи.
                © 1997-2005, «FOREX CLUB»
     http://www.fxclub.org/academy_lib_article/article17.html
*/
//+SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS+ 
//|                                                       Demark.mq4 | 
//|                           Copyright © 2005,     Nikolay Kositsin | 
//|                                   Khabarovsk, violet@mail.kht.ru | 
//+SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS+ 
#property copyright "Nikolay Kositsin"
#property link     "violet@mail.kht.ru" 
#property indicator_separate_window
#property indicator_minimum 0
#property indicator_maximum 1
#property indicator_buffers 1
#property indicator_color1 DodgerBlue
#property indicator_level1 0.8
#property indicator_level2 0.2
//---- input parameters
extern int DemarkPeriod=13;
//---- buffers
double DemarkBuffer[];
double HighBuffer[];
double LowBuffer[];
double MinHigh,MinLow,Up,Down,Demark; 
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
   string short_name;
//---- 2 additional buffers are used for counting.
   IndicatorBuffers(3);
   SetIndexBuffer(0, DemarkBuffer);
   SetIndexBuffer(1, HighBuffer  );
   SetIndexBuffer(2, LowBuffer   );
//---- indicator line
   SetIndexStyle(0,DRAW_LINE);
//---- name for DataWindow and indicator subwindow label
   short_name="Demark("+DemarkPeriod+")";
   IndicatorShortName(short_name);
   SetIndexLabel(0,short_name);

   return(0);
  }
//+------------------------------------------------------------------+
//| Demark                                                           |
//+------------------------------------------------------------------+

int start()
  {
//----
   int limit;
   int counted_bars=IndicatorCounted();
//---- check for possible errors
   if(counted_bars<0) return(-1);
//---- last counted bar will be recounted
   if(counted_bars>0) counted_bars--;
   limit=Bars-counted_bars;
//---- 
   for(int i=0; i0) HighBuffer[i]=MinHigh; else{MinHigh=0; HighBuffer[i]=0;}
            if(MinLow >0) LowBuffer [i]=MinLow;  else{MinLow =0; LowBuffer [i]=0;}            
           }          
   for(int k=0; k        

Recommend