RAVI





//+------------------------------------------------------------------+
//|                                                         RAVI.mq4 |
//|                              Copyright © 2009, Maxim Kovalevskiy |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2009, Maxim Kovalevskiy "

#property  indicator_separate_window
#property  indicator_buffers 3
#property  indicator_color1  Gray
#property  indicator_color2  Green
#property  indicator_color3  Red

#property  indicator_level1  0.3
#property  indicator_level2  -0.3

double     ExtBuffer0[];
double     ExtBuffer1[];
double     ExtBuffer2[];

//---- indicator parameters 
extern int Period1=7; 
extern int Period2=65; 

//+------------------------------------------------------------------+ 
//| Custom indicator initialization function                         | 
//+------------------------------------------------------------------+ 
int init() 
  { 

   SetIndexStyle(0,DRAW_HISTOGRAM);
   SetIndexStyle(1,DRAW_HISTOGRAM);
   SetIndexStyle(2,DRAW_HISTOGRAM);

   SetIndexBuffer(0,ExtBuffer0);
   SetIndexBuffer(1,ExtBuffer1);
   SetIndexBuffer(2,ExtBuffer2);

   IndicatorShortName("RAVI");
//---- initialization done
   return(0);
  } 
//+------------------------------------------------------------------+ 
//| Custor indicator deinitialization function                       | 
//+------------------------------------------------------------------+ 
int deinit() 
  { 
//---- TODO: add your code here 
    
//---- 
   return(0); 
  } 
//+------------------------------------------------------------------+ 
//| Custom indicator iteration function                              | 
//+------------------------------------------------------------------+ 
int start() 
  { 
   double prev, current, SMA1, SMA2;
   int up = 0;
   
   for(int i = 0; i <= Bars; i++)
   { 
      SMA1=iMA(NULL,0,Period1,0,MODE_SMA,PRICE_CLOSE,i); 
      SMA2=iMA(NULL,0,Period2,0,MODE_SMA,PRICE_CLOSE,i); 
      ExtBuffer0[i] =0; 
      if (SMA2>0) ExtBuffer0[i] = ((SMA1-SMA2)*100)/SMA2; 
   }
   
   for(i = Bars-1; i >= 0; i--)
     {
      current=ExtBuffer0[i];
      prev=ExtBuffer0[i+1];
      up = 0;
      if ((current > prev) && (current > indicator_level1)) up = 1; 
      if ((current < prev) && (current < indicator_level2)) up = -1; 
      
         ExtBuffer2[i] = 0.0;
         ExtBuffer1[i] = 0.0;
         
      if (up == -1)
        {
         ExtBuffer2[i] = current;
         ExtBuffer1[i] = 0.0;
        }
      if (up == 1)
        {
         ExtBuffer1[i] = current;
         ExtBuffer2[i] = 0.0;
        }
     }
//---- done
   return(0);
  } 
//+------------------------------------------------------------------+ 





Sample





Analysis



Market Information Used:



Indicator Curves created:

Implements a curve of type DRAW_HISTOGRAM


Indicators Used:

Moving average indicator


Custom Indicators Used:

Order Management characteristics:

Other Features: