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

SMC + Precise SMA and EMA Trend Indicator by entry algo

tradingview_+_precise_sma_and_ema_trend_indicator_by_entry_algo.pine
Вы автор или правообладатель?

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

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

О программе

Инструмент для TradingView на Pine Script v5, совмещающий элементы анализа Smart Money Concepts с тренд-индикатором на основе скользящих средних. Расчёт технических показателей выполняется встроенными средствами Pine Script, результаты отображаются в виде линий, заливок, графических меток и сигналов на графике. Поддерживаются пользовательские оповещения TradingView через alertcondition.

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

НастройкаОписание
PP Период пивота детектора ордер-блоков — Целое число, определяет период для обнаружения пивотных точек при построении ордер-блоков.
OBVaP Период действия ордер-блока (свечи) — Целое число, задаёт количество свечей, в течение которых ордер-блок считается действительным.
ShowDmainCh Показать зону спроса главную — Логический переключатель отображения основной зоны спроса с происхождением ChoCh.
ColorDmainCh Цвет зоны спроса главной — Цвет для отрисовки основной зоны спроса.
ShowSmainCh Показать зону предложения главную — Логический переключатель отображения основной зоны предложения с происхождением ChoCh.
ColorSmainCh Цвет зоны предложения главной — Цвет для отрисовки основной зоны предложения.
PShowDeFVG Показать зону спроса FVG — Логический переключатель отображения зон Fair Value Gap в зоне спроса.
PShowSuFVG Показать зону предложения FVG — Логический переключатель отображения зон Fair Value Gap в зоне предложения.
PFVGFilter Фильтр FVG — Логический переключатель включения фильтрации зон FVG по ширине.
PFVGFilterType Тип фильтра FVG — Текстовое значение, задаёт степень фильтрации FVG от агрессивной до оборонительной.
ShowSHLL Показать статическую линию высокой ликвидности — Логический переключатель отображения статической линии верхней ликвидности.
ShowSLLL Показать статическую линию низкой ликвидности — Логический переключатель отображения статической линии нижней ликвидности.
ShowDHLL Показать динамическую линию высокой ликвидности — Логический переключатель отображения динамической линии верхней ликвидности.
ShowDLLL Показать динамическую линию низкой ликвидности — Логический переключатель отображения динамической линии нижней ликвидности.
SPP Период пивота статики — Целое число, определяет период для расчёта статических точек пивота.
DPP Период пивота динамики — Целое число, определяет период для расчёта динамических точек пивота.
SLLS Чувствительность статической линии ликвидности — Числовое значение, задаёт чувствительность статической линии ликвидности.
DLLS Чувствительность динамической линии ликвидности — Числовое значение, задаёт чувствительность динамической линии ликвидности.
smaLength Длина SMA — Целое число, определяет период простой скользящей средней.
emaLength Длина EMA — Целое число, определяет период экспоненциальной скользящей средней.
reactionEmaLength Длина реакционной EMA — Целое число, определяет период быстрой EMA для определения направления тренда.
lookbackPeriod Период отката нормализации — Целое число, задаёт окно для нормализации показателя отклонения от EMA.
upColor Цвет восходящего тренда — Цвет заливки области, когда цена находится выше EMA.
downColor Цвет нисходящего тренда — Цвет заливки области, когда цена находится ниже EMA.
neutralColor Цвет нейтрального тренда — Цвет, используемый для нейтрального состояния тренда.
maLength2 Длина скользящей средней — Целое число, определяет период для расчёта выбранной скользящей средней.
atrLength Длина ATR — Целое число, задаёт период для расчёта среднего истинного диапазона.
srMultiplier Множитель полос — Числовое значение, определяет множитель ATR для построения полос поддержки и сопротивления.
signalType Тип сигнала — Текстовое значение, выбирает базовое значение (тень или закрытие) для генерации сигналов.
bandWidth Ширина полосы — Целое число, задаёт толщину линий полос поддержки и сопротивления.
maType Тип скользящей средней — Текстовое значение, выбирает тип скользящей средней из списка доступных.
Up Цвет верхней полосы — Цвет верхней полосы поддержки и сопротивления.
Dn Цвет нижней полосы — Цвет нижней полосы поддержки и сопротивления.
almaOffset Смещение ALMA — Числовое значение, задаёт смещение для Arnaud Legoux Moving Average.
almaSigma Сигма ALMA — Числовое значение, задаёт параметр сигмы для Arnaud Legoux Moving Average.
kamaFast Быстрый период KAMA — Числовое значение, определяет быстрый период адаптивной скользящей средней Коузена.
kamaSlow Медленный период KAMA — Числовое значение, определяет медленный период адаптивной скользящей средней Коузена.
lsmaOffset Смещение LSMA — Целое число, задаёт смещение для регрессионной линии наименьших квадратов.
Получить полный код

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

