CCI_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 CCIPeriod=14; // indicator period input ENUM_APPLIED_PRICE CCIPrice=PRICE_CLOSE; // price input ENUM_APPLIED_VOLUME VolumeType=VOLUME_TICK; // volume input int HighLevel2=+100; // overbought level 2 input int HighLevel1=+80; // overbought level 1 input int LowLevel1=-80; // oversold level 1 input int LowLevel2=-100; // 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".

Fig. 1. XCCI_Histogram_Vol