_TRO_Multi_Meter_RSI_v1

_TRO_Multi_Meter_RSI_v1

Overview of the Multi-Meter RSI Indicator

This script is designed to provide a comprehensive, multi-timeframe summary of market momentum at a single glance. Instead of requiring you to switch between different charts to see the Relative Strength Index (RSI) for various time periods, this tool consolidates that information into a clean, visual "meter" directly on your current trading screen.

Core Functionality

1. Multi-Timeframe Synchronization The logic automatically calculates and fetches the RSI values for seven different timeframes simultaneously:

  • 1 Minute (M1)
  • 5 Minutes (M5)
  • 15 Minutes (M15)
  • 30 Minutes (M30)
  • 1 Hour (H1)
  • 4 Hours (H4)
  • Daily (D1)

2. Visual Heat-Mapping (Color Coding) The script simplifies complex numerical data into an intuitive color system. Based on the specific RSI levels you define, the indicator assigns a unique color to each timeframe's value:

  • High Momentum/Overbought Zones: Represented by colors like Red or Orange.
  • Neutral Zones: Represented by Yellow or Yellow-Green.
  • Low Momentum/Oversold Zones: Represented by Blue or Dark Blue.

By looking at the "meter," you can instantly see if the market is currently trending aggressively in one direction across different time scales (e.g., identifying if a 1-minute move is supported by the daily trend).

3. Customizable Display Layout The script includes several user-friendly settings to ensure it fits your specific workspace:

  • Positioning: You can choose which corner of the chart the display appears in (top right is the default).
  • Adjustments: It allows for "side-to-side" and "up-down" shifting, so you can move the labels to avoid overlapping with other indicators or price candles.
  • Heading Toggle: You can turn on a header that labels each data point (M1, M5, etc.) for better clarity.

User Experience summary

When you load this script, it creates a dashboard of colored labels. As the market moves, these labels update in real-time. This allows a trader to maintain "big picture" awareness without cluttering their main chart with multiple sub-windows, making it an efficient tool for identifying trend alignment across various time horizons.

Indicators Used
Relative strength index
16 Views
0 Downloads
0 Favorites
_TRO_Multi_Meter_RSI_v1
//+------------------------------------------------------------------+ 
//|  _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 =0; 
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