indicator("SMC + Precise SMA and EMA Trend Indicator by entry algo ", overlay=true, max_bars_back=5000, max_boxes_count=500, max_labels_count=500, max_lines_count=500)

import TFlab/OrderBlockRefiner_TradingFinder/2 as Refiner
import TFlab/OrderBlockDrawing_TradingFinder/1 as Drawing
import TFlab/FVGDetectorLibrary/1 as FVG
import TFlab/LiquidityFinderLibrary/1 as Liq
import TFlab/AlertSenderLibrary_TradingFinder/1 as Alert
import TradingView/ta/7

PP = input.int(5, 'Pivot Period of Order Blocks Detector', group = 'Logic Parameter', minval = 1)
OBVaP = input.int(500, 'Order Block Validity Period (Bar)', group = 'Logic Parameter', maxval = 4998, minval = 10, tooltip = 'You can set the validity period of each Order Block based on the number of candles that have passed since the origin of the Order Block.')

ShowDmainCh = input.bool(true, 'Demand Main Zone, "ChoCh" Origin.', group = 'Order Blocks Display', inline = 'OB 1')
ColorDmainCh = input.color(color.rgb(60, 176, 68, 65), '', group = 'Order Blocks Display', inline = 'OB 1')
ShowSmainCh = input.bool(true, 'Supply Main Zone, "ChoCh" Origin...', group ='Order Blocks Display', inline = 'OB 4')
ColorSmainCh = input.color(color.rgb(191, 10, 48, 75), '', group = 'Order Blocks Display', inline = 'OB 4')

PShowDeFVG = input.bool(true, ' Show Demand FVG', group = 'FVG')
PShowSuFVG = input.bool(true, ' Show Supply FVG', group = 'FVG')
PFVGFilter = input.bool(true, 'FVG Filter ............', group = 'FVG', inline = 'FVG Filter')
PFVGFilterType = input.string('Very Defensive', '', ['Very Aggressive', 'Aggressive', 'Defensive', 'Very Defensive'], group = 'FVG', inline = 'FVG Filter', tooltip = 'If it is "On", this filter will filter "FVGs" based on the width of the Zone.' + 'From "Very Aggressive" to "Very Defensive" the width of the "FVG" decreases.')

ShowSHLL = input.bool(true , 'Show Statics High Liquidity Line', group = 'Liquidity')
ShowSLLL = input.bool(true , 'Show Statics Low Liquidity Line', group = 'Liquidity')
ShowDHLL = input.bool(true , 'Show Dynamics High Liquidity Line', group = 'Liquidity')
ShowDLLL = input.bool(true , 'Show Dynamics Low Liquidity Line', group = 'Liquidity')
SPP = input.int(8 , 'Statics Period Pivot', group = 'Liquidity') // Statics Period Pivot
DPP = input.int(3 , 'Dynamics Period Pivot', group = 'Liquidity') // Dynamics Period Pivot
SLLS = input.float(0.30 , 'Statics Liquidity Line Sensitivity', maxval = 0.4 , minval = 0.0, step = 0.01, group = 'Liquidity') // Statics Liquidity Line Sensitivity
DLLS = input.float(1.00 , 'Dynamics Liquidity Line Sensitivity', maxval = 1.95 , minval = 0.4, step = 0.01, group = 'Liquidity') // Dynamics Liquidity Line Sensitivity

