https://www.forexfactory.com/thread/pos … st15776619
//@version=6
indicator('<[MUD_RSI_Bands MTF [LB]>', shorttitle='<[MUD_RSI_BANDS_MTF_LB]>', overlay=true)
// Функция для расчета полос
f_rsi_bands(src, length, obLevel, osLevel) =>
ep = 2 * length - 1
auc = ta.ema(math.max(src - src[1], 0), ep)
adc = ta.ema(math.max(src[1] - src, 0), ep)
x1 = (length - 1) * (adc * obLevel / (100 - obLevel) - auc)
ub = x1 >= 0 ? src + x1 : src + x1 * (100 - obLevel) / obLevel
x2 = (length - 1) * (adc * osLevel / (100 - osLevel) - auc)
lb = x2 >= 0 ? src + x2 : src + x2 * (100 - osLevel) / osLevel
[ub, lb]
// ————— ИНДИКАТОР №1 —————
tf1 = input.timeframe("", "Таймфрейм 1", group="Индикатор 1")
obLevel1 = input(70, "RSI Overbought 1", group="Индикатор 1")
osLevel1 = input(30, "RSI Oversold 1", group="Индикатор 1")
length1 = input(14, "RSI Length 1", group="Индикатор 1")
src1 = input(close, "Source 1", group="Индикатор 1")
show1 = input(true, "Показать Индикатор 1", group="Индикатор 1")
// Расчет для МТФ 1
[ub1_current, lb1_current] = f_rsi_bands(src1, length1, obLevel1, osLevel1)
[ub1_mtf, lb1_mtf] = request.security(syminfo.tickerid, tf1, f_rsi_bands(src1, length1, obLevel1, osLevel1))
ub1 = tf1 != "" ? ub1_mtf : ub1_current
lb1 = tf1 != "" ? lb1_mtf : lb1_current
plot(show1 ? ub1 : na, title = 'Resistance 1', color = #ff5252, linewidth = 2)
plot(show1 ? lb1 : na, title = 'Support 1', color = #4caf50, linewidth = 2)
plot(show1 ? math.avg(ub1, lb1) : na, title = 'RSI Midline 1', color = #787b86, linewidth = 1)
// ————— ИНДИКАТОР №2 —————
tf2 = input.timeframe("", "Таймфрейм 2", group="Индикатор 2")
obLevel2 = input(65, "RSI Overbought 2", group="Индикатор 2")
osLevel2 = input(35, "RSI Oversold 2", group="Индикатор 2")
length2 = input(20, "RSI Length 2", group="Индикатор 2")
src2 = input(close, "Source 2", group="Индикатор 2")
show2 = input(true, "Показать Индикатор 2", group="Индикатор 2")
// Расчет для МТФ 2
[ub2_current, lb2_current] = f_rsi_bands(src2, length2, obLevel2, osLevel2)
[ub2_mtf, lb2_mtf] = request.security(syminfo.tickerid, tf2, f_rsi_bands(src2, length2, obLevel2, osLevel2))
ub2 = tf2 != "" ? ub2_mtf : ub2_current
lb2 = tf2 != "" ? lb2_mtf : lb2_current
plot(show2 ? ub2 : na, title = 'Resistance 2', color = #ff9800, linewidth = 2)
plot(show2 ? lb2 : na, title = 'Support 2', color = #2196f3, linewidth = 2)
plot(show2 ? math.avg(ub2, lb2) : na, title = 'RSI Midline 2', color = #9c27b0, linewidth = 1)
// ————— ИНДИКАТОР №3 —————
tf3 = input.timeframe("", "Таймфрейм 3", group="Индикатор 3")
obLevel3 = input(75, "RSI Overbought 3", group="Индикатор 3")
osLevel3 = input(25, "RSI Oversold 3", group="Индикатор 3")
length3 = input(10, "RSI Length 3", group="Индикатор 3")
src3 = input(hl2, "Source 3", group="Индикатор 3")
show3 = input(true, "Показать Индикатор 3", group="Индикатор 3")
// Расчет для МТФ 3
[ub3_current, lb3_current] = f_rsi_bands(src3, length3, obLevel3, osLevel3)
[ub3_mtf, lb3_mtf] = request.security(syminfo.tickerid, tf3, f_rsi_bands(src3, length3, obLevel3, osLevel3))
ub3 = tf3 != "" ? ub3_mtf : ub3_current
lb3 = tf3 != "" ? lb3_mtf : lb3_current
plot(show3 ? ub3 : na, title = 'Resistance 3', color = #880e4f, linewidth = 2)
plot(show3 ? lb3 : na, title = 'Support 3', color = #00897b, linewidth = 2)
plot(show3 ? math.avg(ub3, lb3) : na, title = 'RSI Midline 3', color = #808000, linewidth = 1)
var table logo = table.new(position.bottom_right, 1, 1)
table.cell(logo, 0, 0, 'DM', text_size = size.normal, text_color = #00897b)
//===========================================================================//
