Ultimate RSI [LuxAlgo]

The Ultimate RSI indicator is a new oscillator based on the calculation of the Relative Strength Index that aims to put more emphasis on the trend, thus having a less noisy output. Opposite to the regular RSI, this oscillator is designed for a trend trading approach instead of a contrarian one.


While returning the same information as a regular RSI, the Ultimate RSI puts more emphasis on trends, and as such can reach overbought/oversold levels faster as well as staying longer within these areas. This can avoid the common issue of an RSI regularly crossing an overbought or oversold level while the trend makes new higher highs/lower lows.

The Ultimate RSI crossing above the overbought level can be indicative of a strong uptrend (highlighted as a green area), while an Ultimate RSI crossing under the oversold level can be indicative of a strong downtrend (highlighted as a red area).

The Ultimate RSI crossing the 50 midline can also indicate trends, with the oscillator being above indicating an uptrend, else a downtrend. Unlike a regular RSI, the Ultimate RSI will cross the midline level less often, thus generating fewer whipsaw signals.

For even more timely indications users can observe the Ultimate RSI relative to its signal line. An Ultimate RSI above its signal line can indicate it is increasing, while the opposite would indicate it is decreasing.

🔹Smoothing Methods

Users can return more reactive or smoother results depending on the selected smoothing method used for the calculation of the Ultimate RSI. Options include:

  • Exponential Moving Average (EMA)
  • Simple Moving Average (SMA)
  • Wilder's Moving Average (RMA)
  • Triangular Moving Average (TMA)

These are ranked by the degree of reactivity of each method, with higher ones being more reactive (but less smooth).

Users can also select the smoothing method used by the signal line.


The RSI returns a normalized exponential average of price changes in the range (0, 100), which can be simply calculated as follows:

ema(d) / ema(|d|) × 50 + 50

where d represent the price changes. In order to put more emphasis on trends we can put higher weight on d. We can perform this on the occurrence of new higher highs/lower lows, and by replacing d with the rolling range instead (the rolling period used to detect the higher highs/lower lows is equal to the length setting).


  • Length: Calculation period of the indicator
  • Method: Smoothing method used for the calculation of the indicator.
  • Source: Input source of the indicator

🔹Signal Line

  • Smooth: Degree of smoothness of the signal line
  • Method: Smoothing method used to calculation the signal line.

Get access to our exclusive tools:

Join our 150k+ community:

All content provided by LuxAlgo is for informational & educational purposes only. Past performance does not guarantee future results.
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 a publication is governed by House Rules. You can favorite it to use it on a chart.


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.

Want to use this script on a chart?