← К каталогу
Исходный код · ID 4588

Liquidity Hunter Pro SMC Edition

indicator liquidity hunter pro smc edition for tradingview.pine
Вы автор или правообладатель?

Сообщите нам, если считаете, что материал размещён без разрешения.

Краткий обзор

О программе

Это индикатор для TradingView, разработанный на Pine Script v6, который предназначен для анализа рыночной структуры (SMC) и поиска потенциальных точек входа на основе концепций ликвидности. Индикатор визуализирует различные элементы, такие как смены структуры (BOS), сборы ликвидности (Liquidity Sweeps), а также ключевые паттерны, включая Order Blocks (OB) и Fair Value Gaps (FVG).

Инструмент использует расчеты на основе пивотов (swing high/low) и среднего истинного диапазона (ATR) для определения условий сбора ликвидности. При обнаружении определенных сигналов, индикатор рассчитывает и отображает уровни входа, стоп-лосса и три целевых уровня прибыли с использованием заданных соотношений Риск:Вознаграждение (RR).

Пользователь может настраивать отображение различных элементов — от зон Order Blocks и FVG до индикаторов сборов ликвидности и самого дашборда. Индикатор также генерирует условия для оповещений при возникновении значимых событий на графике.

Настройки программы

НастройкаОписание
swingLen Длина для определения пиковых точек (Swing High/Low).
confirmBars Максимальное количество баров после сбора ликвидности для подтверждения сигнала.
atrLen Период для расчета ATR (Среднего истинного диапазона).
minBodyATR Минимальный размер тела свечи в ATR для признания свечи как потенциального разворота.
rr1 Соотношение Риск:Вознаграждение для первой цели прибыли (TP1).
rr2 Соотношение Риск:Вознаграждение для второй цели прибыли (TP2).
rr3 Соотношение Риск:Вознаграждение для третьей цели прибыли (TP3).
showLevels Отображать ли уровни входа, стоп-лосса и целей прибыли.
showSweeps Отображать ли события сбора ликвидности (Liquidity Sweeps).
showBOS Отображать ли смену структуры (Break of Structure - BOS).
showOB Отображать ли зоны Order Blocks (OB).
showFVG Отображать ли Несбалансированные зоны (Fair Value Gaps - FVG).
showDash Отображать ли информационную панель (Dashboard).
obLookback Количество баров, которое используется для поиска Order Block.
extendBars Количество баров, на которое будут расширены зоны (OB, FVG) вправо.
rightBars Расстояние в барах, на которое будут вынесены метки уровней вправо от точки входа.
Получить полный код

Поиск по коду файла

indicator("Liquidity Hunter PRO SMC Edition", overlay=true, max_labels_count=200, max_lines_count=100, max_boxes_count=30)

swingLen     = input.int(5, "Swing Length", minval=2)
confirmBars  = input.int(10, "Max Bars After Sweep", minval=1)
atrLen       = input.int(14, "ATR Length", minval=1)
minBodyATR   = input.float(0.15, "Min Reversal Body (ATR)", minval=0, step=0.05)

rr1 = input.float(1.0, "TP1 Risk:Reward", minval=0.5, step=0.5)
rr2 = input.float(2.0, "TP2 Risk:Reward", minval=1.0, step=0.5)
rr3 = input.float(3.0, "TP3 Risk:Reward", minval=1.5, step=0.5)

showLevels = input.bool(true, "Show Entry / SL / TP")
showSweeps = input.bool(true, "Show Liquidity Sweeps")
showBOS    = input.bool(true, "Show BOS")
showOB     = input.bool(true, "Show Order Blocks")
showFVG    = input.bool(true, "Show Fair Value Gaps")
showDash   = input.bool(true, "Show Dashboard")

obLookback = input.int(15, "Order Block Search Bars", minval=2, maxval=50)
extendBars = input.int(30, "Zone Extension Bars", minval=5, maxval=200)
rightBars  = input.int(15, "Target Label Distance", minval=2, maxval=100)

ph = ta.pivothigh(high, swingLen, swingLen)
pl = ta.pivotlow(low, swingLen, swingLen)

var float swingHigh = na
var float swingLow  = na

if not na(ph)
    swingHigh := ph
if not na(pl)
    swingLow := pl

atr  = ta.atr(atrLen)
body = math.abs(close - open)

bullCandle = close > open and body >= atr * minBodyATR
bearCandle = close < open and body >= atr * minBodyATR

sweepLow  = barstate.isconfirmed and not na(swingLow) and low < swingLow and close > swingLow
sweepHigh = barstate.isconfirmed and not na(swingHigh) and high > swingHigh and close < swingHigh

