Renamed it to match trading view and added more averages to it. Just for information, some of the averages don't work very well with it.mrtools wrote: Fri Jan 26, 2024 8:27 am Yeah it's Ultimate rsi in tradingview, somewhere somehow I got the name Augmented in my head, will change to ultimate on next update.
Code: Select all
// This work is licensed under a Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0) https://creativecommons.org/licenses/by-nc-sa/4.0/ // © LuxAlgo //@version=5 indicator("Ultimate RSI [LuxAlgo]", "LuxAlgo - Ultimate RSI") //------------------------------------------------------------------------------ //Settings //-----------------------------------------------------------------------------{ length = input.int(14, minval = 2) smoType1 = input.string('RMA', 'Method', options = ['EMA', 'SMA', 'RMA', 'TMA']) src = input(close, 'Source') arsiCss = input(color.silver, 'Color', inline = 'rsicss') autoCss = input(true, 'Auto', inline = 'rsicss') //Signal Line smooth = input.int(14, minval = 1, group = 'Signal Line') smoType2 = input.string('EMA', 'Method', options = ['EMA', 'SMA', 'RMA', 'TMA'], group = 'Signal Line') signalCss = input(#ff5d00, 'Color', group = 'Signal Line') //OB/OS Style obValue = input.float(80, 'Overbought', inline = 'ob', group = 'OB/OS Style') obCss = input(#089981, '', inline = 'ob', group = 'OB/OS Style') obAreaCss = input(color.new(#089981, 80), '', inline = 'ob', group = 'OB/OS Style') osValue = input.float(20, 'Oversold ', inline = 'os', group = 'OB/OS Style') osCss = input(#f23645, '', inline = 'os', group = 'OB/OS Style') osAreaCss = input(color.new(#f23645, 80), '', inline = 'os', group = 'OB/OS Style') //-----------------------------------------------------------------------------} //Functions //-----------------------------------------------------------------------------{ ma(x, len, maType)=> switch maType 'EMA' => ta.ema(x, len) 'SMA' => ta.sma(x, len) 'RMA' => ta.rma(x, len) 'TMA' => ta.sma(ta.sma(x, len), len) //-----------------------------------------------------------------------------} //Augmented RSI //-----------------------------------------------------------------------------{ upper = ta.highest(src, length) lower = ta.lowest(src, length) r = upper - lower d = src - src[1] diff = upper > upper[1] ? r : lower < lower[1] ? -r : d num = ma(diff, length, smoType1) den = ma(math.abs(diff), length, smoType1) arsi = num / den * 50 + 50 signal = ma(arsi, smooth, smoType2) //-----------------------------------------------------------------------------} //Plots //-----------------------------------------------------------------------------{ plot_rsi = plot(arsi, 'Ultimate RSI' , arsi > obValue ? obCss : arsi < osValue ? osCss : autoCss ? chart.fg_color : arsiCss) plot(signal, 'Signal Line', signalCss) //Levels plot_up = plot(obValue, color = na, editable = false) plot_avg = plot(50, color = na, editable = false) plot_dn = plot(osValue, color = na, editable = false) //OB-OS fill(plot_rsi, plot_up, arsi > obValue ? obAreaCss : na) fill(plot_dn, plot_rsi, arsi < osValue ? osAreaCss : na) //Gradient fill(plot_rsi, plot_avg, obValue, 50, obAreaCss, color.new(chart.bg_color, 100)) fill(plot_avg, plot_rsi, 50, osValue, color.new(chart.bg_color, 100), osAreaCss) hline(obValue, 'Overbought') hline(50, 'Midline') hline(osValue, 'Oversold') //-----------------------------------------------------------------------------}
ps) Thought I was losing my last few remaining brain cells, but found Augmented Rsi in the code, phew!!!
Attachments forums
Re: RSI Indicators for MT4
mrtools, Sun Jan 28, 2024 2:58 pm