Minimal Multi-Strategy Overlay
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «indicator minimal multi-strategy overlay for tradingview.pine» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Minimal Multi-Strategy Overlay — это индикатор-оверлей для TradingView (Pine Script v6), который объединяет несколько инструментов анализа на одном графике. Он отображает уровни CRT/PO3 (диапазон предшествующего свечи более высокого таймфрейма), максимумы и минимумы ночной торговой сессии, уровни предыдущего торгового дня и сессионный VWAP. Все эти уровни рисуются поверх цены и автоматически скрываются на дневных и старших таймфреймах.
Индикатор также обнаруживает Fair Value Gaps (пропуски справедливой стоимости) и их инверсии (IFVG), визуализируя их в виде цветных прямоугольников с возможностью текстовых меток. При инверсии зоны меняет цвет, а при восстановлении цены удаляется. Дополнительно реализована функция SMT Divergence — сравнение пивотов текущего инструмента с пивотами коррелированного символа для выявления расхождений.
Для каждого из механизмов предусмотрены отдельные переключатели видимости, а также настраиваются таймфрейм, часовой пояс, размеры зон и цветовая схема. Индикатор поддерживает оповещения TradingView через alertcondition для ключевых событий: формирование FVG, инверсия FVG, SMT-дивергенция и CRT-реверсия.
Настройки программы
| Настройка | Описание |
|---|---|
| showCRT | Показывать CRT / PO3 Range — Включает отображение уровней CRT/PO3 (диапазон предшествующей свечи более высокого таймфрейма). |
| showON | Показывать Overnight High/Low — Включает отображение максимума и минимума ночной торговой сессии. |
| showPDHL | Показывать Prior Day High/Low — Включает отображение максимума и минимума предыдущего торгового дня. |
| showVWAP | Показывать Session VWAP — Включает отображение сессионного VWAP на графике. |
| showFVG | Показывать Fair Value Gaps — Включает обнаружение и отображение Fair Value Gaps на графике. |
| showFVGLbl | Показывать метки FVG — Включает отображение текстовых меток «FVG» и «IFVG» на соответствующих зонах. |
| showSMT | Показывать SMT Divergence — Включает отображение SMT-дивергенции (сравнение пивотов текущего инструмента и коррелированного символа). |
| crtTF | Таймфрейм CRT / PO3 — Таймфрейм, с которого берётся диапазон предшествующей свечи для уровней CRT/PO3. |
| onSession | Окончание торговой сессии — Временное окно торговой сессии, в рамках которого отслеживаются максимум и минимум ночной сессии. |
| sessTZ | Часовой пояс сессии — Часовой пояс, используемый для определения торговой сессии. |
| minGapTicks | Минимальный размер FVG (тики) — Минимальный размер FVG в тиках. При значении 0 обнаружение FVG отключается. |
| maxSessions | Максимум сессий зоны — Максимальное количество торговых сессий, в течение которых FVG-зона сохраняется на графике. |
| corrSymbol | Коррелированный символ — Торговый инструмент, пивоты которого используются для расчёта SMT-дивергенции. |
| pivotLen | Глубина поиска пивотов — Количество баров с каждой стороны для поиска пивотов при расчёте SMT-дивергенции. |
| maxPivotAgeBars | Максимум баров между пивотами — Максимальное количество баров между пивотами, при котором SMT-дивергенция считается актуальной. |
| lineWidth | Толщина линий — Толщина линий уровней и границ зон в пикселях. |
| levelColor | Цвет уровней — Цвет справочных линий: CRT/PO3, уровней предыдущего дня и сессионного VWAP. |
| bullColor | Бычий цвет — Цвет бычьих отметок (FVG бычьего направления, бычьи SMT-метки). |
| bearColor | Медвежий цвет — Цвет медвежьих отметок (FVG медвежьего направления, медвежьи SMT-метки). |
Поиск по коду файла
indicator("Minimal Multi-Strategy Overlay", overlay=true, max_boxes_count=200, max_lines_count=200, max_labels_count=200)
showCRT = input.bool(true, "CRT / PO3 Range", group="Levels")
showON = input.bool(false, "Overnight High/Low", group="Levels")
showPDHL = input.bool(true, "Prior Day High/Low", group="Levels")
showVWAP = input.bool(true, "Session VWAP", group="Levels")
showFVG = input.bool(true, "Fair Value Gaps", group="FVG / IFVG")
showFVGLbl = input.bool(true, "FVG Text Labels", group="FVG / IFVG")
showSMT = input.bool(true, "SMT Divergence", group="SMT Divergence")
crtTF = input.timeframe("240", "CRT / PO3 Timeframe (prior candle's range)", group="Levels")
onSession = input.session("1800-0930", "Overnight Window", group="Levels")
sessTZ = input.string("America/New_York", "Session Timezone", group="Levels")
minGapTicks = input.float(0.0, "Min FVG Size (ticks, 0 = off)", minval=0.0, group="FVG / IFVG")
maxSessions = input.int(3, "Max Trading Sessions to Keep a Zone", minval=1, maxval=20, group="FVG / IFVG")
corrSymbol = input.symbol("CME_MINI:ES1!", "Correlated Symbol", group="SMT Divergence")
pivotLen = input.int(5, "Pivot Lookback (bars each side)", minval=1, maxval=30, group="SMT Divergence")
maxPivotAgeBars = input.int(20, "Max Bars Between Pivots", minval=1, maxval=200, group="SMT Divergence")
lineWidth = input.int(1, "Line Width", minval=1, maxval=3, group="Style")
levelColor = input.color(color.yellow, "Reference Lines (CRT / Prior Day / VWAP)", group="Style")
bullColor = input.color(color.new(color.black, 0), "Bullish Color", group="Style")
bearColor = input.color(color.new(#8b2e2e, 0), "Bearish Color", group="Style")
isIntraday = timeframe.isintraday
var int sessionCounter = 0
newTradingSession = ta.change(time("D")) != 0
if newTradingSession
sessionCounter += 1
crtHigh = request.security(syminfo.tickerid, crtTF, high[1], lookahead=barmerge.lookahead_off)
crtLow = request.security(syminfo.tickerid, crtTF, low[1], lookahead=barmerge.lookahead_off)
plot(isIntraday and showCRT ? crtHigh : na, "CRT High", color=levelColor, linewidth=lineWidth, display=display.none)
plot(isIntraday and showCRT ? crtLow : na, "CRT Low", color=levelColor, linewidth=lineWidth, display=display.none)
crtBullish = isIntraday and showCRT and low < crtLow and close > crtLow
crtBearish = isIntraday and showCRT and high > crtHigh and close < crtHigh
if crtBullish
label.new(bar_index, low, "", style=label.style_circle, color=bullColor, size=size.tiny,
tooltip="CRT: swept below prior " + crtTF + " low and closed back above it")
if crtBearish
label.new(bar_index, high, "", style=label.style_circle, color=bearColor, size=size.tiny,
tooltip="CRT: swept above prior " + crtTF + " high and closed back below it")
var line onHiLine = na
var line onLoLine = na
var float onHigh = na
var float onLow = na
inON = isIntraday and not na(time(timeframe.period, onSession, sessTZ))
newON = inON and not inON[1]
onColor = color.new(levelColor, 60)
if showON and newON
if not na(onHiLine)
line.delete(onHiLine)
line.delete(onLoLine)
onHigh := high
onLow := low
onHiLine := line.new(bar_index, onHigh, bar_index, onHigh, extend=extend.right, color=onColor, width=lineWidth, style=line.style_dashed)
onLoLine := line.new(bar_index, onLow, bar_index, onLow, extend=extend.right, color=onColor, width=lineWidth, style=line.style_dashed)
else if showON and inON
onHigh := math.max(onHigh, high)
onLow := math.min(onLow, low)
line.set_y1(onHiLine, onHigh)
line.set_y2(onHiLine, onHigh)
line.set_y1(onLoLine, onLow)
line.set_y2(onLoLine, onLow)
pdHigh = request.security(syminfo.tickerid, "1D", high[1], lookahead=barmerge.lookahead_off)
pdLow = request.security(syminfo.tickerid, "1D", low[1], lookahead=barmerge.lookahead_off)
pdColor = color.new(levelColor, 40)
plot(isIntraday and showPDHL ? pdHigh : na, "Prior Day High", color=pdColor, linewidth=lineWidth, style=plot.style_linebr, display=display.none)
plot(isIntraday and showPDHL ? pdLow : na, "Prior Day Low", color=pdColor, linewidth=lineWidth, style=plot.style_linebr, display=display.none)
vwapVal = isIntraday and showVWAP ? ta.vwap(hlc3) : na
plot(vwapVal, "Session VWAP", color=color.new(levelColor, 20), linewidth=lineWidth, display=display.none)
type FVG
box zoneBox
label zoneLabel
string kind
bool inverted
float top
float bottom
int startSession
var FVG[] fvgs = array.new<FVG>()
tickSize = syminfo.mintick
minGap = minGapTicks * tickSize
bullGap = low > high[2]
bearGap = high < low[2]
if showFVG and bullGap and (low - high[2]) >= minGap
b = box.new(bar_index[2], low, bar_index, high[2], border_color=bullColor, bgcolor=color.new(bullColor, 85), extend=extend.none)
label lbl = na
if showFVGLbl
lbl := label.new(bar_index, (low + high[2]) / 2, "FVG", style=label.style_none, textcolor=bullColor, size=size.tiny)
array.push(fvgs, FVG.new(b, lbl, "bull", false, low, high[2], sessionCounter))
if showFVG and bearGap and (low[2] - high) >= minGap
b2 = box.new(bar_index[2], low[2], bar_index, highПоказано первые 50% кода (символов: 8494)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.