bullBOS = barstate.isconfirmed and not na(swingHigh) and ta.crossover(close, swingHigh)
bearBOS = barstate.isconfirmed and not na(swingLow) and ta.crossunder(close, swingLow)

plotshape(showBOS and bullBOS, title="Bullish BOS", text="BOS ↑", style=shape.labelup, location=location.belowbar, color=color.teal, textcolor=color.white, size=size.tiny)
plotshape(showBOS and bearBOS, title="Bearish BOS", text="BOS ↓", style=shape.labeldown, location=location.abovebar, color=color.maroon, textcolor=color.white, size=size.tiny)

plotshape(showSweeps and sweepLow, title="Low Liquidity Sweep", style=shape.circle, location=location.belowbar, color=color.aqua, size=size.tiny)
plotshape(showSweeps and sweepHigh, title="High Liquidity Sweep", style=shape.circle, location=location.abovebar, color=color.orange, size=size.tiny)

var box bullOB = na
var box bearOB = na

if showOB and bullBOS
    int bullOffset = na
    float bullTop = na
    float bullBottom = na

    for i = 1 to obLookback
        if na(bullOffset) and close[i] < open[i]
            bullOffset := i
            bullTop := high[i]
            bullBottom := low[i]

    if not na(bullOffset)
        if not na(bullOB)
            box.delete(bullOB)
        bullOB := box.new(left=bar_index - bullOffset, top=bullTop, right=bar_index + extendBars, bottom=bullBottom, xloc=xloc.bar_index, bgcolor=color.new(color.green, 85), border_color=color.lime, text="Bullish OB", text_color=color.lime, text_size=size.tiny)

if showOB and bearBOS
    int bearOffset = na
    float bearTop = na
    float bearBottom = na

    for i = 1 to obLookback
        if na(bearOffset) and close[i] > open[i]
            bearOffset := i
            bearTop := high[i]
            bearBottom := low[i]

    if not na(bearOffset)
        if not na(bearOB)
            box.delete(bearOB)
        bearOB := box.new(left=bar_index - bearOffset, top=bearTop, right=bar_index + extendBars, bottom=bearBottom, xloc=xloc.bar_index, bgcolor=color.new(color.red, 85), border_color=color.red, text="Bearish OB", text_color=color.red, text_size=size.tiny)

var box bullFVG = na
var box bearFVG = na

bullGap = barstate.isconfirmed and bar_index >= 2 and low > high[2]
bearGap = barstate.isconfirmed and bar_index >= 2 and high < low[2]

if showFVG and bullGap
    if not na(bullFVG)
        box.delete(bullFVG)
    bullFVG := box.new(left=bar_index - 2, top=low, right=bar_index + extendBars, bottom=high[2], xloc=xloc.bar_index, bgcolor=color.new(color.aqua, 86), border_color=color.aqua, text="Bullish FVG", text_color=color.aqua, text_size=size.tiny)

if showFVG and bearGap
    if not na(bearFVG)
        box.delete(bearFVG)
    bearFVG := box.new(left=bar_index - 2, top=low[2], right=bar_index + extendBars, bottom=high, xloc=xloc.bar_index, bgcolor=color.new(color.orange, 86), border_color=color.orange, text="Bearish FVG", text_color=color.orange, text_size=size.tiny)

if barstate.islast
    if not na(bullOB)
        box.set_right(bullOB, bar_index + extendBars)
    if not na(bearOB)
        box.set_right(bearOB, bar_index + extendBars)
    if not na(bullFVG)
        box.set_right(bullFVG, bar_index + extendBars)
    if not na(bearFVG)
        box.set_right(bearFVG, bar_index + extendBars)

var bool waitBull = false
var bool waitBear = false
var float bullSL = na
var float bearSL = na
var float bullMSS = na
var float bearMSS = na
var int bullBar = na
var int bearBar = na

if sweepLow and not na(swingHigh)
    waitBull := true
    waitBear := false
    bullSL := low
    bullMSS := swingHigh
    bullBar := bar_index

if sweepHigh and not na(swingLow)
    waitBear := true
    waitBull := false
    bearSL := high
    bearMSS := swingLow
    bearBar := bar_index

if waitBull and not na(bullBar) and bar_index - bullBar > confirmBars
    waitBull := false

if waitBear and not na(bearBar) and bar_index - bearBar > confirmBars
    waitBear := false

buySignal = barstate.isconfirmed and waitBull and not na(bullMSS) and close > bullMSS and bullCandle and close > bullSL
sellSignal = barstate.isconfi

Показано первые 50% кода (символов: 9467)

Открыть по тарифу

Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.

Разовая покупка файла

На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.

Чтобы оформить заказ, введите email и перейдите к оплате.

Стоимость полного кода
946,70₽ ≈ $11.62