OPEN-SOURCE SCRIPT

RSI - Dynamic Overbought/Oversold Range

Updated
Default overbought/oversold levels of RSI does not hold good for instruments which are trending well. It happens often that instruments keep trading in single half of the range for prolonged time without even touching the other half. This also came up often in tradingview pine chat discussions where I participate regularly.

Hence, thought of creating this script to help other scriptors in finding different methods to derive dynamic high/low range of RSI. This can also be adopted for other range bound oscillators - though not inlcuded in this script.

⬜ Method

▶ Derive multitimeframe RSI. Parameters - Resolution, Source and Length are pretty straight forward. Repaint when unchecked uses previous bar value.
▶ Dynamic range detection follows below steps.
  • Get highest and lowest of the oscillator source for Range Length period.
  • Use Detection method further to refine the highest and lowest range. If detection method is "highlow", then it looks for lowest value for high range and highest value for low range. If not, uses moving average.


◽Note: Detection range length is used only for finding highest and lowest of Oscillator value ranges. Further detection range method of highlow and other moving average types use Oscillator length.
Release Notes
Minor correction - removed few redundant lines.
Release Notes
Added sticky range option to stick levels till crossover. Converted script to pine 5 :)
dynamiclevelsMoving AveragesOscillatorsRelative Strength Index (RSI)rsioverboughtrsioversold

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?

Disclaimer