RSI_Histogram_Vol indicator with additional averaging of the resulting histogram. A similar averaging is applied to dynamic overbought/oversold levels as well.
//+-----------------------------------------+
//| INDICATOR INPUT PARAMETERS |
//+-----------------------------------------+
input uint RSIPeriod=14; // indicator period
input ENUM_APPLIED_PRICE RSIPrice=PRICE_CLOSE; // price
input ENUM_APPLIED_VOLUME VolumeType=VOLUME_TICK; // volume
input int HighLevel2=+20; // overbought level 2
input int HighLevel1=+15; // overbought level 1
input int LowLevel1=-15; // oversold level 1
input int LowLevel2=-20; // oversold level 2
input Smooth_Method MA_SMethod=MODE_SMA_; // Averaging method
input uint MA_Length=12; // Smoothing depth
input int MA_Phase=15; // parameter of the first smoothing,
//---- for JJMA within the range of -100 ... +100, it influences the quality of the transition process;
//---- for VIDIA it is a CMO period, for AMA it is a slow average period
input int Shift=0; // Horizontal indicator shift in bars
The indicator uses SmoothAlgorithms.mqh library classes (copy it to <terminal_data_folder>\MQL5\Include). The use of the classes was thoroughly described in the article "Averaging Price Series for Intermediate Calculations Without Using Additional Buffers".