В этом коде ищется паттерн 4 ступеньки, видишь его?
//@version=5
indicator(title='MFX with BOS2 Steps', shorttitle='MFX_BOS2_Steps', overlay=true)

// === Входные параметры ===

// Периоды BOS
bosPeriod2 = input.int(title="BOS Period 2", defval=8, minval=1)
bosPeriod3 = input.int(title="BOS Period 3", defval=200, minval=1)
bosPeriod4 = input.int(title="BOS Period 4", defval=1200, minval=1)

// Параметры для Moving Averages
ma1Period = input.int(title="MA1 Period", defval=10, minval=1)
ma2Period = input.int(title="MA2 Period", defval=50, minval=1)
ma3Period = input.int(title="MA3 Period", defval=200, minval=1)
ma4Period = input.int(title="MA4 Period", defval=20, minval=1)
ma5Period = input.int(title="MA5 Period", defval=100, minval=1)
ma6Period = input.int(title="MA6 Period", defval=1200, minval=1)

ma1Enabled = input.bool(title="Enable MA1", defval=true)
ma2Enabled = input.bool(title="Enable MA2", defval=true)
ma3Enabled = input.bool(title="Enable MA3", defval=true)
ma4Enabled = input.bool(title="Enable MA4", defval=true)
ma5Enabled = input.bool(title="Enable MA5", defval=true)
ma6Enabled = input.bool(title="Enable MA6", defval=true)

maType = input.string(title="MA Type", defval="EMA", options=["SMA", "EMA", "WMA", "VWMA"])

// Цвета для Moving Averages
ma1Color = input.color(title="MA1 Color", defval=color.new(#FFC0CB, 30)) // Пастельный розовый
ma2Color = input.color(title="MA2 Color", defval=color.new(#AFEEEE, 30)) // Пастельный голубой
ma3Color = input.color(title="MA3 Color", defval=color.new(#B2182B, 30)) // Пастельный красный
ma4Color = input.color(title="MA4 Color", defval=color.new(#FF6347, 30)) // Пастельный томат
ma5Color = input.color(title="MA5 Color", defval=color.new(#8A2BE2, 30)) // Пастельный синий
ma6Color = input.color(title="MA6 Color", defval=color.new(#32CD32, 30)) // Пастельный лайм

// === Функция для расчёта Moving Averages ===
calculateMA(period) =>
    switch maType
        "SMA" => ta.sma(close, period)
        "EMA" => ta.ema(close, period)
        "WMA" => ta.wma(close, period)
        "VWMA" => ta.vwma(close, period)
        => ta.ema(close, period) // EMA по умолчанию

// Вычисление Moving Averages
ma1 = ma1Enabled ? calculateMA(ma1Period) : na
ma2 = ma2Enabled ? calculateMA(ma2Period) : na
ma3 = ma3Enabled ? calculateMA(ma3Period) : na
ma4 = ma4Enabled ? calculateMA(ma4Period) : na
ma5 = ma5Enabled ? calculateMA(ma5Period) : na
ma6 = ma6Enabled ? calculateMA(ma6Period) : na

// === Отображение Moving Averages ===
plot(ma1, color=ma1Color, linewidth=2, title="MA1")
plot(ma2, color=ma2Color, linewidth=2, title="MA2")
plot(ma3, color=ma3Color, linewidth=2, title="MA3")
plot(ma4, color=ma4Color, linewidth=2, title="MA4")
plot(ma5, color=ma5Color, linewidth=2, title="MA5")
plot(ma6, color=ma6Color, linewidth=2, title="MA6")

// === Функция для расчёта BOS ===
calculateBOS(period) =>
    var float bosHigh = na
    var float bosLow = na
    // Инициализация bosHigh и bosLow при первом запуске
    if na(bosHigh)
        bosHigh := high
    if na(bosLow)
        bosLow := low
    // Определение текущего низкого и высокого за период
    currentLow = ta.lowest(low, period)
    currentHigh = ta.highest(high, period)
    // Обновление bosHigh и bosLow в зависимости от закрытия
    if close > bosHigh
        bosHigh := high
        bosLow := currentLow
    if close < bosLow
        bosLow := low
        bosHigh := currentHigh
    [bosHigh, bosLow]

// === Вычисление BOS для разных периодов ===
[bosHigh2, bosLow2] = calculateBOS(bosPeriod2)
[bosHigh3, bosLow3] = calculateBOS(bosPeriod3)
[bosHigh4, bosLow4] = calculateBOS(bosPeriod4)

// === Отображение BOS линий ===
plot(title='BosHigh2', series=bosHigh2, color=#2962ff, linewidth=2, style=plot.style_stepline)
plot(title='BosLow2', series=bosLow2, color=#2962ff, linewidth=2, style=plot.style_stepline)
plot(title='BosHigh3', series=bosHigh3, color=#ffffff, linewidth=3, style=plot.style_stepline)
plot(title='BosLow3', series=bosLow3, color=#ffffff, linewidth=3, style=plot.style_stepline)
plot(title='BosHigh4', series=bosHigh4, color=#b2182c, linewidth=4, style=plot.style_stepline)
plot(title='BosLow4', series=bosLow4, color=#b2182c, linewidth=4, style=plot.style_stepline)

// === Логика для выделения ступенек на BosHigh2 ===

// Обнаружение четырёх последовательных снижений BosHigh2
isStepDown = (bosHigh2 < bosHigh2[1]) and (bosHigh2[1] < bosHigh2[2]) and (bosHigh2[2] < bosHigh2[3]) and (bosHigh2[3] < bosHigh2[4])

// Переменная для хранения линий (ограничение до 100 линий)
var line[] stepLines = array.new_line()

// Отрисовка желтой линии при обнаружении четырёх снижений
if isStepDown
    // Определение координат начала и конца линии
    startBar = bar_index - 3
    startPrice = bosHigh2[3]
    endBar = bar_index
    endPrice = bosHigh2
    // Создание желтой линии
    stepLine = line.new(x1=startBar, y1=startPrice, x2=endBar, y2=endPrice, color=color.yellow, width=3, style=line.style_solid)
    // Добавление линии в массив
    array.push(stepLines, stepLine)
    // Удаление старых линий, если превышен лимит
    maxLines = 100
    if array.size(stepLines) > maxLines
        oldLine = array.shift(stepLines)
        line.delete(oldLine)

// Опционально: Добавление маркеров для визуализации начала ступеньки
plotshape(isStepDown and not isStepDown[1], title="Step Down Detected", location=location.abovebar, color=color.yellow, style=shape.labelup, text="Step")