This indicator was originally developed by John F. Ehlers (Stocks & Commodities , V.33:10 (September, 2015): "Decyclers").
The idea is still the same as for the Simple Decycler. Mr. Ehlers suggested to virtually eliminate lag by getting rid of the very low-frequency components. So, he applied the high-pass filter to the simple decycler.
Mr. Ehlers recommended to use two instances of the Decycler Oscillator with different parameters (high-pass filter period and multiplier). As a result, he got the Decycler Oscillator pair. The first oscillator (red line) has a period of 125 bars, the second one (yellow line) has a period of 100 bars.
The interpretation is straightforward:
When the yellow line crosses over the red line, a trend reversal to the upside is indicated.
When the yellow line crosses under the red line, a trend reversal to the downside is indicated.
I don't understand how/why a high pass is being applied to the decycler at half the high pass period, as indicated by the 0.5 in the code:
decosc = 100 * k * _hp(decycler, hpPeriod, 0.5) / src.
It makes no sense to have a high pass filter at half the period at which the decycler was calculated. It's like calculating for longer cycle periods and then removing them with the high pass filter.