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? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.