+ Detrended Price Oscillator

According to TradingView the Detrended Price Oscillator is an oscillator that removes trend from price in order to more clearly show an instrument's cyclical
highs and lows so that an investor or trader may more easily time when to buy or sell the underlying instrument. Accordingly, it is not meant to be used as a way of gauging momentum, however, I find it perfectly suitable for the task (at least when used "un-centered" which is how it comes by default here). If you wish to read up more on the DPO just search for it under indicators. It's built in, so you'll find all the information you need on it there. Or check investopedia.

On to the good stuff. What have I done and how does this work?
As un-centered you can use it just like any other momentum oscillator. Price above the zero line is bullish and below is bearish , generally speaking.
I've added two moving averages that you can turn on or off, and choose amongst various types and lengths. Both of these are colored based on trend.
The DPO is also colored based on trend, with a neutral color based on where the DPO is relative to the primary MA and the zero line.
Candles are colored in the same way that the DPO is.
I've added Bollinger Bands because they could be useful on an indicator like this.
All the alert conditions you could dream of.

With this set to centered you will notice that the DPO is not inline with current price. That is intentional, as it's only designed to look at historical price
data to time highs and lows of price movement. As such, I don't recommend using this when set to centered, at least if you're trading crypto. The price volatility
perhaps makes for inconsistent timing of cyclical highs and lows, or perhaps it's the rather brief amount of time cryptocurrencies have been in existence.
I do not know. Just stick to using it un-centered.

The above image shows the indicator with Bollinger Bands turned on and the MA's turned off. Also, you should note that the candle color and DPO color is based on the primary moving average you are using. If you want consistency, and want to use the Bollinger Bands , then keep your primary moving average set as a 20 SMA , as that is the basis for Bollinger Bands .

Hope this is helpful to you. Definitely pair it with an additional indicator like an RSI , or my +ADP. I like to use something rangebound to compare its signals to.
เอกสารเผยแพร่: added a second DPO that can be used to measure momentum vs the first one and the chart
added plot shapes for DPO+MA crosses
added background stripes for DPO+DPO crosses, and an alert condition for that
เอกสารเผยแพร่: some very important updates here!
first, I changed the way neutral candles are colored. Previously it was with regard to the DPO's relation to the primary and secondary moving averages. This doesn't make much sense to me because in my opinion the center line (in my way of thinking the neutral point for market momentum) is the more relevant factor than the secondary MA, so now the candles are colored in the exact same way the DPO is, and that is with the DPO's relation to the primary MA and the center line.

second, I saw that I had a question from a user about the use of the secondary DPO. And, while understanding the use myself, I realized that my implementation of DPO+DPO crosses was WRONG for the intended use of the second DPO. Partly this came to me while thinking of the use of the center line, and while changing the colored candles. So now the crossing of the two DPO's is of no relevance (it often gave false signals anyway). So where is this all going? The use of the secondary DPO is to act as an additional filter the way a longer lookback moving average might when overlaid on a chart. I set the default setting of the second DPO to 89 (a fib number), and the point of it is, if you so wish to use it this way, to act as a filter for which direction you wish to trade. If it is above the center line then you can use dips on the faster DPO as signals to buy, and vice versa for shorting. You can make up your own set of rules for reversal trading a trend, or for ranging markets, though I think the Bollinger Bands that I updated (there are two of different deviations with a fill in between them -- I've also done away with the fill between top and bottom bands) should help with that.

With the change in how I've approached the momentum issue between the two different DPO's and the centerline, I've removed the background stripes from the DPO+DPO cross (they were useless) and added background stripes for DPO centerline crosses as this is a MUCH more useful feature.

Lastly, I neatened up the inputs screen and changed some verbiage. Pretty much just cosmetic details, but I think it provides a more intuitive, pleasant experience with the indicator.

That's all! Thanks! And happy trading!
เอกสารเผยแพร่: just changed some verbiage
เอกสารเผยแพร่: removed neutral color for second DPO plot. not sure why I had that in there, other than just copying the primary DPO code. it's just not relevant though, so now it's either bullish or bearish based on the centerline.
moving averages off by default now, but ribbon visible.

In true TradingView spirit, the author of this script has published it open-source, so traders can understand and verify it. Cheers to the author! You may use it for free, but reuse of this code in a publication is governed by House Rules. You can favorite it to use it on a chart.