MTF_RSI_4PerX4TF_Dots_[cw]






//+-------------------------------------------------------------------------+
//| MTF_RSI_4PerX4TF_Dots_[cw]    based on           4Period_RSI_Arrows.mq4 |
//|                               transport_david thanks the many friends @ |
//| http://finance.groups.yahoo.com/group/MetaTrader_Experts_and_Indicators/|
//+-------------------------------------------------------------------------+
#property indicator_chart_window
#property indicator_buffers 8
#property indicator_color1 Honeydew
#property indicator_color2 Honeydew
#property indicator_color3 Coral
#property indicator_color4 Coral
#property indicator_color5 DeepPink
#property indicator_color6 DeepPink
#property indicator_color7 Red
#property indicator_color8 Red

#property indicator_width5    1 
#property indicator_width6    1 
#property indicator_width7    2 
#property indicator_width8    2 





//---- input parameters
extern int   atf=15;//Period() in minutes
extern int   btf=60;//Period() in minutes
extern int   ctf=240;//Period() in minutes
extern int   dtf=1440;//Period() in minutes
extern int first_RSIperiods=9;
extern int second_RSIperiods=9;
extern int third_RSIperiods=9;
extern int fourth_RSIperiods=9;
extern int rsi.applied.price=5;
/*
Applied price constants. It can be any of the following values:
Constant        Value  Description
PRICE_CLOSE     0      Close price,
PRICE_OPEN      1      Open price,
PRICE_HIGH      2      High price,
PRICE_LOW       3      Low price,
PRICE_MEDIAN    4      Median price, (high+low)/2,
PRICE_TYPICAL   5      Typical price, (high+low+close)/3,
PRICE_WEIGHTED  6      Weighted close price, (high+low+close+close)/4.  
*/
extern int shift=0;
extern int rsiUpperTrigger=62;
extern int rsiLowerTrigger=38;
extern string    note__Price = "Price(OCHL,Md(HL/2,Tp(HLC/3,Wgh(HLCC/4)";

//---- buffers
double ExtMapBuffer1[];
double ExtMapBuffer2[];
double ExtMapBuffer3[];
double ExtMapBuffer4[];
double ExtMapBuffer5[];
double ExtMapBuffer6[];
double ExtMapBuffer7[];
double ExtMapBuffer8[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
//---- indicators
   SetIndexStyle(0,DRAW_ARROW);
   SetIndexArrow(0,159);//234//arr dn
   SetIndexBuffer(0,ExtMapBuffer1);
   SetIndexEmptyValue(0,0.0);
   SetIndexStyle(1,DRAW_ARROW);
   SetIndexArrow(1,159);//233//arr up
   SetIndexBuffer(1,ExtMapBuffer2);
   SetIndexEmptyValue(1,0.0);
   SetIndexStyle(2,DRAW_ARROW);
   SetIndexArrow(2,159);
   SetIndexBuffer(2,ExtMapBuffer3);
   SetIndexEmptyValue(2,0.0);
   SetIndexStyle(3,DRAW_ARROW);
   SetIndexArrow(3,159);
   SetIndexBuffer(3,ExtMapBuffer4);
   SetIndexEmptyValue(3,0.0);
   SetIndexStyle(4,DRAW_ARROW);
   SetIndexArrow(4,159);
   SetIndexBuffer(4,ExtMapBuffer5);
   SetIndexEmptyValue(4,0.0);
   SetIndexStyle(5,DRAW_ARROW);
   SetIndexArrow(5,159);
   SetIndexBuffer(5,ExtMapBuffer6);
   SetIndexEmptyValue(5,0.0);
   SetIndexStyle(6,DRAW_ARROW);
   SetIndexArrow(6,159);
   SetIndexBuffer(6,ExtMapBuffer7);
   SetIndexEmptyValue(6,0.0);
   SetIndexStyle(7,DRAW_ARROW);
   SetIndexArrow(7,159);
   SetIndexBuffer(7,ExtMapBuffer8);
   SetIndexEmptyValue(7,0.0);
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custor indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
//---- 
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {
   int counted_bars=IndicatorCounted();
   int i;
//----   
   for(i=Bars-50;i>=0;i--)
     {
      double one =iRSI(Symbol(),atf,first_RSIperiods,rsi.applied.price,i+shift);
      if (one < rsiLowerTrigger)
         ExtMapBuffer1[i]=High[i]+5*Point;
      if (one > rsiUpperTrigger)
         ExtMapBuffer2[i]=Low[i]-5*Point;
     }
   SetIndexLabel(0,"RSI_("+first_RSIperiods+") <("+rsiLowerTrigger+")TF["+atf+"]");
   SetIndexLabel(1,"RSI_("+first_RSIperiods+") >("+rsiUpperTrigger+")TF["+atf+"]");

   for(i=Bars-50;i>=0;i--)
     {
      double two =iRSI(Symbol(),btf,second_RSIperiods,rsi.applied.price,i+shift);
      if (two < rsiLowerTrigger)
         ExtMapBuffer3[i]=High[i]+8*Point;
      if (two > rsiUpperTrigger)
         ExtMapBuffer4[i]=Low[i]-8*Point;
     }
 
   SetIndexLabel(2,"RSI_("+second_RSIperiods+") <("+rsiLowerTrigger+")TF["+btf+"]");
   SetIndexLabel(3,"RSI_("+second_RSIperiods+") >("+rsiUpperTrigger+")TF["+btf+"]");

   for(i=Bars-50;i>=0;i--)
     {
      double three =iRSI(Symbol(),ctf,third_RSIperiods,rsi.applied.price,i+shift);
      if (three < rsiLowerTrigger)
         ExtMapBuffer5[i]=High[i]+11*Point;
      if (three > rsiUpperTrigger)
         ExtMapBuffer6[i]=Low[i]-11*Point;
     }
   SetIndexLabel(4,"RSI_("+third_RSIperiods+") <("+rsiLowerTrigger+")TF["+ctf+"]");
   SetIndexLabel(5,"RSI_("+third_RSIperiods+") >("+rsiUpperTrigger+")TF["+ctf+"]");


   for(i=Bars-50;i>=0;i--)
     {
      double four =iRSI(Symbol(),dtf,fourth_RSIperiods,rsi.applied.price,i+shift);
      if (four < rsiLowerTrigger)
         ExtMapBuffer7[i]=High[i]+14*Point;
      if (four > rsiUpperTrigger)
         ExtMapBuffer8[i]=Low[i]-14*Point;
     }
   SetIndexLabel(6,"RSI_("+fourth_RSIperiods+") <("+rsiLowerTrigger+")TF["+dtf+"]");
   SetIndexLabel(7,"RSI_("+fourth_RSIperiods+") >("+rsiUpperTrigger+")TF["+dtf+"]");


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



Sample





Analysis



Market Information Used:

Series array that contains the highest prices of each bar
Series array that contains the lowest prices of each bar


Indicator Curves created:

Implements a curve of type DRAW_ARROW


Indicators Used:

Relative strength index


Custom Indicators Used:

Order Management characteristics:

Other Features: