_TRO_Multi_Meter_RSI

Download script
_TRO_Multi_Meter_RSI

This script is designed to provide a multi-timeframe overview of the Relative Strength Index (RSI) directly on your trading chart. Instead of forcing you to switch between different timeframes to see market momentum, it aggregates that data into a single, easy-to-read dashboard.

Core Functionality

The logic follows a structured process to monitor market conditions across seven different timeframes simultaneously: 1-Minute (M1), 5-Minute (M5), 15-Minute (M15), 30-Minute (M30), 1-Hour (H1), 4-Hour (H4), and Daily (D1).

1. Data Collection The script automatically calculates the RSI value for each of the seven timeframes mentioned above based on a user-defined period. It looks at the most recent price data to determine how overbought or oversold the market is currently behaving.

2. Dynamic Color Coding To make the data instantly interpretable, the script uses a "Meter" logic. It assigns specific colors to the RSI values based on defined thresholds:

  • Extreme Highs: Colors like Red or Orange are triggered when the RSI enters very high ranges (indicating potentially overbought conditions).
  • Neutral Zones: Yellow or Yellow-Green shades are used for middle-range values.
  • Extreme Lows: Blue and Dark Blue tones are applied when the RSI drops into lower ranges (indicating potentially oversold conditions).

3. Visual Dashboard Display The script generates an on-screen visual interface in a specific corner of your chart. It organizes this information as follows:

  • Header: A label identifies the timeframes being displayed.
  • Status Indicators: The actual RSI values for all seven timeframes are displayed side-by-side.
  • Visual Cues: Each value is colored dynamically according to the "Meter" logic described above, allowing you to see at a glance which timeframes are reaching critical levels without needing to read the specific numbers.

User Experience Highlights

  • Snapshot View: You get an immediate "bird's-eye view" of market momentum across short-term and long-term horizons at once.
  • Customizable Positioning: The script includes settings to adjust the position, spacing, and labels on the chart to ensure it doesn't obstruct your view of the price action.
  • Clean Environment: The script is designed to automatically clean up its visual elements from the chart when you remove it, ensuring no "ghost" labels or objects are left behind.
Indicators Used
Relative strength index
11 Views
0 Downloads
0 Favorites
_TRO_Multi_Meter_RSI
//+------------------------------------------------------------------+ 
//|  _TRO_Multi_Meter_RSI                                            | 
//|                                                                  | 
//|   Copyright © 2007, Avery T. Horton, Jr. aka TheRumpledOne       |
//|                                                                  |
//|   PO BOX 43575, TUCSON, AZ 85733                                 |
//|                                                                  |
//|   GIFT AND DONATIONS ACCEPTED                                    | 
//|                                                                  |
//|   therumpldone@gmail.com                                         |  
//+------------------------------------------------------------------+ 
#property indicator_chart_window

extern bool Show_Heading = false;
 
extern string IndName = "RSI" ; // change


//*******************
extern bool Corner_of_Chart_RIGHT_TOP = true;

extern int Shift_UP_DN =45; 
extern int Adjust_Side_to_side  = 20;

extern color BarLabel_color = LightBlue;
extern color CommentLabel_color = LightBlue;

//******************* 
// change inputs for your indicator 

string    RSI_Settings          = "=== RSI Settings ===";
extern int       RSIPeriod             =           2;  // RSI  period

extern double Level5 =  95 ;
extern double Level4 =  80 ;
extern double Level3 =  50 ;
extern double Level2 =  20 ;
extern double Level1 =  5 ;
extern double Level0 =  0 ;

extern color colorLevel5 =  Red ;
extern color colorLevel4 =  Orange ;
extern color colorLevel3 =  Yellow  ;
extern color colorLevel2 =  YellowGreen ;
extern color colorLevel1 =  Blue ;
extern color colorLevel0 =  DarkBlue;

//*******************


string Obj0001,Obj0002,Obj0003,Obj0004,Obj0005,Obj0006,Obj0007,Obj0008,Obj0009;  




//+---------------

color MeterColor( double rsimeter )
{
if( rsimeter > Level5 ) { return( colorLevel5 ); } 
if( rsimeter > Level4 ) { return( colorLevel4 ); } 
if( rsimeter > Level3 ) { return( colorLevel3 ); } 
if( rsimeter > Level2 ) { return( colorLevel2 ); } 
if( rsimeter > Level1 ) { return( colorLevel1 ); } 
return( colorLevel0 );  
}

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


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

//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {    
   //***********************************************************************************************************************

string LabelTime="";

if (LabelTime=="") {LabelTime=TimeToStr(TimeLocal(),TIME_SECONDS); }

   int    counted_bars=IndicatorCounted();
   
if ( Show_Heading) {         
    if (Corner_of_Chart_RIGHT_TOP == true)
    {  
    
   Obj0001 = "Numbers" + LabelTime ; 
           ObjectCreate(Obj0001, OBJ_LABEL, 0, 0, 0);
   ObjectSetText(Obj0001, "    M1   M5  M15  M30   H1    H4   D1", 7, "Tahoma Narrow", BarLabel_color);
   ObjectSet(Obj0001, OBJPROP_CORNER, Corner_of_Chart_RIGHT_TOP);
   ObjectSet(Obj0001, OBJPROP_XDISTANCE, 17+Adjust_Side_to_side);
   ObjectSet(Obj0001, OBJPROP_YDISTANCE, 28+Shift_UP_DN); 
   }
    if (Corner_of_Chart_RIGHT_TOP == false)
   { 
           ObjectCreate(Obj0001, OBJ_LABEL, 0, 0, 0);
   ObjectSetText(Obj0001, "   M1     M5   M15   M30   H1    H4    D1", 7, "Tahoma Narrow", BarLabel_color);
   ObjectSet(Obj0001, OBJPROP_CORNER, Corner_of_Chart_RIGHT_TOP);
   ObjectSet(Obj0001, OBJPROP_XDISTANCE, 17+Adjust_Side_to_side);
   ObjectSet(Obj0001, OBJPROP_YDISTANCE, 24+Shift_UP_DN); 
    } 
} // Show_Heading

 //*******************   change for  your indicator ********************
   //RSI Signals

   

    
    string M1_RSI= "",M5_RSI= "", M15_RSI= "", M30_RSI= "", H1_RSI= "", H4_RSI= "", D1_RSI= "",PRC1;
    color  color_RSIm1,color_RSIm5,color_RSIm15,color_RSIm30,color_RSIm60,color_RSIm240,color_RSIm1440;     

   double rsi_1=iRSI(NULL,PERIOD_M1,RSIPeriod,PRICE_CLOSE,0);
   
   double rsi_5=iRSI(NULL,PERIOD_M5,RSIPeriod,PRICE_CLOSE,0);
  
   double rsi_15=iRSI(NULL,PERIOD_M15,RSIPeriod,PRICE_CLOSE,0);
     
   double rsi_30=iRSI(NULL,PERIOD_M30,RSIPeriod,PRICE_CLOSE,0);
      
   double rsi_60=iRSI(NULL,PERIOD_H1,RSIPeriod,PRICE_CLOSE,0);
    
   double rsi_240=iRSI(NULL,PERIOD_H4,RSIPeriod,PRICE_CLOSE,0);
  
   double rsi_1440=iRSI(NULL,PERIOD_D1,RSIPeriod,PRICE_CLOSE,0);
          
    
