Editors' picks
OPEN-SOURCE SCRIPT

Detrended Rhythm Oscillator (DRO)

Updated
How to detect the current "market beat" or market cycle?

A common way to capture the current dominant cycle length is to detrend the price and look for common rhythms in the detrended series. A common approach is to use a Detrended Price Oscillator (DPO). This is done in order to identify and isolate short-term cycles.

A basic DPO description can be found here:
https://www.tradingview.com/support/solutions/43000502246-detrended-price-oscillator-dpo/

Improvements to the standard DPO
The main purpose of the standard DPO is to analyze historical data in order to observe cycle's in a market's movement. DPO can give the technical analyst a better sense of a cycle's typical high/low range as well as its duration. However, you need to manually try to "see" tops and bottoms on the detrended price and measure manually the distance from low-low or high-high in order to derive a possible cycle length.

Therefore, I added the following improvements:

1) Using a DPO to detrend the price
2) Indicate the turns of the detrended price with a ZigZag lines to better see the tops/bottoms
3) Detrend the ZigZag to remove price amplitude between turns to even better see the cyclic turns ("rhythm")
4) Measure the distance from last detrended zigzag pivot (high-high / low-low) and plot the distance in bars above/below the turn

Now, you can clearly see the rhythm of the dataset indicated by the Detrended Rhythm Oscillator including the exact length between the turns. This makes the procedure to "spot" turns and "measure" distance more simple for the trader.

How to use this information
The purpose is to check if there is a common rhythm or beat in the underlying dataset. To check that, look for recurring pattern in the numbers. E.g. if you often see the same measured distance, you can conclude that there is a major dominant cycle in this market. Also watch for harmonic relations between the numbers. So in the example above you see the highlighted cluster of detected length of around 40,80 and 120. There three numbers all have a harmonic relation to 40.

Once you have this cyclic information, you can use this number to optimize or tune technical indicators based on the current dominant cycle length. E.g. set the length parameter of a technical indicator to the detected harmonic length with the DRO indicator.

Example Use-Case
You can use this information to set the input for the following free public open-source script:
RSI cyclic smoothed v2


Disclaimer
This is not meant to be a technical indicator on its own and the derived cyclic length should not be used to forecast the next turn per se. The indicator should give you an indication of the current market beat or dominant beats which can be use to further optimize other oscillator or trading related settings.

Options & settings
The indicator allows to plot different versions. It allows to plot the original DPO, the DRO with ZigZag lines, the DRO with detrended ZigZag lines and length labels on/off. You can turn on or off these version in the indicator settings. So you can tweak it visually to your own needs.

Release Notes
[FIX]: a glitch which might cause incorrect distance label length
[ADD]: added a function to turn the detrending DPO on/off, e.g. to use as "indicator on indicator" with different detrending
Release Notes
Changes in this version:
  • solved wrong distance labels
  • added the new option to turn on/off detrending pre-processing
Release Notes

  • Converted to pine v5
  • Added a final median calculation to capture the current dominant cycle length
  • minor fixes
CyclesdetrendDetrended Price Oscillator (DPO)detrendingPrice Oscillator (PPO)rhythmZigzag

Open-source script

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 publication is governed by House rules. You can favorite it to use it on a chart.

Want to use this script on a chart?


Lars von Thienen

Join my blog and never miss an update:
stockmarketcycles.substack.com/
Also on:

Disclaimer