Home Technical Indicator Post

Unlocking the Power of UltraRSI: Your Guide to Advanced Trading with MetaTrader 5

Attachments
725.zip (20.73 KB, Download 0 times)

Author: dm34@mail.ru

Welcome, traders! If you're looking to elevate your trading game, you might want to check out the UltraRSI indicator for MetaTrader 5. This powerful tool is built on the Relative Strength Index (RSI) and takes things a step further by analyzing multiple signal lines.

So, how does it work? The UltraRSI utilizes a straightforward algorithm that relies on a few key input parameters:

  • StartLength: This is the minimum initial value for the first signal line.
  • Step: This defines the period change step.
  • StepsTotal: This indicates the total number of period changes.

The value for any period from the signal lines is calculated using simple arithmetic:

SignalPeriod(Number) = StartLength + Number * Step,

Here, the Number variable ranges from 0 to StepsTotal. The calculated period values populate an array, which is then utilized at each tick to generate a smoothed RSI value. The indicator tracks the current trend direction for each smooth RSI and counts the number of positive or negative trends across the entire array. In the end, these trends are further smoothed and represented as indicator lines, forming a color cloud using the DRAW_FILLING style.

The direction of the trend is indicated by the color of the cloud, while its strength is represented by its width. Additionally, you can set overbought (UpLevel) and oversold (DnLevel) levels as a percentage of the indicator's maximum amplitude.

One of the cool features of UltraRSI is its flexibility in smoothing algorithms. You have a choice of ten different methods:

  1. SMA - Simple Moving Average;
  2. EMA - Exponential Moving Average;
  3. SMMA - Smoothed Moving Average;
  4. LWMA - Linear Weighted Moving Average;
  5. JJMA - JMA Adaptive Average;
  6. JurX - Ultralinear Smoothing;
  7. ParMA - Parabolic Smoothing;
  8. T3 - Tillson's Multiple Exponential Smoothing;
  9. VIDYA - Smoothing using Tushar Chande's algorithm;
  10. AMA - Smoothing using Perry Kaufman's algorithm.

It's essential to understand that the Phase1 and Phase2 parameters differ significantly depending on the smoothing algorithm you choose. For instance, in JMA, it represents an external Phase variable ranging from -100 to +100. For T3, it's a smoothing ratio multiplied by 100 for better visualization. Meanwhile, VIDYA uses a CMO oscillator period, and for AMA, it corresponds to a slow EMA period. In other algorithms, these parameters won't affect the smoothing. Notably, the fast EMA period for AMA is a fixed value set at 2 by default, and the raising ratio is also 2.

The UltraRSI indicator relies on the SmoothAlgorithms.mqh library classes, which you need to copy to your terminal_data_folder/MQL5/Include. For a comprehensive understanding of how to use these classes, check out the article "Averaging Price Series for Intermediate Calculations Without Using Additional Buffers".

Here are the input parameters for the indicator:

//+----------------------------------------------+
//| Indicator input parameters                   |
//+----------------------------------------------+
input int RSI_Period=13;                           // RSI indicator period
input ENUM_APPLIED_PRICE Applied_price=PRICE_CLOSE; // Applied price
//----
input Smooth_Method W_Method=MODE_JJMA;           // Smoothing method
input int StartLength=3;                          // Initial smoothing period                    
input int WPhase=100;                             // Smoothing parameter
//----  
input uint Step=5;                               // Period change step
input uint StepsTotal=10;                        // Number of period changes
//----
input Smooth_Method SmoothMethod=MODE_JJMA;      // Smoothing method
input int SmoothLength=3;                        // Smoothing depth
input int SmoothPhase=100;                       // Smoothing parameter
//----                          
input uint UpLevel=80;                           // Overbought level, %%
input uint DnLevel=20;                           // Oversold level, %%
input color UpLevelsColor=Blue;                  // Overbought level color
input color DnLevelsColor=Blue;                  // Oversold level color
input STYLE Levelstyle=DASH_;                   // Levels style
input WIDTH  LevelsWidth=Width_1;               // Levels width

UltraRSI


Related Posts

Comments (0)