t3_adx_+di_-di_burst_v2






//+-------------------------------------------------------------------------+
//| t3_adx_+di_-di_burst.mq4                                                |
//| Copyright © 2005,                                                       |
//| http://finance.groups.yahoo.com/group/MetaTrader_Experts_and_Indicators/|
//+-------------------------------------------------------------------------+
#property copyright "Copyright © 2005,"
#property link      "http://finance.groups.yahoo.com/group/MetaTrader_Experts_and_Indicators/"
//----
#property indicator_separate_window
#property indicator_buffers 2
#property indicator_color1 LawnGreen
#property indicator_color2 Red
#property indicator_level1 0
//-----
extern int adxPeriods=10;
extern int T3_Period=10;
extern double b=-0.382;
//----
double MapBuffer[];
double e1,e2,e3,e4,e5,e6;
double c1,c2,c3,c4;
double n,w1,w2,b2,b3;
double MapBuffer1[];
double ae1,ae2,ae3,ae4,ae5,ae6;
double ac1,ac2,ac3,ac4;
double an,aw1,aw2,ab2,ab3;
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
//---- indicators setting
   SetIndexStyle(0,DRAW_LINE,STYLE_SOLID,1,LawnGreen);
   SetIndexStyle(1,DRAW_LINE,STYLE_SOLID,1,Red);
   IndicatorDigits(MarketInfo(Symbol(),MODE_DIGITS));
   IndicatorShortName("t3_adx_+di_-di_burst "+T3_Period);
   SetIndexBuffer(0,MapBuffer);
   SetIndexBuffer(1,MapBuffer1);
//---- variable reset
   e1=0; e2=0; e3=0; e4=0; e5=0; e6=0;
   c1=0; c2=0; c3=0; c4=0;
   n=0;
   w1=0; w2=0;
   b2=0; b3=0;
   b2=b*b;
   b3=b2*b;
   c1=-b3;
   c2=(3*(b2+b3));
   c3=-3*(2*b2+b+b3);
   c4=(1+3*b+b3+3*b2);
   n=T3_Period;
//----
   if (n<1) n=1;
   n=1 + (0.5*(n-1));
   w1=2/(n + 1);
   w2=1 - w1;
//----
   ae1=0; ae2=0; ae3=0; ae4=0; ae5=0; ae6=0;
   ac1=0; ac2=0; ac3=0; ac4=0;
   an=0;
   aw1=0; aw2=0;
   ab2=0; ab3=0;
   ab2=b*b;
   ab3=ab2*b;
   ac1=-ab3;
   ac2=(3*(ab2+ab3));
   ac3=-3*(2*ab2+b+ab3);
   ac4=(1+3*b+ab3+3*ab2);
   an=T3_Period;
//----
   if (an<1) an=1;
   an=1 + (0.5*(an-1));
   aw1=2/(an + 1);
   aw2=1 - aw1;
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {
   int limit=2000;
//---- indicator calculation
   for(int i=limit; i>=0; i--)
     {
      e1=((w1*(iADX(Symbol(),0,adxPeriods,PRICE_CLOSE,MODE_PLUSDI,i)-iADX(Symbol(),0,adxPeriods,PRICE_CLOSE,MODE_PLUSDI,i+1))) + w2*e1);
      e2=((w1*e1) + w2*e2);
      e3=((w1*e2) + w2*e3);
      e4=((w1*e3) + w2*e4);
      e5=((w1*e4) + w2*e5);
      e6=((w1*e5) + w2*e6);
//----
      MapBuffer[i]=((((c1*e6) + c2*e5) + c3*e4) + c4*e3)*1000;
//----
      ae1=((aw1*(iADX(Symbol(),0,adxPeriods,PRICE_CLOSE,MODE_MINUSDI,i)-iADX(Symbol(),0,adxPeriods,PRICE_CLOSE,MODE_MINUSDI,i+1))) + aw2*ae1);
      ae2=((aw1*ae1) + aw2*ae2);
      ae3=((aw1*ae2) + aw2*ae3);
      ae4=((aw1*ae3) + aw2*ae4);
      ae5=((aw1*ae4) + aw2*ae5);
      ae6=((aw1*ae5) + aw2*ae6);
//----
      MapBuffer1[i]=((((ac1*ae6) + ac2*ae5) + ac3*ae4) + ac4*ae3)*1000;
     }
//----
   return(0);
  }
//+------------------------------------------------------------------+



Sample





Analysis



Market Information Used:



Indicator Curves created:

Implements a curve of type DRAW_LINE


Indicators Used:

Movement directional index


Custom Indicators Used:

Order Management characteristics:

Other Features: