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

Dynamic SMC & Market Structure PRO

indicator_dynamic_smc_&_market_structure_pro_for_tradingview.pine
Вы автор или правообладатель?

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

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

О программе

Dynamic SMC & Market Structure PRO — это индикатор для TradingView, написанный на Pine Script версии 6. Он отображается на графике цены (overlay = true) и предназначен для визуального анализа рыночной структуры. Индикатор рассчитывает технические показатели средствами Pine Script и получает данные дневного таймфрейма через request.security().

В состав отображаемых элементов входят: метки крупных свинговых максимумов и минимумов, линии структуры BOS и CHoCH, динамические зоны предложения и спроса, уровни PDH и PDL, уровни сессионных максимумов и минимумов, а также линия равновесия 0.5 по Фибоначчи. Дополнительно выводится информационная панель с текущим состоянием структуры, зоны цены и количества активных зон.

Все параметры настраиваются через панель входных данных: можно включать и отключать отдельные блоки, менять цвета, чувствительность расчётов, максимальное число зон и прозрачность. Индикатор не является торговым советником и не выполняет симуляцию сделок — это инструмент визуального анализа и отображения.

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

НастройкаОписание
show_major_swings Включает отображение меток крупных свинговых максимумов и минимумов.
major_len Чувствительность поиска крупных свинговых экстремумов (количество баров слева и справа).
c_major_hh Цвет меток крупных свинговых максимумов.
c_major_hl Цвет меток крупных свинговых минимумов.
show_smc Включает отображение линий структуры BOS и CHoCH.
smc_len Чувствительность определения структуры (длина пивота для BOS/CHoCH).
c_bull_smc Цвет линий и меток бычьей структуры (BOS/CHoCH вверх).
c_bear_smc Цвет линий и меток медвежьей структуры (BOS/CHoCH вниз).
show_zones Включает отображение динамических зон предложения и спроса.
max_zones Максимальное количество одновременно отображаемых активных зон с каждой стороны.
zone_opacity Степень прозрачности заливки зон предложения и спроса (0–100).
c_supply_zone Цвет заливки и границ зон предложения.
c_demand_zone Цвет заливки и границ зон спроса.
show_pdh_pdl Включает отображение активных уровней предыдущего дневного максимума и минимума.
c_pdh Цвет линии и метки предыдущего дневного максимума (PDH).
c_pdl Цвет линии и метки предыдущего дневного минимума (PDL).
show_sessions Включает отображение линий максимума и минимума азиатской сессии.
c_asia Цвет линий максимума и минимума азиатской сессии.
merge_dist_pips Порог расстояния в пипсах (или долларах для золота), ниже которого линии сессий не отображаются рядом с уровнями PDH/PDL.
show_eq Включает отображение линии равновесия 0.5 по Фибоначчи.
eq_len Количество баров для расчёта диапазона линии равновесия 0.5.
c_eq Цвет линии равновесия 0.5 по Фибоначчи.
show_panel Включает отображение информационной панели с состоянием структуры и зон.
Получить полный код

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

indicator("Dynamic SMC & Market Structure PRO", "Dynamic SMC PRO", overlay = true, max_lines_count = 500, max_boxes_count = 100, max_labels_count = 500)