M1_RSI= "-";  color_RSIm1 = MeterColor( rsi_1 ) ;
M5_RSI= "-";  color_RSIm5 = MeterColor( rsi_5 ) ;
M15_RSI= "-";color_RSIm15 = MeterColor( rsi_15 ) ;
M30_RSI= "-";color_RSIm30 = MeterColor( rsi_30) ;
H1_RSI= "-";color_RSIm60 = MeterColor( rsi_60) ;
H4_RSI= "-";color_RSIm240 = MeterColor( rsi_240) ;
D1_RSI= "-";color_RSIm1440 = MeterColor( rsi_1440) ;
    

   Obj0002 = "SignalRSIM1t" + LabelTime ; 
           
           ObjectCreate(Obj0002, OBJ_LABEL, 0, 0, 0);
   ObjectSetText(Obj0002,IndName, 7, "Tahoma Narrow",  BarLabel_color);  
   ObjectSet(Obj0002, OBJPROP_CORNER, Corner_of_Chart_RIGHT_TOP);
   ObjectSet(Obj0002, OBJPROP_XDISTANCE, 155+Adjust_Side_to_side);
   ObjectSet(Obj0002, OBJPROP_YDISTANCE, 50+Shift_UP_DN);  

   Obj0003 = "SignalRSIM1" + LabelTime ;        
           ObjectCreate(Obj0003, OBJ_LABEL, 0, 0, 0);
   ObjectSetText(Obj0003, M1_RSI, 40, "Tahoma Narrow",  color_RSIm1);
   ObjectSet(Obj0003, OBJPROP_CORNER, Corner_of_Chart_RIGHT_TOP);
   ObjectSet(Obj0003, OBJPROP_XDISTANCE, 130+Adjust_Side_to_side);
   ObjectSet(Obj0003, OBJPROP_YDISTANCE, 20+Shift_UP_DN); 

   Obj0004 = "SignalRSIM5" + LabelTime ;          
           ObjectCreate(Obj0004, OBJ_LABEL, 0, 0, 0);
   ObjectSetText(Obj0004, M5_RSI, 40, "Tahoma Narrow",  color_RSIm5);
   ObjectSet(Obj0004, OBJPROP_CORNER, Corner_of_Chart_RIGHT_TOP);
   ObjectSet(Obj0004, OBJPROP_XDISTANCE, 110+Adjust_Side_to_side);
   ObjectSet(Obj0004, OBJPROP_YDISTANCE, 20+Shift_UP_DN); 
      
   Obj0005 = "SignalRSIM15" + LabelTime ; 
   ObjectCreate(Obj0005, OBJ_LABEL, 0, 0, 0);
   ObjectSetText(Obj0005, M15_RSI, 40, "Tahoma Narrow",  color_RSIm15);
   ObjectSet(Obj0005, OBJPROP_CORNER, Corner_of_Chart_RIGHT_TOP);
   ObjectSet(Obj0005, OBJPROP_XDISTANCE, 90+Adjust_Side_to_side);
   ObjectSet(Obj0005, OBJPROP_YDISTANCE, 20+Shift_UP_DN); 
      
   Obj0006 = "SignalRSIM30" + LabelTime ; 
   ObjectCreate(Obj0006, OBJ_LABEL, 0, 0, 0);
   ObjectSetText(Obj0006, M30_RSI, 40, "Tahoma Narrow",  color_RSIm30);
   ObjectSet(Obj0006, OBJPROP_CORNER, Corner_of_Chart_RIGHT_TOP);
   ObjectSet(Obj0006, OBJPROP_XDISTANCE, 70+Adjust_Side_to_side);
   ObjectSet(Obj0006, OBJPROP_YDISTANCE, 20+Shift_UP_DN); 

   Obj0007 = "SignalRSIM60" + LabelTime ;      
           ObjectCreate(Obj0007, OBJ_LABEL, 0, 0, 0);
   ObjectSetText(Obj0007, H1_RSI, 40, "Tahoma Narrow",  color_RSIm60);
   ObjectSet(Obj0007, OBJPROP_CORNER, Corner_of_Chart_RIGHT_TOP);
   ObjectSet(Obj0007, OBJPROP_XDISTANCE, 50+Adjust_Side_to_side);
   ObjectSet(Obj0007, OBJPROP_YDISTANCE, 20+Shift_UP_DN); 

   Obj0008 = "SignalRSIM240" + LabelTime ;          
           ObjectCreate(Obj0008, OBJ_LABEL, 0, 0, 0);
   ObjectSetText(Obj0008, H4_RSI, 40, "Tahoma Narrow",  color_RSIm240);
   ObjectSet(Obj0008, OBJPROP_CORNER, Corner_of_Chart_RIGHT_TOP);
   ObjectSet(Obj0008, OBJPROP_XDISTANCE, 30+Adjust_Side_to_side);
   ObjectSet(Obj0008, OBJPROP_YDISTANCE, 20+Shift_UP_DN);

   Obj0009 = "SignalRSIM1440" + LabelTime ;    
           ObjectCreate(Obj0009, OBJ_LABEL, 0, 0, 0);
   ObjectSetText(Obj0009, D1_RSI, 40, "Tahoma Narrow",  color_RSIm1440);
   ObjectSet(Obj0009, OBJPROP_CORNER, Corner_of_Chart_RIGHT_TOP);
   ObjectSet(Obj0009, OBJPROP_XDISTANCE, 10+Adjust_Side_to_side);
   ObjectSet(Obj0009, OBJPROP_YDISTANCE, 20+Shift_UP_DN);
  
 //----
   return(0);
  }
//+------------------------------------------------------------------+

//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
//----
ObjectsDeleteAll(0,OBJ_HLINE);
ObjectsDeleteAll(0,OBJ_TEXT);
ObjectsDeleteAll(0,OBJ_LABEL);
deleteObject();  

//----
   return(0);
  }
  
void deleteObject()
  { 
ObjectDelete(Obj0001);  
ObjectDelete(Obj0002); 
ObjectDelete(Obj0003); 
ObjectDelete(Obj0004); 
ObjectDelete(Obj0005); 
ObjectDelete(Obj0006); 
ObjectDelete(Obj0007); 
ObjectDelete(Obj0008); 
ObjectDelete(Obj0009); 
 
  }

Comments