https://www.forexfactory.com/thread/pos … st15776619

https://upforme.ru/uploads/001c/b5/b3/2/t104908.webp

//@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)

                                //===========================================================================//