OPEN-SOURCE SCRIPT
RSI: chart overlay

This indicator maps RSI thresholds directly onto price. Since the EMA of price aligns with RSI’s 50-line, it draws a volatility-based band around the EMA to reveal levels such as 70 and 30.
By converting RSI values into visible price bands, the overlay lets you see exactly where price would have to move to hit traditional RSI boundaries. These bands adapt in real time to both price movement and market volatility, keeping the classic RSI logic intact while presenting it in the context of price action. This approach helps traders interpret RSI signals without leaving the main chart window.
The calculation uses the same components as the RSI: alternative derivation script: Wilder’s EMA for smoothing, a volatility-based unit for scaling, and a normalization factor. The result is a dynamic band structure on the chart, representing RSI boundary levels in actual price terms.
Key components and calculation breakdown:
- Wilder’s EMA
Used as the anchor point for measuring price position.Pine Script® myEMA = ta.rma(close, Length) - Volatility Unit
Derived from the EMA of absolute close-to-close price changes.Pine Script® CC_vol = ta.rma(math.abs(close - close[1]), Length) - Normalization Factor
Scales the volatility unit to align with the RSI formula’s structure.Pine Script® normalization_factor = 1 / (Length - 1) - Upper and Lower Boundaries
Defines price bands corresponding to selected RSI threshold values.Pine Script® up_b = myEMA + ((upper - 50) / 50) * (CC_vol / normalization_factor) down_b = myEMA - ((50 - lower) / 50) * (CC_vol / normalization_factor) - Inputs
- RSI length
- Upper boundary – RSI level above 50
- Lower boundary – RSI level below 50
- ON/OFF toggle for 50-point line (EMA of close prices)
- ON/OFF toggle for overbought/oversold coloring (use with line chart)
- RSI length
Interpretation:
- Each band on the chart represents a chosen RSI level.
- When price touches a band, RSI is at that threshold.
- The distance between moving average and bands adjusts automatically with volatility and your selected RSI length.
- All calculations remain fully consistent with standard RSI values.
Feedback and code suggestions are welcome, especially regarding implementation efficiency and customization.
Open-source script
In true TradingView spirit, the creator of this script has made it open-source, so that traders can review and verify its functionality. Kudos to the author! While you can use it for free, remember that republishing the code is subject to our House Rules.
Disclaimer
The information and publications are not meant to be, and do not constitute, financial, investment, trading, or other types of advice or recommendations supplied or endorsed by TradingView. Read more in the Terms of Use.
Open-source script
In true TradingView spirit, the creator of this script has made it open-source, so that traders can review and verify its functionality. Kudos to the author! While you can use it for free, remember that republishing the code is subject to our House Rules.
Disclaimer
The information and publications are not meant to be, and do not constitute, financial, investment, trading, or other types of advice or recommendations supplied or endorsed by TradingView. Read more in the Terms of Use.