Multi_RSI_AM_

Download script
Author: Andrey Matvievskiy
Multi_RSI_AM_

This technical tool is designed to provide a comprehensive view of market momentum by consolidating multiple layers of analysis into a single visual display. Instead of relying on a single point of data, it utilizes an ensemble approach to help traders identify trends more clearly.

Core Logic and Functionality

The script operates based on the Relative Strength Index (RSI), a standard financial tool used to measure the speed and change of price movements. However, rather than displaying just one RSI line, this indicator calculates eight different RSI values simultaneously.

Key features include:

  • Multi-Layered Perspective: The script processes eight distinct time periods (ranging from 5 to 23). By calculating these different "speeds" at once, the tool allows you to see both immediate, fast-moving price fluctuations and slower, more established long-term trends.
  • Customizable Price Tracking: You have the flexibility to choose which specific price data the indicator should monitor—whether it tracks the high/low extremes or the standard closing prices of an asset.
  • Visual Synchronization: All eight indicators are plotted on a single separate window, each assigned a unique color. This allows for an immediate visual assessment of "confluence." When multiple lines move in the same direction or cluster together, it suggests a stronger consensus in market momentum.
  • Dynamic Updates: The script automatically recalculates these values in real-time as new price data becomes available, ensuring that the visual representation stays current with live market movements.

How it Benefits the User

By viewing eight different RSI periods at once, you can better distinguish between "noise" (short-term volatility) and actual trend shifts. If the faster lines (shorter periods) move away from the slower lines (longer periods), it may signal a potential change in sentiment; conversely, when they align, it can provide a clearer picture of the market's current direction.

Miscellaneous
Implements a curve of type %1
11 Views
0 Downloads
0 Favorites
Multi_RSI_AM_
//+------------------------------------------------------------------+
//|                                                Multi_RSI(AM).mq4 |
//|                                               Andrey Matvievskiy |
//|                                                                  |
//+------------------------------------------------------------------+
#property copyright "Andrey Matvievskiy"
#property link      ""

#property indicator_separate_window


#property indicator_buffers 8

#property indicator_color1 Red
#property indicator_color2 Orange
#property indicator_color3 Gold
#property indicator_color4 Lime
#property indicator_color5 Aqua
#property indicator_color6 DodgerBlue
#property indicator_color7 MediumPurple
#property indicator_color8 Silver

#property indicator_minimum 0
#property indicator_maximum 100
#property indicator_level1 50
#property indicator_levelcolor LightSlateGray

//---- input parameters
extern int RSI_Period1 = 5;
extern int RSI_Period2 = 7;
extern int RSI_Period3 = 9;
extern int RSI_Period4 = 11;
extern int RSI_Period5 = 14;
extern int RSI_Period6 = 17;
extern int RSI_Period7 = 20;
extern int RSI_Period8 = 23;

extern int Price = 0; // Low/High 0, Close/Close 1


   double Buffer1[] ;
   double Buffer2[] ;
   double Buffer3[] ;
   double Buffer4[] ;
   double Buffer5[] ;
   double Buffer6[] ;
   double Buffer7[] ;
   double Buffer8[] ;
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
   SetIndexStyle(0,DRAW_LINE);
   SetIndexBuffer(0, Buffer1);
      
   SetIndexStyle(1,DRAW_LINE);
   SetIndexBuffer(1, Buffer2);
      
   SetIndexStyle(2,DRAW_LINE);
   SetIndexBuffer(2, Buffer3);
      
   SetIndexStyle(3,DRAW_LINE);
   SetIndexBuffer(3, Buffer4);
            
   SetIndexStyle(4,DRAW_LINE);
   SetIndexBuffer(4, Buffer5);
      
   SetIndexStyle(5,DRAW_LINE);
   SetIndexBuffer(5, Buffer6);
   
   SetIndexStyle(6,DRAW_LINE);
   SetIndexBuffer(6, Buffer7);
       
   SetIndexStyle(7,DRAW_LINE);
   SetIndexBuffer(7, Buffer8);
   
     
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
  int start()
 {
   int limit;
   int counted_bars=IndicatorCounted();
   
   if(counted_bars<0) return(-1);

   if(counted_bars>0) counted_bars--;
   limit=Bars-counted_bars;

   for(int i=limit; i>=0; i--)
  {
   
//----
    Buffer1[i] = iRSI (NULL,0,RSI_Period1,Price,i);
    Buffer2[i] = iRSI (NULL,0,RSI_Period2,Price,i);
    Buffer3[i] = iRSI (NULL,0,RSI_Period3,Price,i);
    Buffer4[i] = iRSI (NULL,0,RSI_Period4,Price,i);
    Buffer5[i] = iRSI (NULL,0,RSI_Period5,Price,i);
    Buffer6[i] = iRSI (NULL,0,RSI_Period6,Price,i);
    Buffer7[i] = iRSI (NULL,0,RSI_Period7,Price,i);
    Buffer8[i] = iRSI (NULL,0,RSI_Period8,Price,i);
  }
    
//----
   return(0);
  }
//+------------------------------------------------------------------+

Comments