g_major           = "===== MAJOR SWING EXTREMES (SHAPES ONLY) ====="
show_major_swings = input.bool(true, "Show Major Swing High/Low Shapes", group=g_major)
major_len         = input.int(20, "Major Swing Lookback Sensitivity", minval=5, maxval=100, group=g_major)
c_major_hh        = input.color(#ff1744, "Major High Color (Red Shape)", group=g_major)
c_major_hl        = input.color(#00e676, "Major Low Color (Green Shape)", group=g_major)

g_smc             = "===== SMART MONEY STRUCTURE (BOS & CHOCH) ====="
show_smc          = input.bool(true, "Show BOS & CHoCH Lines", group=g_smc)
smc_len           = input.int(8, "Structure Sensitivity (Pivot Length)", minval=3, group=g_smc)
c_bull_smc        = input.color(#00e676, "Bullish Structure Color", group=g_smc)
c_bear_smc        = input.color(#ff1744, "Bearish Structure Color", group=g_smc)

g_zones           = "===== DYNAMIC SUPPLY & DEMAND ZONES ====="
show_zones        = input.bool(true, "Show Dynamic Supply & Demand Zones", group=g_zones)
max_zones         = input.int(4, "Max Active Zones Per Side", minval=1, maxval=10, group=g_zones)
zone_opacity      = input.int(80, "Zone Transparency (0-100)", minval=0, maxval=100, group=g_zones)
c_supply_zone     = input.color(#ff1744, "Supply Zone Color", group=g_zones)
c_demand_zone     = input.color(#00e676, "Demand Zone Color", group=g_zones)

g_pdh             = "===== AUTO-DISAPPEARING PDH & PDL ====="
show_pdh_pdl      = input.bool(true, "Show Active PDH / PDL", group=g_pdh)
c_pdh             = input.color(#00e5ff, "PDH Color", group=g_pdh)
c_pdl             = input.color(#ffea00, "PDL Color", group=g_pdh)

g_sess            = "===== AUTO-DISAPPEARING SESSION HIGHS & LOWS ====="
show_sessions     = input.bool(true, "Show Session High/Low Lines", group=g_sess)
c_asia            = input.color(#29b6f6, "Asia High/Low Color", group=g_sess)
merge_dist_pips   = input.float(15.0, "Clutter Distance Threshold (Pips / Gold $)", minval=1.0, group=g_sess)

g_fib             = "===== FIBONACCI 0.5 EQUILIBRIUM LEVEL ====="
show_eq           = input.bool(true, "Show 0.5 Equilibrium Line", group=g_fib)
eq_len            = input.int(35, "Equilibrium Lookback Range", minval=10, group=g_fib)
c_eq              = input.color(#e040fb, "0.5 EQ Color", group=g_fib)

g_panel           = "===== DASHBOARD PANEL ====="
show_panel        = input.bool(true, "Show Information Panel", group=g_panel)

atrVal = ta.atr(14)
pip_threshold = merge_dist_pips * syminfo.mintick * (syminfo.type == "forex" ? 10 : 100)

major_ph = ta.pivothigh(high, major_len, major_len)
major_pl = ta.pivotlow(low, major_len, major_len)

if show_major_swings and not na(major_ph)
    label.new(bar_index - major_len, high[major_len] + (atrVal * 0.3), "", color=c_major_hh, style=label.style_label_down, size=size.tiny)

if show_major_swings and not na(major_pl)
    label.new(bar_index - major_len, low[major_len] - (atrVal * 0.3), "", color=c_major_hl, style=label.style_label_up, size=size.tiny)

smc_ph = ta.pivothigh(high, smc_len, smc_len)
smc_pl = ta.pivotlow(low, smc_len, smc_len)

var float last_smc_ph = na
var int last_smc_ph_idx = na
var float last_smc_pl = na
var int last_smc_pl_idx = na
var int trend_direction = 0

if not na(smc_ph)
    last_smc_ph := smc_ph
    last_smc_ph_idx := bar_index - smc_len

if not na(smc_pl)
    last_smc_pl := smc_pl
    last_smc_pl_idx := bar_index - smc_len

if show_smc and not na(last_smc_ph) and ta.crossover(close, last_smc_ph)
    string tag_text = trend_direction == -1 ? "CHoCH" : "BOS"
    line.new(last_smc_ph_idx, last_smc_ph, bar_index, last_smc_ph, color=c_bull_smc, style=line.style_dashed, width=1)
    label.new(math.floor((last_smc_ph_idx + bar_index) / 2), last_smc_ph, tag_text, color=color.new(#000000, 100), textcolor=c_bull_smc, style=label.style_label_down, size=size.small)
    trend_direction := 1
    last_smc_ph := na

if show_smc and not na(last_smc_pl) and ta.crossunder(close, last_smc_pl)
    string tag_text = trend_direction == 1 ? "CHoCH" : "BOS"
    line.new(last_smc_pl_idx, last_smc_pl, bar_index, last_smc_pl, color=c_bear_smc, style=line.style_dashed, width=1)
    label.new(math.floor((last_smc_pl_idx + bar_index) / 2), last_smc_pl, tag_text, color=color.new(#000000, 100), textcolor=c_bear_smc, style=label.style_label_up, size=size.small)
    trend_direction := -1
    last_smc_pl := na

var box[] supply_boxes = array.new_box()
var box[] demand_boxes = array.new_box()

zone_ph = ta.pivothigh(high, 6, 6)
zone_pl = ta.pivotlow(low, 6, 6)

if show_zones and not na(zone_ph)
    box new_sup = box.new(left=bar_index - 6, top=high[6], right=bar_index + 12, bottom=math.max(open[6], close[6]), border_color=c_supply_zone, bgcolor=color.new(c_supply_zone, zone_opacity), text="SUPPLY", text_color=color.white, text_size=size.tiny, text_halign=text.align_right)
    array.push(supply_boxes, new_sup)
    if array.size(supply_boxes) > max_zones
        box.delete(array.shift(supply_boxes))

if show_zones and not na(zone_pl)
    box new_dem = box.new(left=bar_index - 6, top=math.min(open[6], close[6]), right=bar_index + 12, bottom=low[6], border_color=c_demand_zone, bgcolor=color.new(c_demand_zone, zone_opacity), text="DEMAND", text_color=color.black, text_size=size.tiny, text_halign=text.align_right)
    array.push(demand_boxes, new_dem)
    if array.size(demand_boxes) > max_zones
        box.delete(array.shift(demand_boxes))

if show_zones and array.size(supply_boxes) 

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

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

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

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

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

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

Стоимость полного кода
915,60₽ ≈ $11.19