//+------------------------------------------------------------------+
//|                                       TRO_RSI_WIN_5TF_SM.mq4 
//+------------------------------------------------------------------+
#property copyright "AHGDP"
#property link      "TRO_RSI_WIN_5TF_SM"

#property indicator_chart_window
#property indicator_buffers 1
#property indicator_color1 EMPTY 

extern int        RSI_WIN5_SM         =   6;
extern int        Adj_UpDn            = -10;
extern int        Adj_LtRt            = 250;
extern int        TextSize            =  10;

//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
int init()
 {
    IndicatorDigits(+0);
    IndicatorBuffers(1);
    
 
//=============================MOD====================================================== 
         string  ThisName = "RSI_WIN5_SM";
         string Text=ThisName;
         IndicatorShortName(Text); 
         SetIndexLabel(0,"");    
}
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
int deinit()
  {     Refresh();
        return(0);
  }
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
void start()
 {    Refresh();
      int add_y;
      int i,limit,LoopBegin;
//=====================================================================================================
      int HHE,HVE, R5LH,R5LV, R15LH,R15LV, R30LH,R30LV, R60LH,R60LV, R240LH,R240LV;
    
  if  (RSI_WIN5_SM==0)
      {                 HHE     = 820 +Adj_LtRt ;  HVE     = 100+Adj_UpDn ; 
                        R5LH    = 820 +Adj_LtRt ;  R5LV    = 120+Adj_UpDn ;     
                        R15LH   = 820 +Adj_LtRt ;  R15LV   = 140+Adj_UpDn ; 
                        R30LH   = 820 +Adj_LtRt ;  R30LV   = 160+Adj_UpDn ; 
                        R60LH   = 820 +Adj_LtRt ;  R60LV   = 180+Adj_UpDn ;  
                        R240LH  = 820 +Adj_LtRt ;  R240LV  = 200+Adj_UpDn ;  
                        
      }
   if  (RSI_WIN5_SM==1||2||3||4)
      {                 HHE     = 820 +Adj_LtRt;   HVE     = 10+Adj_UpDn ; 
                        R5LH    = 820 +Adj_LtRt;   R5LV    = 25+Adj_UpDn ;     
                        R15LH   = 820 +Adj_LtRt;   R15LV   = 45+Adj_UpDn ; 
                        R30LH   = 820 +Adj_LtRt;   R30LV   = 65+Adj_UpDn ; 
                        R60LH   = 820 +Adj_LtRt;   R60LV   = 85+Adj_UpDn ;  
                        R240LH  = 820 +Adj_LtRt ;  R240LV  = 105+Adj_UpDn ;  
                       
      }

//========================================================================================== 
  
 for (i=LoopBegin; i>=0; i--) {
             
    double RSI5S    = (   (iRSI(NULL, PERIOD_M5, 4, PRICE_CLOSE, i    )) 
                        + (iRSI(NULL, PERIOD_M5, 4, PRICE_CLOSE, i+1  )) 
                        + (iRSI(NULL, PERIOD_M5, 4, PRICE_CLOSE, i+2  ))    /3) ; 
     
    double RSI5L    = (   (iRSI(NULL, PERIOD_M5, 8,  PRICE_CLOSE, i   ))
                        + (iRSI(NULL, PERIOD_M5, 8,  PRICE_CLOSE, i+1 )) 
                        + (iRSI(NULL, PERIOD_M5, 8,  PRICE_CLOSE, i+2 ))    /3) ; 
                                   
      
    double RSI15S    = (  (iRSI(NULL, PERIOD_M15, 2, PRICE_CLOSE,  i   )) 
                        + (iRSI(NULL, PERIOD_M15, 2, PRICE_MEDIAN, i+1 ))   /2) ;///???
                  
    double RSI15L    = (  (iRSI(NULL, PERIOD_M15, 4, PRICE_CLOSE,  i   )) 
                        + (iRSI(NULL, PERIOD_M15, 4, PRICE_MEDIAN, i+1 ))   /2) ;// ??    
         
    
      
    double RSI30S      = iRSI(NULL, PERIOD_M30,   2, PRICE_CLOSE, i);
    double RSI30L      = iRSI(NULL, PERIOD_M30,   4, PRICE_CLOSE, i);
      
    double RSI60S      = iRSI(NULL, PERIOD_H1,    2, PRICE_CLOSE, i);
    double RSI60L      = iRSI(NULL, PERIOD_H1,    4, PRICE_CLOSE, i);
     
    double RSI240S     = iRSI(NULL, PERIOD_H4, 2, PRICE_CLOSE, i);
    double RSI240L     = iRSI(NULL, PERIOD_H4, 4, PRICE_CLOSE, i);
//----------------------------------------------------------------------------------------------      
    double RSI5D       = iRSI(NULL, PERIOD_M5,  4, PRICE_CLOSE, i);
    double RSI15D      = iRSI(NULL, PERIOD_M15, 2, PRICE_CLOSE, i);                        
//=======================  HEADINGE  =============================================================   
    
     ObjectCreate ("HEADINGR5SM", OBJ_LABEL,RSI_WIN5_SM, 0, 0);
     ObjectSetText("HEADINGR5SM", "   RSI SM" , TextSize, "Tahoma Bold", Gold);
     ObjectSet    ("HEADINGR5SM", OBJPROP_XDISTANCE, HHE);
     ObjectSet    ("HEADINGR5SM", OBJPROP_YDISTANCE, HVE); 
     
//=======================  RSI  =================================================================== 
        
      { ObjectCreate("RSI5R5_lab", OBJ_LABEL,RSI_WIN5_SM, 0, 0);
 if  (RSI5S>RSI5L ){ObjectSetText("RSI5R5_lab","(5)   =   "+DoubleToStr(RSI5D,0)+"", TextSize, "Tahoma Bold", Green);}
 if  (RSI5S<RSI5L ){ObjectSetText("RSI5R5_lab","(5)   =   "+DoubleToStr(RSI5D,0)+"", TextSize, "Tahoma Bold", Red);}
     ObjectSet("RSI5R5_lab", OBJPROP_XDISTANCE, R5LH);
     ObjectSet("RSI5R5_lab", OBJPROP_YDISTANCE, R5LV ); 
   }
   
   { ObjectCreate("RSI15R5_lab", OBJ_LABEL,RSI_WIN5_SM, 0, 0);
 if  (RSI15S>RSI15L ){ObjectSetText("RSI15R5_lab","(15) =   "+DoubleToStr(RSI15D,0)+"", TextSize, "Tahoma Bold", Green);}
 if  (RSI15S<RSI15L ){ObjectSetText("RSI15R5_lab","(15) =   "+DoubleToStr(RSI15D,0)+"", TextSize, "Tahoma Bold", Red);}
     ObjectSet("RSI15R5_lab", OBJPROP_XDISTANCE, R15LH);
     ObjectSet("RSI15R5_lab", OBJPROP_YDISTANCE, R15LV ); 
   }
   
   { ObjectCreate("RSI30R5_lab", OBJ_LABEL,RSI_WIN5_SM, 0, 0);
 if  (RSI30S>RSI30L ){ObjectSetText("RSI30R5_lab","(30) =   "+DoubleToStr(RSI30S,0)+"", TextSize, "Tahoma Bold", Green);}
 if  (RSI30S<RSI30L ){ObjectSetText("RSI30R5_lab","(30) =   "+DoubleToStr(RSI30S,0)+"", TextSize, "Tahoma Bold", Red);}
     ObjectSet("RSI30R5_lab", OBJPROP_XDISTANCE, R30LH);
     ObjectSet("RSI30R5_lab", OBJPROP_YDISTANCE, R30LV ); 
   }
   
   { ObjectCreate("RSI60R5_lab", OBJ_LABEL,RSI_WIN5_SM, 0, 0);
 if  (RSI60S>RSI60L ){ObjectSetText("RSI60R5_lab","(H1) =   "+DoubleToStr(RSI60S,0)+"", TextSize, "Tahoma Bold", Green);}
 if  (RSI60S<RSI60L ){ObjectSetText("RSI60R5_lab","(H1) =   "+DoubleToStr(RSI60S,0)+"", TextSize, "Tahoma Bold", Red);}
     ObjectSet("RSI60R5_lab", OBJPROP_XDISTANCE, R60LH);
     ObjectSet("RSI60R5_lab", OBJPROP_YDISTANCE, R60LV ); 
   }

   { ObjectCreate("RSI240R5_lab", OBJ_LABEL,RSI_WIN5_SM, 0, 0);
 if  (RSI240S>RSI240L ){ObjectSetText("RSI240R5_lab","(H4) =   "+DoubleToStr(RSI240S,0)+"", TextSize, "Tahoma Bold", Green);}
 if  (RSI240S<RSI240L ){ObjectSetText("RSI240R5_lab","(H4) =   "+DoubleToStr(RSI240S,0)+"", TextSize, "Tahoma Bold", Red);}
     ObjectSet("RSI240R5_lab", OBJPROP_XDISTANCE, R240LH);
     ObjectSet("RSI240R5_lab", OBJPROP_YDISTANCE, R240LV ); 
   }
   
//==============================================================================================  
     }
     }
//====================================================================
void Refresh() 
   {         ObjectDelete("HEADINGR5SM");     
      ObjectDelete ("RSI5R5_lab");    ObjectDelete("RSI30R5_lab"); 
      ObjectDelete("RSI15R5_lab");    ObjectDelete("RSI60R5_lab"); 
     ObjectDelete("RSI240R5_lab"); 
   }
 
//------------------------------------------------------------------------------------+