Open = open
High = high
Low = low
Close = close
Bar_Index = bar_index
HighPivot = ta.pivothigh(PP, PP)
LowPivot = ta.pivotlow(PP, PP)
HighValue = ta.valuewhen(HighPivot, High[PP], 0)
LowValue = ta.valuewhen(LowPivot, Low[PP], 0)
HighIndex = ta.valuewhen(HighPivot, Bar_Index[PP], 0)
LowIndex = ta.valuewhen(LowPivot, Bar_Index[PP], 0)

plotshape(series=HighPivot, location=location.abovebar, color=color.red, style=shape.labelup, title="High Pivot")
plotshape(series=LowPivot, location=location.belowbar, color=color.green, style=shape.labeldown, title="Low Pivot")

if (PShowDeFVG or PShowSuFVG)
    FVG.FVGDetector(PFVGFilter ? 'On' : 'Off', PFVGFilterType, PShowDeFVG, PShowSuFVG)

Liq.LLF(SPP, DPP, SLLS, DLLS, ShowSHLL, ShowSLLL, ShowDHLL, ShowDLLL)

smaLength = input.int(20, title="SMA Length")
emaLength = input.int(20, title="EMA Length")
reactionEmaLength = input.int(3, title="Reaction EMA Length")
lookbackPeriod = input.int(50, title="Lookback Period for Normalization")

sma = ta.sma(close, smaLength)
ema = ta.ema(close, emaLength)
reactionEma = ta.ema(close, reactionEmaLength)

upColor = input.color(color.new(color.green, 80), title="Up Trend Color")
downColor = input.color(color.new(color.red, 80), title="Down Trend Color")
neutralColor = input.color(color.new(color.gray, 80), title="Neutral Trend Color")

trendColor = close > ema ? upColor : downColor

plot1 = plot(ema, title="EMA", color=input.color(color.new(color.blue, 0), title="EMA Color"))
plot2 = plot(reactionEma, title="Reaction EMA", color=input.color(color.new(color.blue, 0), title="Reaction EMA Color"))

fill(plot1, plot2, color=trendColor, title="Trend Fill")

longCondition = ta.crossover(reactionEma, sma) and trendColor == upColor
shortCondition = ta.crossunder(reactionEma, sma) and trendColor == downColor

longConditionConfirmed = longCondition and close[1] > ema[1] and close > ema
shortConditionConfirmed = shortCondition and close[1] < ema[1] and close < ema

distFromEmaLong = math.abs(close - ema) / ema * 100
distFromEmaShort = math.abs(close - ema) / ema * 100

maxDistLong = ta.highest(distFromEmaLong, lookbackPeriod)
maxDistShort = ta.highest(distFromEmaShort, lookbackPeriod)

strengthLong = (distFromEmaLong / maxDistLong) * 100
strengthShort = (distFromEmaShort / maxDistShort) * 100

var string lastSignal = na

if longConditionConfirmed and (na(lastSignal) or lastSignal == "Sell")
    label.new(bar_index, low, text="Buy\n" + str.tostring(strengthLong, "#.##") + "% Strong", color=color.green, textcolor=color.white, style=label.style_label_up, yloc=yloc.belowbar)
    lastSignal := "Buy"
else if shortConditionConfirmed and (na(lastSignal) or lastSignal == "Buy")
    label.new(bar_index, high, text="Sell\n" + str.tostring(strengthShort, "#.##") + "% Strong", color=color.red, textcolor=color.white, style=label.style_label_down, yloc=yloc.abovebar)
    lastSignal := "Sell"

alertcondition(longConditionConfirmed and (na(lastSignal) or lastSignal == "Sell"), title="Long Signal", message="Long Signal Generated")
alertcondition(shortConditionConfirmed and (na(lastSignal) or lastS

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

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

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

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

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

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

Стоимость полного кода
972₽ ≈ $11.88