- //+------------------------------------------------------------------+
  - //| 5 Min RSI 12-period qual INDICATOR                               |
  - //+------------------------------------------------------------------+
  - #property copyright "Ron T"
  - #property link      "http://www.lightpatch.com"
  
 - #property indicator_chart_window
  - #property indicator_buffers 8
  
 - #property indicator_color1 Red
  - #property indicator_color2 HotPink
  - #property indicator_color3 DarkGray
  - #property indicator_color4 Red
  
 - #property indicator_color5 White
  - #property indicator_color6 LightGray
  - #property indicator_color7 DarkGray
  - #property indicator_color8 White
  
 
 - //---- buffers
  - double Buffer1[];
  - double Buffer2[];
  - double Buffer3[];
  - double Buffer4[];
  - double Buffer5[];
  - double Buffer6[];
  - double Buffer7[];
  - double Buffer8[];
  
 
 - // User Input
  
 
 - //+------------------------------------------------------------------+
  - //| Custom indicator initialization function                         |
  - //|------------------------------------------------------------------|
  
 - int init()
  -   {
  
 -    // 233 up arrow
  -    // 234 down arrow
  -    // 159 big dot
  -    // 158 little dot
  -    // 168 open square
  -    // 120 box with X
  -    
  -    SetIndexStyle(0,DRAW_ARROW);
  -    SetIndexBuffer(0, Buffer1);
  -    SetIndexArrow(0,159);
  -    
  -    SetIndexStyle(1,DRAW_ARROW);
  -    SetIndexBuffer(1, Buffer2);
  -    SetIndexArrow(1,158);
  
 -    SetIndexStyle(2,DRAW_ARROW);
  -    SetIndexBuffer(2, Buffer3);
  -    SetIndexArrow(2,112);
  
 -    SetIndexStyle(3,DRAW_ARROW);
  -    SetIndexBuffer(3, Buffer4);
  -    SetIndexArrow(3,120);
  
 -    SetIndexStyle(4,DRAW_ARROW);
  -    SetIndexBuffer(4, Buffer5);
  -    SetIndexArrow(4,159);
  
 -    SetIndexStyle(5,DRAW_ARROW);
  -    SetIndexBuffer(5, Buffer6);
  -    SetIndexArrow(5,158);
  
 -    SetIndexStyle(6,DRAW_ARROW);
  -    SetIndexBuffer(6, Buffer7);
  -    SetIndexArrow(6,112);
  
 -    SetIndexStyle(7,DRAW_ARROW);
  -    SetIndexBuffer(7, Buffer8);
  -    SetIndexArrow(7,120);
  
 -    return(0);
  -   }
  
 
 - //+------------------------------------------------------------------+
  - //| Custor indicator deinitialization function                       |
  - //+------------------------------------------------------------------+
  - int deinit()
  -   {
  -    int i;
  -    
  -    for( i=0; i<Bars; i++ ) Buffer1[i]=0;
  -    for( i=0; i<Bars; i++ ) Buffer2[i]=0;
  -    for( i=0; i<Bars; i++ ) Buffer3[i]=0;
  -    for( i=0; i<Bars; i++ ) Buffer4[i]=0;
  -    for( i=0; i<Bars; i++ ) Buffer5[i]=0;
  -    for( i=0; i<Bars; i++ ) Buffer6[i]=0;
  -    for( i=0; i<Bars; i++ ) Buffer7[i]=0;
  -    for( i=0; i<Bars; i++ ) Buffer8[i]=0;
  
 -    return(0);
  -   }
  
 
 - //+------------------------------------------------------------------+
  - //| Custom indicator iteration function                              |
  - //+------------------------------------------------------------------+
  
 - // Current position if 55/45 or over/under. Does any of 
  - // the previous 'qual' period ever fall below55/above45? (last11)
  - //
  - // If qual*2 periods have been above55/below45
  - // then lets not try to transact any more (last22)
  -          
  
 - int start()
  -   {
  -    int      pos=Bars-100; // leave room for moving average periods
  -    int      ctr=0;
  
 -    double   cMAfst=0, pMAfst=0;
  -    double   cMAmid=0, pMAmid=0;
  -    double   cMAslo=0, pMAslo=0;
  -    double   MA100=0;
  -    
  -    bool     rising=false;
  -    bool    falling=false;
  -       
  -    double p=Point();
  -    
  -    while(pos>=1)
  -      {
  
 -       cMAfst=iMA(Symbol(),0,5  ,0,MODE_LWMA,PRICE_OPEN, pos);
  -       pMAfst=iMA(Symbol(),0,5  ,0,MODE_LWMA,PRICE_OPEN, pos+1);
  
 -       cMAmid=iMA(Symbol(),0,25 ,0,MODE_LWMA,PRICE_OPEN, pos);
  -       pMAmid=iMA(Symbol(),0,25 ,0,MODE_LWMA,PRICE_OPEN, pos+1);
  -       
  -       cMAslo=iMA(Symbol(),0,100,0,MODE_LWMA,PRICE_OPEN, pos);
  -       pMAslo=iMA(Symbol(),0,100,0,MODE_LWMA,PRICE_OPEN, pos+1);
  
 -       // rising
  -       if (pMAmid<=pMAslo && cMAmid>=cMAslo)
  -         {
  -          rising=true;
  -          falling=false;
  -          ctr=0;
  -         }
  
 -       //falling
  -       if (pMAmid>=pMAslo && cMAmid<=cMAslo)
  -         {
  -          rising=false;
  -          falling=true;
  -          ctr=0;
  -         }
  -       
  -       ctr++;
  -       if (ctr>30 && falling) {Buffer1[pos]=cMAmid;}
  -       if (ctr>30 && rising)  {Buffer5[pos]=cMAmid;}
  
 -             pos--;
  -      }
  
 -    return(0);
  -   }
  - //+------------------------------------------------------------------+
 
  |