Smart Money Toolkit Pro
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «indicator smart money toolkit pro for tradingview.pine» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
«Smart Money Toolkit Pro» — индикатор для TradingView, написанный на Pine Script v6, отображаемый поверх графика цены (overlay). Основное назначение — визуализация рыночной структуры, уровней ликвидности и условий для оповещений.
Индикатор обнаруживает пивоты (pivot high/low) заданной глубины, строит метки структуры (HH, LH, HL, LL) и линии свинг-уровней. По соотношению последних свинг-максимумов и минимумов определяется текущий тренд (бычий или медвежий), который отображается фоновым цветом и информационной таблицей в правом верхнем углу.
Второй модуль реализует BOS (Break of Structure) и CHoCH (Change of Character): при пересечении цены уровней предыдущего свинга рисуются соответствующие линии и метки, а также формируются условия оповещений TradingView.
Третий модуль — ликвидность: определяет активные уровни BSL и SSL, выявляет равные максимумы/минимумы (EQH/EQL) с допуском по ATR и обнаруживает смахивания ликвидности (wick заходит за уровень, но закрытие возвращается выше/ниже). Все элементы управляются пользовательскими настройками.
Настройки программы
| Настройка | Описание |
|---|---|
| pivotLen | Глубина обнаружения пивотов — количество баров слева и справа для ta.pivothigh и ta.pivotlow. |
| showLabels | Отображать ли метки структуры (HH, LH, HL, LL) рядом с пивотами. |
| showSwings | Отображать ли горизонтальные линии свинг-высоких и свинг-нижних уровней. |
| extendLevels | Продлевать ли линии свинг-уровней вправо по графику (extend.right). |
| showTrendBG | Закрашивать ли фон графика цветом текущего тренда: зелёным при бычьем, красным при медвежьем. |
| bullColor | Цвет для бычьих элементов: метки структуры HH/HL, линии свинг-минимумов и фон при бычьем тренде. |
| bearColor | Цвет для медвежьих элементов: метки структуры LH/LL, линии свинг-максимумов и фон при медвежьем тренде. |
| showBOS | Отображать ли линии и метки Break of Structure (BOS) — пробой предыдущего свинг-уровня в направлении тренда. |
| showCHoCH | Отображать ли линии и метки Change of Character (CHoCH) — пробой свинг-уровня против тренда. |
| showLiquidity | Отображать ли активные уровни покупательской (BSL) и продажной (SSL) ликвидности. |
| showSweeps | Отображать ли маркеры и перерисовку линий при смахивании ликвидности (wick заходит за уровень, закрытие возвращается). |
| showEqualHL | Отображать ли линии и метки равных максимумов (EQH) и равных минимумов (EQL). |
| liquidityExtend | Продлевать ли линии уровней ликвидности (BSL, SSL) вправо по графику. |
| eqToleranceATR | Множитель ATR, определяющий допуск для признания двух максимумов или минимумов равными (EQH/EQL). |
| liqLineWidth | Толщина линий уровней ликвидности (BSL, SSL) в пикселях. |
| maxLiquidityHistory | Максимальное количество хранимых исторических линий ликвидности. При превышении старейшие линии удаляются. |
| bslColor | Цвет линий и меток уровней покупательской ликвидности (BSL) и равных максимумов (EQH). |
| sslColor | Цвет линий и меток уровней продажной ликвидности (SSL) и равных минимумов (EQL). |
| sweepBullColor | Цвет маркеров и перерисованных линий при смахивании продажной ликвидности (SSL Sweep). |
| sweepBearColor | Цвет маркеров и перерисованных линий при смахивании покупательской ликвидности (BSL Sweep). |
Поиск по коду файла
indicator("Smart Money Toolkit Pro", shorttitle="SMT Pro", overlay=true, max_lines_count=500, max_labels_count=500)
pivotLen = input.int(8, "Pivot Strength", minval=2)
showLabels = input.bool(true, "Show Structure Labels")
showSwings = input.bool(true, "Show Swing Levels")
extendLevels = input.bool(true, "Extend Swing Levels")
showTrendBG = input.bool(true, "Trend Background")
bullColor = input.color(color.lime, "Bullish Color")
bearColor = input.color(color.red, "Bearish Color")
ph = ta.pivothigh(high, pivotLen, pivotLen)
pl = ta.pivotlow(low, pivotLen, pivotLen)
var float lastHigh = na
var float lastLow = na
var int lastHighBar = na
var int lastLowBar = na
if not na(ph)
lastHigh := ph
lastHighBar := bar_index - pivotLen
if not na(pl)
lastLow := pl
lastLowBar := bar_index - pivotLen
var float prevHigh = na
var float prevLow = na
string highType = ""
string lowType = ""
if not na(ph)
highType := na(prevHigh) ? "H" : ph > prevHigh ? "HH" : "LH"
prevHigh := ph
if not na(pl)
lowType := na(prevLow) ? "L" : pl > prevLow ? "HL" : "LL"
prevLow := pl
if showLabels
if not na(ph)
label.new(
lastHighBar,
lastHigh,
highType,
style=label.style_label_down,
color=highType=="HH"?bullColor:bearColor,
textcolor=color.white)
if not na(pl)
label.new(
lastLowBar,
lastLow,
lowType,
style=label.style_label_up,
color=lowType=="HL"?bullColor:bearColor,
textcolor=color.white)
var line highLine = na
var line lowLine = na
if showSwings
if not na(ph)
line.delete(highLine)
highLine := line.new(
lastHighBar,
lastHigh,
bar_index,
lastHigh,
extend=extendLevels?extend.right:extend.none,
color=bearColor,
width=2)
if not na(pl)
line.delete(lowLine)
lowLine := line.new(
lastLowBar,
lastLow,
bar_index,
lastLow,
extend=extendLevels?extend.right:extend.none,
color=bullColor,
width=2)
bool bullish = false
if not na(lastHighBar) and not na(lastLowBar)
bullish := lastLowBar > lastHighBar
bgcolor(showTrendBG ? (bullish ? color.new(bullColor,92) : color.new(bearColor,92)) : na)
var table dash = table.new(position.top_right,2,3)
if barstate.islast
table.cell(dash,0,0,"Trend")
table.cell(dash,1,0,bullish?"Bullish":"Bearish")
table.cell(dash,0,1,"Last High")
table.cell(dash,1,1,str.tostring(lastHigh,format.mintick))
table.cell(dash,0,2,"Last Low")
table.cell(dash,1,2,str.tostring(lastLow,format.mintick))
showBOS = input.bool(true, "Show BOS")
showCHoCH = input.bool(true, "Show CHoCH")
var bool trendBull = bullish
bosBull = false
bosBear = false
chochBull = false
chochBear = false
if not na(lastHigh)
bosBull := ta.crossover(close, lastHigh) and trendBull
if not na(lastLow)
bosBear := ta.crossunder(close, lastLow) and not trendBull
if not na(lastHigh)
chochBull := ta.crossover(close, lastHigh) and not trendBull
if not na(lastLow)
chochBear := ta.crossunder(close, lastLow) and trendBull
if chochBull
trendBull := true
if chochBear
trendBull := false
var line bosLine = na
if bosBull and showBOS
line.delete(bosLine)
bosLine := line.new(
lastHighBar,
lastHigh,
bar_index,
lastHigh,
color=color.lime,
width=2)
if bosBear and showBOS
line.delete(bosLine)
bosLine := line.new(
lastLowBar,
lastLow,
bar_index,
lastLow,
color=color.red,
width=2)
if chochBull and showCHoCH
line.new(
lastHighBar,
lastHigh,
bar_index,
lastHigh,
color=color.aqua,
style=line.style_dashed,
width=2)
if chochBear and showCHoCH
line.new(
lastLowBar,
lastLow,
bar_index,
lastLow,
color=color.orange,
style=line.style_dashed,
width=2)
if bosBull and showBOS
label.new(
bar_index,
high,
"BOS",
style=label.style_label_down,
color=color.lime,
textcolor=color.black)
if bosBear and showBOS
label.new(
bar_index,
low,
"BOS",
style=label.style_label_up,
color=color.red,
textcolor=color.white)
if chochBull and showCHoCH
label.new(
bar_index,
high,
"CHoCH",
style=label.style_label_down,
color=color.aqua,
textcolor=color.black)
if chochBear and showCHoCH
label.new(
bar_index,
low,
"CHoCH",
style=label.style_label_up,
color=color.orange,
textcolor=color.black)
alertcondition(bosBull, "Bullish BOS", "Bullish Break of Structure")
alertcondition(bosBear, "Bearish BOS", "Bearish Break of Structure")
alertcondition(chochBull, "Bullish CHoCH", "Bullish Change of Character")
alertcondition(chochBear, "Bearish CHoCH", "Bearish Change of Character")
var table wm = table.new(position.bottom_right, 1, 1)
if barstate.isfirst
table.cell(wm, 0, 0, "Telegram @SimpleForexTools", text_color = color.new(color.gray, 70), text_size = size.large)
groupLiquidity = "Liquidity Engine"
showLiquidity = input.bool(true, "Show Liquidity Levels", group=groupLiquidity)
showSweeps = input.bool(true, "Show Liquidity Sweeps", group=groupLiquidity)
showEqualHL = input.bool(true, "Show Equal High / Low", group=groupLiquidity)
liquidityExtend = input.bool(true, "Extend Liquidity Levels", group=groupLiquidity)
eqToleranceATR = input.float(
0.10,
"Equal High/Low ATR Tolerance",
minval=0.01,
maxval=1.00,
step=0.01,
group=groupLiquidity)
liqLineWidth = input.int(
1,
"Liquidity Line Width",
minval=1,
maxval=4,
group=groupLiquidity)
maxLiquidityHistory = input.int(
20,
"Maximum Historical Liquidity Levels",
minval=2,
maxval=100,
group=groupLiquidity)
bslColor = input.color(
color.fuchsia,
"Buy-Side Liquidity Color",
group=groupLiquidity)
sslColor = input.color(
color.aqua,
"Sell-Side Liquidity Color",
group=groupLiquidity)
sweepBullColor = input.color(
color.lime,
"Bullish Sweep Color",
group=groupLiquidity)
sweepBearColor = input.color(
color.red,
"Bearish Sweep Color",
group=groupLiquidity)
liqATR = ta.atr(14)
equalTolerance = liqATR * eqToleranceATR
var float liquidityPreviousHigh = na
var float liquidityPreviousLow = na
var int liquidityPreviousHighBar = na
var int liquidityPreviousLowBar = na
var float activeBSL = na
var float activeSSL = na
var int activeBSLBar = na
var int activeSSLBar = na
var bool bslAvailable = false
var bool sslAvailable = false
var line activeBSLLine = na
var line activeSSLLine = na
var array<line> liquidityLines = array.new<line>()
storeLiquidityLine(line newLine) =>
array.push(liquidityLines, newLine)
if array.size(liquidityLines) > maxLiquidityHistПоказано первые 50% кода (символов: 9895)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.