MACD_color_new





/*

*********************************************************************
          
                            MACD Color
                   Copyright © 2006  Akuma99
                  http://www.beginnertrader.com/  

       For help on this indicator, tutorials and information 
               visit http://www.beginnertrader.com/
                  
*********************************************************************

*/

#property  copyright "Copyright © 2006, Akuma99."
#property  link      "http://www.beginnertrader.com/"

#property  indicator_separate_window
#property  indicator_buffers 6
#property  indicator_color1  Red
#property  indicator_color2  LimeGreen
#property  indicator_color3  Red
#property  indicator_color4  LimeGreen
#property  indicator_color5  Blue
#property  indicator_color6  Black

extern int FastEMA=12;
extern int SlowEMA=26;
extern int SignalSMA=9;

double     ind_buffer1[];
double     ind_buffer2[];
double     ind_buffer1b[];
double     ind_buffer2b[];
double     ind_buffer3[];
double     ind_buffer4[];

double     b[999999];

int init() {

   SetIndexStyle(0,DRAW_HISTOGRAM,STYLE_SOLID,2,indicator_color1);
   SetIndexStyle(1,DRAW_HISTOGRAM,STYLE_SOLID,2,indicator_color2);
   SetIndexStyle(2,DRAW_HISTOGRAM,STYLE_SOLID,2,indicator_color3);
   SetIndexStyle(3,DRAW_HISTOGRAM,STYLE_SOLID,2,indicator_color4);
   SetIndexStyle(4,DRAW_LINE,EMPTY,1,indicator_color5);
   SetIndexStyle(5,DRAW_LINE,EMPTY,1,indicator_color6);
   SetIndexBuffer(0,ind_buffer1);
   SetIndexBuffer(1,ind_buffer2);
   SetIndexBuffer(2,ind_buffer1b);
   SetIndexBuffer(3,ind_buffer2b);
   SetIndexBuffer(4,ind_buffer3);
   SetIndexBuffer(5,ind_buffer4);
   
   IndicatorDigits(MarketInfo(Symbol(),MODE_DIGITS)+1);
   
   return(0);

}

int start(){
   
   int limit;
   int counted_bars=IndicatorCounted();

   if(counted_bars<0) return(-1);

   if(counted_bars>0) counted_bars--;
   limit=Bars-counted_bars;

   for(int i=limit; i>=0; i--) {
      
      b[i] = iMA(NULL,0,FastEMA,0,MODE_EMA,PRICE_CLOSE,i)-iMA(NULL,0,SlowEMA,0,MODE_EMA,PRICE_CLOSE,i);
      ind_buffer1[i]=iMA(NULL,0,FastEMA,0,MODE_EMA,PRICE_CLOSE,i)-iMA(NULL,0,SlowEMA,0,MODE_EMA,PRICE_CLOSE,i);
      
      clearBuffers(i);
      
      if (b[i] < 0 ) {
         if (b[i] > b[i+1]) {
            ind_buffer1[i] = b[i];
            ind_buffer1b[i] = 0;
         } else if (b[i] < b[i+1]) {
            ind_buffer1b[i] = b[i];
            ind_buffer1[i] = 0;
         }
      } else if (b[i] > 0) {
          if (b[i] < b[i+1]) {
            ind_buffer2[i] = b[i];
            ind_buffer2b[i] = 0;
         } else if (b[i] > b[i+1]) {
            ind_buffer2b[i] = b[i];
            ind_buffer2[i] = 0;
         }
      }
      
      ind_buffer3[i]=iMA(NULL,0,FastEMA,0,MODE_EMA,PRICE_CLOSE,i)-iMA(NULL,0,SlowEMA,0,MODE_EMA,PRICE_CLOSE,i);
      
   }
   
   for(i=0; i<limit; i++) {
         ind_buffer4[i]=iMAOnArray(ind_buffer3,Bars,SignalSMA,0,MODE_SMA,i);
      }

   return(0);
   
}

void clearBuffers (int i) {
         
      ind_buffer1[i] = NULL;
      ind_buffer1b[i] = NULL;
      ind_buffer2[i] = NULL;
      ind_buffer2b[i] = NULL;
         
}



Sample





Analysis



Market Information Used:



Indicator Curves created:

Implements a curve of type DRAW_HISTOGRAM
Implements a curve of type DRAW_LINE


Indicators Used:

Moving average indicator


Custom Indicators Used:

Order Management characteristics:

Other Features: