The Detrended Price Oscillator can remove the trend effect of price movement. This can be a help for finding out cycles and overbought/oversold levels.
Long-term cycles consist of several shorter cycles. Analyzing such short components can help you to determine crucial moments of the cycle's development. This indicator gives you a chance to filter out the influence on prices of long-term cycles. To calculate DPO you should take a certain period. So you can remove cycles which are longer than the chosen period from price dynamics, and leave shorter cycles. Half of the cycle's length is used for smoothing. We recommend to use a period of 21 or less.
The bounds (overbought/oversold levels) come from the history of previous behavior of prices. It is recommended to stand in a buy order if DPO first falls under the resale level and then gets above it. Crossing of the zero point from above followed by a rise above which level is also a signal for a buy order. Everything is vice versa for short orders.
You can download the indicator here: https://www.mql5.com/en/code/27