THUẬN-TBThe provided code combines two distinct Pine Script indicators into a single script for TradingView, both based on Smart Money Concepts (SMC).
1. The "THUẬN-TB" Indicator
This part of the code focuses on identifying and visualizing supply and demand zones. It automatically detects and plots swing highs and lows to define these zones, which are areas of potential selling (supply) or buying (demand) pressure. The indicator also tracks break of structures (BOS), which occur when price closes beyond these zones, signaling a continuation of the trend. It can also display a zigzag line and price action labels like HH and LL.
2. The "CauTrucFVG" Indicator
This section is dedicated to tracking market structure, Fair Value Gaps (FVGs), and Fibonacci retracement levels.
FVGs are price imbalances identified by three-candle patterns, and the script draws boxes to highlight these areas, which are expected to be filled by future price movements.
Market structure is defined by BOS (for trend continuation) and Change of Character (CHoCH) (for trend reversal), both of which are automatically labeled on the chart.
Finally, the indicator can draw five customizable Fibonacci levels based on the current market structure, providing potential points of interest for trades.
In essence, the combined script provides a comprehensive toolkit for SMC traders, using the first part to find key liquidity areas (supply/demand) and the second part to analyze the broader market structure and imbalances.
在脚本中搜索"BOS"
THUẬN-TBThe provided code combines two distinct Pine Script indicators into a single script for TradingView, both based on Smart Money Concepts (SMC).
1. The "THUẬN-TB" Indicator
This part of the code focuses on identifying and visualizing supply and demand zones. It automatically detects and plots swing highs and lows to define these zones, which are areas of potential selling (supply) or buying (demand) pressure. The indicator also tracks break of structures (BOS), which occur when price closes beyond these zones, signaling a continuation of the trend. It can also display a zigzag line and price action labels like HH and LL.
2. The "CauTrucFVG" Indicator
This section is dedicated to tracking market structure, Fair Value Gaps (FVGs), and Fibonacci retracement levels.
FVGs are price imbalances identified by three-candle patterns, and the script draws boxes to highlight these areas, which are expected to be filled by future price movements.
Market structure is defined by BOS (for trend continuation) and Change of Character (CHoCH) (for trend reversal), both of which are automatically labeled on the chart.
Finally, the indicator can draw five customizable Fibonacci levels based on the current market structure, providing potential points of interest for trades.
In essence, the combined script provides a comprehensive toolkit for SMC traders, using the first part to find key liquidity areas (supply/demand) and the second part to analyze the broader market structure and imbalances.
Riz Goldbach FrameworkRiz Goldbach Framework maps a dynamic dealing range and a set of Goldbach-derived price levels to structure intraday decision-making. It blends range math (PO3), level clustering, session weighting, volume/volatility context, and an explainable scoring engine that can issue BUY/SELL signals with risk levels (SL/TP). It is designed for discretionary traders who want rules-based context rather than a black box.
Core concepts (how it works)
1) PO3 Dealing-Range Engine
⦁ The script builds a tri-based PO3 range around current price (Auto or Manual).
⦁ It shifts the range when price “accepts” outside (close/wick—user selectable) and adapts width with ATR so the range expands in high volatility and tightens in low volatility.
⦁ From this range it computes mid, premium/discount halves, and sub-mids.
2) Goldbach Levels (structure map)
Within the active PO3 range, fixed percentages anchor recurring behaviors:
⦁ Rejection edges: 3%, 97%
⦁ Order-block tendency: 11%, 89%
⦁ FVG tendency: 17%, 83%
⦁ Liquidity void / expansion: 29%, 71%
⦁ Breaker band: 41%, 59%
⦁ Mitigation band: 47%, 53%
⦁ Equilibrium: 50%
⦁ Touch/near logic is tolerance-based (body-only optional). The script also counts confluence clusters (2=moderate, 3+=strong) near price.
3) Market elements the script tracks
⦁ Order Blocks (OB): detected after BOS behavior when price is sitting on OB-biased GB levels (11/89).
⦁ FVG: 3-bar gaps at FVG-biased levels (17/83) with optional “% fill” confirmation.
⦁ LV bars: wide-range, high-range bars around 29/71 for displacement/voids.
⦁ Equal Highs/Lows (EQH/EQL): tolerance with labeling for sweep risk.
⦁ Circuit Breaker (CB): zone seeded at 41/59. States: intact → broken → retest → revalidated/failed. A shaded band shows the active breaker zone.
⦁ Twin Towers (TT): equal-high/equal-low doublet with spacing/volume/RSI checks, then sweep-and-return into the breaker zone for confirmation.
4) Context & filters
⦁ Trend vs Range: DMI/ADX + EMA stack infer TREND/RANGE/TRANSITION and scale the required score.
⦁ MTF alignment: compares current PO3 halves vs HTF PO3 halves (user timeframe), rewarding alignment and flagging divergence.
⦁ Fib–Goldbach confluence: checks 61.8/38.2/78.6/127.2/161.8 against key GB levels for added weight.
⦁ Session weighting: Asia/London/NY bias different GB levels; weights are higher for London/NY.
⦁ Volume-weighted liquidity: tracks volume at EQH/EQL to flag “high-commitment” sweeps.
⦁ AMD cycle (smart): accumulation/manipulation/distribution estimated from ATR regimes, sweeps, BOS continuation, divergence and PO3 shifts.
⦁ Optional filters: HTF bias, SMT divergence via a second symbol, VSA volume emphasis, news blackout session.
5) Signal engine
⦁ Modes: MMxM, Trending, or Hybrid (auto switches depending on CB acceptance + ATR expansion).
⦁ A score (0–100) aggregates weighted conditions (GB touch/confluence, AMD alignment, CB state, TT, FVG/OB interaction, HTF bias, SMT, high-volume, RSI momentum).
⦁ Adaptive threshold raises/lowers requirements in TREND vs RANGE.
⦁ Outputs: BUY/SELL label with strength (WEAK/NORMAL/STRONG), a reasons string (e.g., GB+AMD+Breaker+TT+FVG+HTF+RSI), and risk levels:
⦁ SL: rejection/structure anchored (e.g., GB3/GB97 or recent swing ± ATR).
⦁ TP1: opposite breaker (41/59).
⦁ TP2: opposite FVG tendency (17/83).
⦁ Live RR displayed on label and plotted as dashed lines.
⦁ Cooldown, session/time, weekend, and volatility gates suppress poor-quality or clustered signals.
What you see on the chart
⦁ PO3 bands: High/Low/Mid lines plus background shading for Premium (bear tint), Discount (bull tint), Equilibrium (neutral).
⦁ Goldbach lines: Major structure (0/50/100) plus the functional GB set (11/17/29/41/47/53/59/71/83/89/3/97).
⦁ Blocks & gaps: OB lines, FVG boxes (extend right, fill progress), LV box, breaker zone band, and TT logic states.
⦁ CE/MT: Central equilibrium (~3.5%/96.5%) and mid-towers (25%/75%) trigger optional alerts.
⦁ Session overlays: Asia/London/NY (optional).
⦁ Opens: Daily/Weekly (optional).
⦁ Dashboard: PO3 value, Zone (Premium/Discount/Equilibrium), AMD phase, Session, Mode (MMxM/Trending/Hybrid), CB state, nearest GB tag, Market context (TREND/RANGE/TRANS), recent Events, and rolling win-rate tallies (signals/CB/TT) from the current chart session.
How to use it (workflow)
1. Pick a preset
⦁ Minimal: only core structure.
⦁ Standard: levels + dashboard.
⦁ Full: adds sessions + GBT window overlays.
2. Choose range logic
⦁ PO3 Auto is reactive and scales with ATR.
⦁ Manual PO3 is for precise range control.
3. Scope your bias
⦁ Confirm Zone (Premium/Discount), CB state, and AMD phase; check MTF row if enabled.
⦁ Strong setups usually appear when session-weighted GB levels + confluence ≥ 2 + CB revalidated + AMD = manipulation → distribution (short) or accumulation → manipulation (long).
4. Act on signals (optional)
⦁ When a label prints, read the factors string and score.
⦁ Use plotted SL/TP1/TP2 lines and RR.
⦁ Respect cooldown, news blackout, and volatility filter.
Inputs you might tweak
⦁ PO3: Auto/Manual, acceptance by Close vs Wick, adaptive widening/tightening.
⦁ Levels: Major-only vs All; tolerance %; wick vs body touches.
⦁ Signals: Mode, score threshold, cooldown, confirm on close.
⦁ CB/TT: breaker width %, spacing window & tolerance, suppress bars after TT.
⦁ Filters: HTF timeframe, SMT symbol, VSA on/off, news blackout session.
⦁ Visuals: colors, line opacity, label sizes, dashboard position/size.
⦁ FVG/LV/CE/MT: fill %, and per-event alerts.
Alerts available
⦁ BUY/SELL signal, PO3 shift, GB touch (with tag), CB broken/retest pass/fail, TT setup/confirmed, OB tagged, FVG formed/filled, LV expansion, CE/MT touches.
Limitations & notes
⦁ Signals are contextual—they depend on the active PO3, tolerance, filters, session weighting, and volatility regime.
⦁ HTF requests depend on broker/exchange data and the timeframe you assign; if HTF is empty or illiquid, features degrade gracefully but may be less informative.
⦁ Win-rate tallies are session-local (not a historical performance guarantee).
⦁ Parameter choices (e.g., tolerance, breaker width, thresholds) materially change behavior.
Disclaimer
This tool is for educational/informational purposes only. It does not constitute financial advice, an invitation to trade, or performance assurance. Markets involve risk—always test on replay/paper and manage risk independently.
PumpC PAC & MAsPumpC – PAC & MAs (Open Source)
A complete Price Action Candles (PAC) toolkit combining classical price action patterns (Fair Value Gaps, Inside Bars, Hammers, Inverted Hammers, and Volume Imbalances) with a flexible Moving Averages (MAs) module and an advanced bar-coloring system.
This script highlights supply/demand inefficiencies and micro-patterns with forward-extending boxes, recolors zones when mitigated, qualifies patterns with a global High-Volume filter, and ships with ready-to-use alerts. It works across intraday through swing trading on any market (e.g., NASDAQ:QQQ , $CME:ES1!, FX:EURUSD , BITSTAMP:BTCUSD ).
This is an open-source script. The description is detailed so users understand what the script does, how it works, and how to use it. It makes no performance claims and does not provide trade advice.
Acknowledgment & Credits
This script originates from the structural and box-handling logic found in the Super OrderBlock / FVG / BoS Tools by makuchaku & eFe. Their pioneering framework provided the base methods for managing arrays of boxes, extending zones forward, and recoloring once mitigated.
Building on that foundation, I have substantially expanded and adapted the code to create a unified Price Action Candles toolkit . This includes Al Brooks–inspired PAC logic, additional patterns like Inside Bars, Hammers, Inverted Hammers, and the new Volume Imbalance module, along with strong-bar coloring, close-threshold detection, a flexible global High-Volume filter, and a multi-timeframe Moving Averages system.
What it does
Fair Value Gaps (FVG) : Detects 3-bar displacement gaps, plots forward-extending boxes, and optionally recolors them once mitigated.
Inside Bars (IB) : Highlights bars fully contained within the prior candle’s range, with optional high-volume filter.
Hammers (H) & Inverted Hammers (IH) : Identifies rejection candles using configurable body/upper/lower wick thresholds. High-volume qualification optional.
Volume Imbalances (VI) : Detects inter-body gaps where one candle’s body does not overlap the prior candle’s body. Boxes extend forward until wick-based mitigation occurs (only after the two-bar formation completes). Alerts available for creation and mitigation.
Mitigation Recolor : Each pattern can flip to a mitigated color once price trades back through its vertical zone.
Moving Averages (MAs) : Four configurable EMAs/SMAs, with per-MA timeframe, length, color, and clutter-free plotting rules.
Strong Bar Coloring : Highlights bullish/bearish engulfing reversals with different colors for high-volume vs low-volume cases.
Close Threshold Bars : Marks candles that close in the top or bottom portion of their range, even if the body is small. Helps spot continuation pressure before a full trend bar forms.
Alerts : Notifications available for FVG+, FVG−, IB, H, IH, VI creation, and VI mitigation.
Connection to Al Brooks’ PAC teachings
This script reflects Al Brooks’ Price Action Candle methodology. PAC patterns like Inside Bars, Hammers, and Inverted Hammers are not trade signals on their own—they gain meaning in context of trend, failed breakouts, and effort vs. result.
By layering in volume imbalances, strong-bar reversals, and volume filters, this script focuses attention on the PACs that show true participation and conviction, aligning with Brooks’ emphasis on reading crowd psychology through price action.
Why the High-Volume filter matters
Volume is a key proxy for conviction. A PAC or VI formed on light volume can be misleading noise; one formed on above-average volume carries more weight.
Elevates Inside Bars that show absorption/compression with heavy activity.
Distinguishes Hammers that reject price aggressively vs. weak drifts.
Filters Inverted Hammers to emphasize true supply pressure.
Highlights VI zones where institutional order flow left inefficiencies.
Differentiates strong engulfing reversals from weaker, low-participation moves.
Inputs & Customization
Inputs are grouped logically for fast configuration:
High-Volume Filter : Global lookback & multiple, per-pattern toggles.
FVG : Visibility, mitigated recolor, box style/transparency, label controls.
IB : Visibility, require high volume, mitigated recolor, colors, label settings.
Hammer / IH : Visibility, require high volume, mitigated recolor, wick/body thresholds.
VI : Visibility, require high volume, mitigated recolor, box style, labels, mitigation alerts.
Strong Bars : Enable/disable, separate colors for high-volume and low-volume outcomes.
Close Threshold Bars : Customizable close thresholds, labels, optional count markers.
MAs : EMA/SMA type, per-MA toggle, length, timeframe, color.
Alerts
New Bullish FVG (+)
New Bearish FVG (−)
New Inside Bar (IB)
New Hammer (H)
New Inverted Hammer (IH)
New Volume Imbalance (VI)
VI Mitigated
Strong Bullish Engulfing / Bearish Engulfing (high- and low-volume variants)
Suggested workflow
Choose your market & timeframe (script works across equities, futures, FX, crypto).
Toggle only the PACs you actually trade. Assign distinct colors for clarity.
Use MAs for directional bias and higher timeframe structure.
Enable High-Volume filters when you want to emphasize conviction.
Watch mitigation recolors to see which levels/zones have been interacted with.
Use alerts selectively for setups aligned with your plan.
Originality
Builds upon Super OrderBlock / FVG / BoS Tools (makuchaku & eFe) for FVG/box framework.
Expanded into a unified PAC toolkit including IB, H, IH, and VI patterns.
Brooks-inspired design: Patterns contextualized with volume and trend, not isolated.
Flexible high-volume gating with per-pattern toggles.
New VI integration with wick-based mitigation.
Strong Bar Coloring differentiates conviction vs weak reversals.
MTF-aware MAs prevent clutter while providing structure.
Open-source: Transparent for learning, editing, and extension.
Disclaimer
For educational and informational purposes only. This script is not financial advice. Trading carries risk—always test thoroughly before live use.
Ichimoku + SuperTrend + Oscillator + Divergence + SMC Lite//@version=5
indicator("Ichimoku + SuperTrend + Oscillator + Divergence + SMC Lite", overlay=true, max_labels_count=500, max_lines_count=500, max_boxes_count=500, max_bars_back=1000)
// ====================
// === CODE BLOCK 1: Ichimoku + SuperTrend + Oscillator Monitor + Divergence ===
// ====================
// --- User Inputs ---
lowerTF = input.timeframe("5", "Lower Timeframe (Ichimoku + SuperTrend)")
higherTF = input.timeframe("60", "Higher Timeframe (Tenkan/Kijun check)")
tenkanLength = input.int(9, "Tenkan-sen Length (Lower TF)")
kijunLength = input.int(26, "Kijun-sen Length (Lower TF)")
senkouSpanBLength = input.int(52, "Senkou Span B Length (Lower TF)")
displacement = input.int(26, "Displacement (Lower TF)")
showCloud = input.bool(true, "Show Kumo Cloud (Lower TF)")
buyColor = input.color(color.new(color.green, 0), "Buy Candle Color")
sellColor = input.color(color.new(color.red, 0), "Sell Candle Color")
crossCandleColor = input.color(color.new(color.yellow, 0), "Cross Candle Color")
bodyFilterColor = input.color(color.new(color.lime,0), "Body Filter Active Color")
htfCrossColor = input.color(color.new(color.orange,0), "HTF Cross Signal Color")
stopColor = input.color(color.new(color.red,0), "Stop Line Color")
targetColor = input.color(color.new(color.blue,0), "Target Line Color")
cooldownBars = input.int(5, "Cooldown Bars After Signal")
// --- Higher TF Ichimoku ---
tenkanLengthHTF = input.int(36, "Tenkan Length (Higher TF)")
kijunLengthHTF = input.int(103, "Kijun Length (Higher TF)")
showTenkanHTF = input.bool(true, "Show Tenkan (HTF)")
showKijunHTF = input.bool(true, "Show Kijun (HTF)")
tenkanHTFValue = request.security(syminfo.tickerid, higherTF, (ta.highest(high, tenkanLengthHTF)+ta.lowest(low, tenkanLengthHTF))/2)
kijunHTFValue = request.security(syminfo.tickerid, higherTF, (ta.highest(high, kijunLengthHTF)+ta.lowest(low, kijunLengthHTF))/2)
plot(showTenkanHTF ? tenkanHTFValue : na, color=color.blue, linewidth=2, title="Tenkan HTF")
plot(showKijunHTF ? kijunHTFValue : na, color=color.red, linewidth=2, title="Kijun HTF")
// --- Lower TF Ichimoku ---
tenkan = request.security(syminfo.tickerid, lowerTF, (ta.highest(high, tenkanLength) + ta.lowest(low, tenkanLength)) / 2)
kijun = request.security(syminfo.tickerid, lowerTF, (ta.highest(high, kijunLength) + ta.lowest(low, kijunLength)) / 2)
senkouA = request.security(syminfo.tickerid, lowerTF, (tenkan + kijun) / 2)
senkouB = request.security(syminfo.tickerid, lowerTF, (ta.highest(high, senkouSpanBLength) + ta.lowest(low, senkouSpanBLength)) / 2)
plot(tenkan, color=color.blue, title="Tenkan-sen (LTF)", linewidth=2)
plot(kijun, color=color.red, title="Kijun-sen (LTF)", linewidth=2)
sA = plot(senkouA , display=display.none)
sB = plot(senkouB , display=display.none)
cloudColor = showCloud ? (senkouA > senkouB ? color.new(color.green, 80) : color.new(color.red, 80)) : na
fill(sA, sB, color=cloudColor)
// --- Detect Crosses ---
crossUp = ta.crossover(tenkan, kijun)
crossDown = ta.crossunder(tenkan, kijun)
crossUpHTF = ta.crossover(tenkanHTFValue, kijunHTFValue)
crossDownHTF = ta.crossunder(tenkanHTFValue, kijunHTFValue)
candle2AboveCloud = close > math.max(senkouA , senkouB )
candle2BelowCloud = close < math.min(senkouA , senkouB )
// --- SuperTrend Lower TF ---
atrPeriodLTF = 12
multiplierLTF = 3.0
atrValueLTF = ta.atr(atrPeriodLTF)
upLTF = hl2 - multiplierLTF * atrValueLTF
dnLTF = hl2 + multiplierLTF * atrValueLTF
var int trendLTF = 1
trendLTF := trendLTF == -1 and close > dnLTF ? 1 : trendLTF == 1 and close < upLTF ? -1 : trendLTF
// --- SuperTrend Higher TF ---
useHTFST = input.bool(true, "Use HTF SuperTrend")
atrPeriodHTF = input.int(12, "HTF SuperTrend ATR")
multiplierHTF = input.float(3.0, "HTF SuperTrend Multiplier")
hl2HTF = request.security(syminfo.tickerid, higherTF, hl2)
atrHTF = request.security(syminfo.tickerid, higherTF, ta.atr(atrPeriodHTF))
upHTF = hl2HTF - multiplierHTF * atrHTF
dnHTF = hl2HTF + multiplierHTF * atrHTF
var int trendHTF = 1
trendHTF := trendHTF == -1 and close > dnHTF ? 1 : trendHTF == 1 and close < upHTF ? -1 : trendHTF
// --- Body Filter ---
useBodyFilter = input.bool(true, "Use Body Filter")
bodyMinPerc = input.float(20, "Min Body %")
bodyMaxPerc = input.float(100, "Max Body %")
bodyLen = math.abs(close - open)
candleLen = high - low
bodyPerc = (bodyLen / candleLen) * 100
bodyFilterPass = not useBodyFilter or (bodyPerc >= bodyMinPerc and bodyPerc <= bodyMaxPerc)
// --- Reward Filter ---
useReward = input.bool(true, "Use Reward 1:1 Filter")
stopLossPerc = input.float(1.5, "Stop Loss %")
reward1 = input.float(1.0, "Target 1 R/R")
reward2 = input.float(2.0, "Target 2 R/R")
reward3 = input.float(3.0, "Target 3 R/R")
rewardPass = not useReward or ((math.abs(close - tenkanHTFValue) * reward1) <= math.abs(kijunHTFValue - close))
// --- TSI Higher TF ---
tsiLong = input.int(25, "TSI Long")
tsiShort = input.int(13, "TSI Short")
tsiHTF = ta.tsi(request.security(syminfo.tickerid, higherTF, close), tsiLong, tsiShort)
// --- Lower TF Signals ---
buySignalLTF = (crossUp and candle2AboveCloud) and trendLTF == 1
sellSignalLTF = (crossDown and candle2BelowCloud) and trendLTF == -1
plotshape(crossUpHTF, title="HTF Buy Cross", location=location.belowbar, color=htfCrossColor, style=shape.triangleup, size=size.small)
plotshape(crossDownHTF, title="HTF Sell Cross", location=location.abovebar, color=htfCrossColor, style=shape.triangledown, size=size.small)
buyConfirmedRaw = (buySignalLTF and close > tenkanHTFValue and (not useHTFST or trendHTF==1)) and rewardPass and (tsiHTF > 0)
sellConfirmedRaw = (sellSignalLTF and close < tenkanHTFValue and (not useHTFST or trendHTF==-1)) and rewardPass and (tsiHTF < 0)
// --- Cooldown ---
var int barsSinceSignal = cooldownBars
barsSinceSignal += 1
buyConfirmed = buyConfirmedRaw and barsSinceSignal >= cooldownBars
sellConfirmed = sellConfirmedRaw and barsSinceSignal >= cooldownBars
if buyConfirmed or sellConfirmed
barsSinceSignal := 0
// --- Plot Final Signals ---
plotshape(buyConfirmed and bodyFilterPass, title="Buy Signal", location=location.belowbar, color=buyColor, style=shape.triangleup, size=size.small)
plotshape(sellConfirmed and bodyFilterPass, title="Sell Signal", location=location.abovebar, color=sellColor, style=shape.triangledown, size=size.small)
plotshape(buyConfirmed and not bodyFilterPass, title="Buy Signal (Filtered)", location=location.belowbar, color=bodyFilterColor, style=shape.triangleup, size=size.tiny)
plotshape(sellConfirmed and not bodyFilterPass, title="Sell Signal (Filtered)", location=location.abovebar, color=bodyFilterColor, style=shape.triangledown, size=size.tiny)
barcolor(crossUp or crossDown ? crossCandleColor : na)
barcolor(buyConfirmed and bodyFilterPass ? buyColor : sellConfirmed and bodyFilterPass ? sellColor : na)
// --- Stop & Targets ---
var float lastBuyPrice = na
var float lastSellPrice = na
var bool buyActive = false
var bool sellActive = false
f_drawLine(_price) =>
line.new(bar_index, _price, bar_index+3, _price, color=targetColor, width=2, style=line.style_dotted)
if buyConfirmed and not buyActive and not sellActive
buyActive := true
lastBuyPrice := close
line.new(bar_index, close*(1-stopLossPerc/100), bar_index+3, close*(1-stopLossPerc/100), color=stopColor, width=2, style=line.style_dotted)
f_drawLine(close*(1+reward1/100))
f_drawLine(close*(1+reward2/100))
f_drawLine(close*(1+reward3/100))
if buyActive
if low <= lastBuyPrice*(1-stopLossPerc/100) or high >= lastBuyPrice*(1+reward1/100)
buyActive := false
if sellConfirmed and not sellActive and not buyActive
sellActive := true
lastSellPrice := close
line.new(bar_index, close*(1+stopLossPerc/100), bar_index+3, close*(1+stopLossPerc/100), color=stopColor, width=2, style=line.style_dotted)
f_drawLine(close*(1-reward1/100))
f_drawLine(close*(1-reward2/100))
f_drawLine(close*(1-reward3/100))
if sellActive
if high >= lastSellPrice*(1+stopLossPerc/100) or low <= lastSellPrice*(1-reward1/100)
sellActive := false
// --- Oscillator Panel ---
showPanel = input.bool(true, "Show Oscillator Panel")
panelX = input.int(20, "Panel X Offset (Bars)")
panelY = input.int(50, "Panel Y Offset (Pixels)")
panelBgColor = input.color(color.new(color.black, 85), "Panel Background Color")
panelTextSize = input.string("normal", "Text Size", options= )
// MACD
macdFast = input.int(12)
macdSlow = input.int(26)
macdSignal= input.int(9)
= ta.macd(close, macdFast, macdSlow, macdSignal)
macdBull = macdLine > signalLine
// RSI
rsiLen = input.int(14)
rsiVal = ta.rsi(close, rsiLen)
rsiBull = rsiVal > 50
// TSI
tsiVal = ta.tsi(close, 25, 13)
tsiBull = tsiVal > 0
// Divergence detection (RSI, MACD, TSI)
leftBars = input.int(2)
rightBars = input.int(2)
rsiLow = ta.pivotlow(rsiVal, leftBars, rightBars)
rsiHigh = ta.pivothigh(rsiVal, leftBars, rightBars)
bullDivRSI = not na(rsiLow) and low < low and rsiVal > rsiVal
bearDivRSI = not na(rsiHigh) and high > high and rsiVal < rsiVal
macdLow = ta.pivotlow(macdLine, leftBars, rightBars)
macdHigh = ta.pivothigh(macdLine, leftBars, rightBars)
bullDivMACD = not na(macdLow) and low < low and macdLine > macdLine
bearDivMACD = not na(macdHigh) and high > high and macdLine < macdLine
tsiLow = ta.pivotlow(tsiVal, leftBars, rightBars)
tsiHigh = ta.pivothigh(tsiVal, leftBars, rightBars)
bullDivTSI = not na(tsiLow) and low < low and tsiVal > tsiVal
bearDivTSI = not na(tsiHigh) and high > high and tsiVal < tsiVal
// Plot divergence on chart
plotshape(bullDivRSI, style=shape.labelup, text="R d+", color=color.lime, textcolor=color.white, location=location.belowbar, size=size.tiny)
plotshape(bearDivRSI, style=shape.labeldown, text="R d-", color=color.red, textcolor=color.white, location=location.abovebar, size=size.tiny)
plotshape(bullDivMACD, style=shape.labelup, text="M d+", color=color.lime, textcolor=color.white, location=location.belowbar, size=size.tiny)
plotshape(bearDivMACD, style=shape.labeldown, text="M d-", color=color.red, textcolor=color.white, location=location.abovebar, size=size.tiny)
plotshape(bullDivTSI, style=shape.labelup, text="T d+", color=color.lime, textcolor=color.white, location=location.belowbar, size=size.tiny)
plotshape(bearDivTSI, style=shape.labeldown, text="T d-", color=color.red, textcolor=color.white, location=location.abovebar, size=size.tiny)
// Panel
var label panelLabel = label.new(bar_index + panelX, close, "", xloc=xloc.bar_index, yloc=yloc.price, style=label.style_label_left, color=panelBgColor, size=panelTextSize)
if showPanel
label.set_xy(panelLabel, bar_index + panelX, close + panelY * syminfo.mintick)
label.set_text(panelLabel, "MACD: " + (macdBull ? "↑" : "↓") + (bullDivMACD ? " d+" : bearDivMACD ? " d-" : "") + "\n" +
"RSI : " + (rsiBull ? "↑" : "↓") + (bullDivRSI ? " d+" : bearDivRSI ? " d-" : "") + "\n" +
"TSI : " + (tsiBull ? "↑" : "↓") + (bullDivTSI ? " d+" : bearDivTSI ? " d-" : "") + "\n" +
"ST : " + (trendLTF==1 ? "↑" : "↓"))
label.set_textcolor(panelLabel, color.white)
// ====================
// === CODE BLOCK 2: FluidTrades - SMC Lite (Light) ===
// ====================
// === SETTINGS ===
swing_length = input.int(10, "Swing High/Low Length", minval=1, maxval=50)
history_keep = input.int(20, "History To Keep", minval=5, maxval=50)
box_width = input.float(2.5, "Supply/Demand Box Width", minval=1, maxval=10, step=0.5)
show_labels = input.bool(false, "Show Price Action Labels")
supply_color = input.color(color.new(#EDEDED,70), "Supply Color")
supply_outline = input.color(color.new(color.white,75), "Supply Outline")
demand_color = input.color(color.new(#00FFFF,70), "Demand Color")
demand_outline = input.color(color.new(color.white,75), "Demand Outline")
bos_color = input.color(color.white, "BOS Label Color")
poi_color = input.color(color.white, "POI Label Color")
label_color = input.color(color.black, "Swing Label Color")
// === FUNCTIONS ===
f_add_pop(arr, val) =>
array.unshift(arr, val)
array.pop(arr)
f_draw_swing_label(values, swing_type) =>
var string txt = na
if swing_type == 1
txt := array.get(values,0) >= array.get(values,1) ? "HH" : "LH"
label.new(bar_index - swing_length, array.get(values,0), txt, style=label.style_label_down, textcolor=label_color, color=color.new(label_color,100), size=size.tiny)
else
txt := array.get(values,0) >= array.get(values,1) ? "HL" : "LL"
label.new(bar_index - swing_length, array.get(values,0), txt, style=label.style_label_up, textcolor=label_color, color=color.new(label_color,100), size=size.tiny)
f_check_overlap(new_poi, box_arr, atr) =>
ok = true
for i=0 to array.size(box_arr)-1
b = array.get(box_arr,i)
top = box.get_top(b)
bot = box.get_bottom(b)
mid = (top+bot)/2
threshold = atr*2
if new_poi >= mid - threshold and new_poi <= mid + threshold
ok := false
break
ok
f_create_box(vals, bn_arr, box_arr, label_arr, type_box, atr) =>
atr_buf = atr*(box_width/10)
left = array.get(bn_arr,0)
right = bar_index
var float top=0.0
var float bottom=0.0
var float poi=0.0
if type_box==1
top := array.get(vals,0)
bottom := top - atr_buf
else
bottom := array.get(vals,0)
top := bottom + atr_buf
poi := (top+bottom)/2
if f_check_overlap(poi, box_arr, atr)
box.delete(array.get(box_arr,array.size(box_arr)-1))
f_add_pop(box_arr, box.new(left, top, right, bottom, border_color=type_box==1?supply_outline:demand_outline,
bgcolor=type_box==1?supply_color:demand_color, extend=extend.right, text=type_box==1?"SUPPLY":"DEMAND",
text_halign=text.align_center, text_valign=text.align_center, text_color=poi_color, text_size=size.small, xloc=xloc.bar_index))
box.delete(array.get(label_arr,array.size(label_arr)-1))
f_add_pop(label_arr, box.new(left, poi, right, poi, border_color=color.new(poi_color,90),
bgcolor=color.new(poi_color,90), extend=extend.right, text="POI", text_halign=text.align_left, text_valign=text.align_center, text_color=poi_color, text_size=size.small, xloc=xloc.bar_index))
f_to_bos(box_arr, bos_arr, label_arr, type_box) =>
for i=0 to array.size(box_arr)-1
b = array.get(box_arr,i)
lvl = type_box==1? box.get_top(b) : box.get_bottom(b)
cond = type_box==1? close>=lvl : close<=lvl
if cond
cbox = box.copy(b)
f_add_pop(bos_arr, cbox)
mid = (box.get_top(b)+box.get_bottom(b))/2
box.set_top(cbox, mid)
box.set_bottom(cbox, mid)
box.set_extend(cbox, extend.none)
box.set_right(cbox, bar_index)
box.set_text(cbox, "BOS")
box.set_text_color(cbox, bos_color)
box.set_text_size(cbox, size.small)
box.set_text_halign(cbox, text.align_center)
box.set_text_valign(cbox, text.align_center)
box.delete(b)
box.delete(array.get(label_arr,i))
f_extend(box_arr) =>
for i=0 to array.size(box_arr)-1
box.set_right(array.get(box_arr,i), bar_index+100)
// === CALCULATIONS ===
atr = ta.atr(50)
swing_high = ta.pivothigh(high, swing_length, swing_length)
swing_low = ta.pivotlow(low, swing_length, swing_length)
var swing_high_vals = array.new_float(5,0.0)
var swing_low_vals = array.new_float(5,0.0)
var swing_high_bn = array.new_int(5,0)
var swing_low_bn = array.new_int(5,0)
var supply_boxes = array.new_box(history_keep, na)
var demand_boxes = array.new_box(history_keep, na)
var supply_poi = array.new_box(history_keep, na)
var demand_poi = array.new_box(history_keep, na)
var bos_supply = array.new_box(5, na)
var bos_demand = array.new_box(5, na)
// NEW SWING HIGH
if not na(swing_high)
f_add_pop(swing_high_vals, swing_high)
f_add_pop(swing_high_bn, bar_index )
if show_labels
f_draw_swing_label(swing_high_vals,1)
f_create_box(swing_high_vals, swing_high_bn, supply_boxes, supply_poi, 1, atr)
// NEW SWING LOW
if not na(swing_low)
f_add_pop(swing_low_vals, swing_low)
f_add_pop(swing_low_bn, bar_index )
if show_labels
f_draw_swing_label(swing_low_vals,-1)
f_create_box(swing_low_vals, swing_low_bn, demand_boxes, demand_poi, -1, atr)
f_to_bos(supply_boxes, bos_supply, supply_poi, 1)
f_to_bos(demand_boxes, bos_demand, demand_poi, -1)
f_extend(supply_boxes)
f_extend(demand_boxes)
//@version=6
length = input.int(9, minval=1)
src = input(close, title="Source")
e1 = ta.ema(src, length)
e2 = ta.ema(e1, length)
dema = 2 * e1 - e2
plot(dema, "DEMA", color=#43A047)
Ichimoku + SuperTrend + Oscillator + Divergence + SMC Lite//@version=5
indicator("Ichimoku + SuperTrend + Oscillator + Divergence + SMC Lite", overlay=true, max_labels_count=500, max_lines_count=500, max_boxes_count=500, max_bars_back=1000)
// ====================
// === CODE BLOCK 1: Ichimoku + SuperTrend + Oscillator Monitor + Divergence ===
// ====================
// --- User Inputs ---
lowerTF = input.timeframe("5", "Lower Timeframe (Ichimoku + SuperTrend)")
higherTF = input.timeframe("60", "Higher Timeframe (Tenkan/Kijun check)")
tenkanLength = input.int(9, "Tenkan-sen Length (Lower TF)")
kijunLength = input.int(26, "Kijun-sen Length (Lower TF)")
senkouSpanBLength = input.int(52, "Senkou Span B Length (Lower TF)")
displacement = input.int(26, "Displacement (Lower TF)")
showCloud = input.bool(true, "Show Kumo Cloud (Lower TF)")
buyColor = input.color(color.new(color.green, 0), "Buy Candle Color")
sellColor = input.color(color.new(color.red, 0), "Sell Candle Color")
crossCandleColor = input.color(color.new(color.yellow, 0), "Cross Candle Color")
bodyFilterColor = input.color(color.new(color.lime,0), "Body Filter Active Color")
htfCrossColor = input.color(color.new(color.orange,0), "HTF Cross Signal Color")
stopColor = input.color(color.new(color.red,0), "Stop Line Color")
targetColor = input.color(color.new(color.blue,0), "Target Line Color")
cooldownBars = input.int(5, "Cooldown Bars After Signal")
// --- Higher TF Ichimoku ---
tenkanLengthHTF = input.int(36, "Tenkan Length (Higher TF)")
kijunLengthHTF = input.int(103, "Kijun Length (Higher TF)")
showTenkanHTF = input.bool(true, "Show Tenkan (HTF)")
showKijunHTF = input.bool(true, "Show Kijun (HTF)")
tenkanHTFValue = request.security(syminfo.tickerid, higherTF, (ta.highest(high, tenkanLengthHTF)+ta.lowest(low, tenkanLengthHTF))/2)
kijunHTFValue = request.security(syminfo.tickerid, higherTF, (ta.highest(high, kijunLengthHTF)+ta.lowest(low, kijunLengthHTF))/2)
plot(showTenkanHTF ? tenkanHTFValue : na, color=color.blue, linewidth=2, title="Tenkan HTF")
plot(showKijunHTF ? kijunHTFValue : na, color=color.red, linewidth=2, title="Kijun HTF")
// --- Lower TF Ichimoku ---
tenkan = request.security(syminfo.tickerid, lowerTF, (ta.highest(high, tenkanLength) + ta.lowest(low, tenkanLength)) / 2)
kijun = request.security(syminfo.tickerid, lowerTF, (ta.highest(high, kijunLength) + ta.lowest(low, kijunLength)) / 2)
senkouA = request.security(syminfo.tickerid, lowerTF, (tenkan + kijun) / 2)
senkouB = request.security(syminfo.tickerid, lowerTF, (ta.highest(high, senkouSpanBLength) + ta.lowest(low, senkouSpanBLength)) / 2)
plot(tenkan, color=color.blue, title="Tenkan-sen (LTF)", linewidth=2)
plot(kijun, color=color.red, title="Kijun-sen (LTF)", linewidth=2)
sA = plot(senkouA , display=display.none)
sB = plot(senkouB , display=display.none)
cloudColor = showCloud ? (senkouA > senkouB ? color.new(color.green, 80) : color.new(color.red, 80)) : na
fill(sA, sB, color=cloudColor)
// --- Detect Crosses ---
crossUp = ta.crossover(tenkan, kijun)
crossDown = ta.crossunder(tenkan, kijun)
crossUpHTF = ta.crossover(tenkanHTFValue, kijunHTFValue)
crossDownHTF = ta.crossunder(tenkanHTFValue, kijunHTFValue)
candle2AboveCloud = close > math.max(senkouA , senkouB )
candle2BelowCloud = close < math.min(senkouA , senkouB )
// --- SuperTrend Lower TF ---
atrPeriodLTF = 12
multiplierLTF = 3.0
atrValueLTF = ta.atr(atrPeriodLTF)
upLTF = hl2 - multiplierLTF * atrValueLTF
dnLTF = hl2 + multiplierLTF * atrValueLTF
var int trendLTF = 1
trendLTF := trendLTF == -1 and close > dnLTF ? 1 : trendLTF == 1 and close < upLTF ? -1 : trendLTF
// --- SuperTrend Higher TF ---
useHTFST = input.bool(true, "Use HTF SuperTrend")
atrPeriodHTF = input.int(12, "HTF SuperTrend ATR")
multiplierHTF = input.float(3.0, "HTF SuperTrend Multiplier")
hl2HTF = request.security(syminfo.tickerid, higherTF, hl2)
atrHTF = request.security(syminfo.tickerid, higherTF, ta.atr(atrPeriodHTF))
upHTF = hl2HTF - multiplierHTF * atrHTF
dnHTF = hl2HTF + multiplierHTF * atrHTF
var int trendHTF = 1
trendHTF := trendHTF == -1 and close > dnHTF ? 1 : trendHTF == 1 and close < upHTF ? -1 : trendHTF
// --- Body Filter ---
useBodyFilter = input.bool(true, "Use Body Filter")
bodyMinPerc = input.float(20, "Min Body %")
bodyMaxPerc = input.float(100, "Max Body %")
bodyLen = math.abs(close - open)
candleLen = high - low
bodyPerc = (bodyLen / candleLen) * 100
bodyFilterPass = not useBodyFilter or (bodyPerc >= bodyMinPerc and bodyPerc <= bodyMaxPerc)
// --- Reward Filter ---
useReward = input.bool(true, "Use Reward 1:1 Filter")
stopLossPerc = input.float(1.5, "Stop Loss %")
reward1 = input.float(1.0, "Target 1 R/R")
reward2 = input.float(2.0, "Target 2 R/R")
reward3 = input.float(3.0, "Target 3 R/R")
rewardPass = not useReward or ((math.abs(close - tenkanHTFValue) * reward1) <= math.abs(kijunHTFValue - close))
// --- TSI Higher TF ---
tsiLong = input.int(25, "TSI Long")
tsiShort = input.int(13, "TSI Short")
tsiHTF = ta.tsi(request.security(syminfo.tickerid, higherTF, close), tsiLong, tsiShort)
// --- Lower TF Signals ---
buySignalLTF = (crossUp and candle2AboveCloud) and trendLTF == 1
sellSignalLTF = (crossDown and candle2BelowCloud) and trendLTF == -1
plotshape(crossUpHTF, title="HTF Buy Cross", location=location.belowbar, color=htfCrossColor, style=shape.triangleup, size=size.small)
plotshape(crossDownHTF, title="HTF Sell Cross", location=location.abovebar, color=htfCrossColor, style=shape.triangledown, size=size.small)
buyConfirmedRaw = (buySignalLTF and close > tenkanHTFValue and (not useHTFST or trendHTF==1)) and rewardPass and (tsiHTF > 0)
sellConfirmedRaw = (sellSignalLTF and close < tenkanHTFValue and (not useHTFST or trendHTF==-1)) and rewardPass and (tsiHTF < 0)
// --- Cooldown ---
var int barsSinceSignal = cooldownBars
barsSinceSignal += 1
buyConfirmed = buyConfirmedRaw and barsSinceSignal >= cooldownBars
sellConfirmed = sellConfirmedRaw and barsSinceSignal >= cooldownBars
if buyConfirmed or sellConfirmed
barsSinceSignal := 0
// --- Plot Final Signals ---
plotshape(buyConfirmed and bodyFilterPass, title="Buy Signal", location=location.belowbar, color=buyColor, style=shape.triangleup, size=size.small)
plotshape(sellConfirmed and bodyFilterPass, title="Sell Signal", location=location.abovebar, color=sellColor, style=shape.triangledown, size=size.small)
plotshape(buyConfirmed and not bodyFilterPass, title="Buy Signal (Filtered)", location=location.belowbar, color=bodyFilterColor, style=shape.triangleup, size=size.tiny)
plotshape(sellConfirmed and not bodyFilterPass, title="Sell Signal (Filtered)", location=location.abovebar, color=bodyFilterColor, style=shape.triangledown, size=size.tiny)
barcolor(crossUp or crossDown ? crossCandleColor : na)
barcolor(buyConfirmed and bodyFilterPass ? buyColor : sellConfirmed and bodyFilterPass ? sellColor : na)
// --- Stop & Targets ---
var float lastBuyPrice = na
var float lastSellPrice = na
var bool buyActive = false
var bool sellActive = false
f_drawLine(_price) =>
line.new(bar_index, _price, bar_index+3, _price, color=targetColor, width=2, style=line.style_dotted)
if buyConfirmed and not buyActive and not sellActive
buyActive := true
lastBuyPrice := close
line.new(bar_index, close*(1-stopLossPerc/100), bar_index+3, close*(1-stopLossPerc/100), color=stopColor, width=2, style=line.style_dotted)
f_drawLine(close*(1+reward1/100))
f_drawLine(close*(1+reward2/100))
f_drawLine(close*(1+reward3/100))
if buyActive
if low <= lastBuyPrice*(1-stopLossPerc/100) or high >= lastBuyPrice*(1+reward1/100)
buyActive := false
if sellConfirmed and not sellActive and not buyActive
sellActive := true
lastSellPrice := close
line.new(bar_index, close*(1+stopLossPerc/100), bar_index+3, close*(1+stopLossPerc/100), color=stopColor, width=2, style=line.style_dotted)
f_drawLine(close*(1-reward1/100))
f_drawLine(close*(1-reward2/100))
f_drawLine(close*(1-reward3/100))
if sellActive
if high >= lastSellPrice*(1+stopLossPerc/100) or low <= lastSellPrice*(1-reward1/100)
sellActive := false
// --- Oscillator Panel ---
showPanel = input.bool(true, "Show Oscillator Panel")
panelX = input.int(20, "Panel X Offset (Bars)")
panelY = input.int(50, "Panel Y Offset (Pixels)")
panelBgColor = input.color(color.new(color.black, 85), "Panel Background Color")
panelTextSize = input.string("normal", "Text Size", options= )
// MACD
macdFast = input.int(12)
macdSlow = input.int(26)
macdSignal= input.int(9)
= ta.macd(close, macdFast, macdSlow, macdSignal)
macdBull = macdLine > signalLine
// RSI
rsiLen = input.int(14)
rsiVal = ta.rsi(close, rsiLen)
rsiBull = rsiVal > 50
// TSI
tsiVal = ta.tsi(close, 25, 13)
tsiBull = tsiVal > 0
// Divergence detection (RSI, MACD, TSI)
leftBars = input.int(2)
rightBars = input.int(2)
rsiLow = ta.pivotlow(rsiVal, leftBars, rightBars)
rsiHigh = ta.pivothigh(rsiVal, leftBars, rightBars)
bullDivRSI = not na(rsiLow) and low < low and rsiVal > rsiVal
bearDivRSI = not na(rsiHigh) and high > high and rsiVal < rsiVal
macdLow = ta.pivotlow(macdLine, leftBars, rightBars)
macdHigh = ta.pivothigh(macdLine, leftBars, rightBars)
bullDivMACD = not na(macdLow) and low < low and macdLine > macdLine
bearDivMACD = not na(macdHigh) and high > high and macdLine < macdLine
tsiLow = ta.pivotlow(tsiVal, leftBars, rightBars)
tsiHigh = ta.pivothigh(tsiVal, leftBars, rightBars)
bullDivTSI = not na(tsiLow) and low < low and tsiVal > tsiVal
bearDivTSI = not na(tsiHigh) and high > high and tsiVal < tsiVal
// Plot divergence on chart
plotshape(bullDivRSI, style=shape.labelup, text="R d+", color=color.lime, textcolor=color.white, location=location.belowbar, size=size.tiny)
plotshape(bearDivRSI, style=shape.labeldown, text="R d-", color=color.red, textcolor=color.white, location=location.abovebar, size=size.tiny)
plotshape(bullDivMACD, style=shape.labelup, text="M d+", color=color.lime, textcolor=color.white, location=location.belowbar, size=size.tiny)
plotshape(bearDivMACD, style=shape.labeldown, text="M d-", color=color.red, textcolor=color.white, location=location.abovebar, size=size.tiny)
plotshape(bullDivTSI, style=shape.labelup, text="T d+", color=color.lime, textcolor=color.white, location=location.belowbar, size=size.tiny)
plotshape(bearDivTSI, style=shape.labeldown, text="T d-", color=color.red, textcolor=color.white, location=location.abovebar, size=size.tiny)
// Panel
var label panelLabel = label.new(bar_index + panelX, close, "", xloc=xloc.bar_index, yloc=yloc.price, style=label.style_label_left, color=panelBgColor, size=panelTextSize)
if showPanel
label.set_xy(panelLabel, bar_index + panelX, close + panelY * syminfo.mintick)
label.set_text(panelLabel, "MACD: " + (macdBull ? "↑" : "↓") + (bullDivMACD ? " d+" : bearDivMACD ? " d-" : "") + "\n" +
"RSI : " + (rsiBull ? "↑" : "↓") + (bullDivRSI ? " d+" : bearDivRSI ? " d-" : "") + "\n" +
"TSI : " + (tsiBull ? "↑" : "↓") + (bullDivTSI ? " d+" : bearDivTSI ? " d-" : "") + "\n" +
"ST : " + (trendLTF==1 ? "↑" : "↓"))
label.set_textcolor(panelLabel, color.white)
// ====================
// === CODE BLOCK 2: FluidTrades - SMC Lite (Light) ===
// ====================
// === SETTINGS ===
swing_length = input.int(10, "Swing High/Low Length", minval=1, maxval=50)
history_keep = input.int(20, "History To Keep", minval=5, maxval=50)
box_width = input.float(2.5, "Supply/Demand Box Width", minval=1, maxval=10, step=0.5)
show_labels = input.bool(false, "Show Price Action Labels")
supply_color = input.color(color.new(#EDEDED,70), "Supply Color")
supply_outline = input.color(color.new(color.white,75), "Supply Outline")
demand_color = input.color(color.new(#00FFFF,70), "Demand Color")
demand_outline = input.color(color.new(color.white,75), "Demand Outline")
bos_color = input.color(color.white, "BOS Label Color")
poi_color = input.color(color.white, "POI Label Color")
label_color = input.color(color.black, "Swing Label Color")
// === FUNCTIONS ===
f_add_pop(arr, val) =>
array.unshift(arr, val)
array.pop(arr)
f_draw_swing_label(values, swing_type) =>
var string txt = na
if swing_type == 1
txt := array.get(values,0) >= array.get(values,1) ? "HH" : "LH"
label.new(bar_index - swing_length, array.get(values,0), txt, style=label.style_label_down, textcolor=label_color, color=color.new(label_color,100), size=size.tiny)
else
txt := array.get(values,0) >= array.get(values,1) ? "HL" : "LL"
label.new(bar_index - swing_length, array.get(values,0), txt, style=label.style_label_up, textcolor=label_color, color=color.new(label_color,100), size=size.tiny)
f_check_overlap(new_poi, box_arr, atr) =>
ok = true
for i=0 to array.size(box_arr)-1
b = array.get(box_arr,i)
top = box.get_top(b)
bot = box.get_bottom(b)
mid = (top+bot)/2
threshold = atr*2
if new_poi >= mid - threshold and new_poi <= mid + threshold
ok := false
break
ok
f_create_box(vals, bn_arr, box_arr, label_arr, type_box, atr) =>
atr_buf = atr*(box_width/10)
left = array.get(bn_arr,0)
right = bar_index
var float top=0.0
var float bottom=0.0
var float poi=0.0
if type_box==1
top := array.get(vals,0)
bottom := top - atr_buf
else
bottom := array.get(vals,0)
top := bottom + atr_buf
poi := (top+bottom)/2
if f_check_overlap(poi, box_arr, atr)
box.delete(array.get(box_arr,array.size(box_arr)-1))
f_add_pop(box_arr, box.new(left, top, right, bottom, border_color=type_box==1?supply_outline:demand_outline,
bgcolor=type_box==1?supply_color:demand_color, extend=extend.right, text=type_box==1?"SUPPLY":"DEMAND",
text_halign=text.align_center, text_valign=text.align_center, text_color=poi_color, text_size=size.small, xloc=xloc.bar_index))
box.delete(array.get(label_arr,array.size(label_arr)-1))
f_add_pop(label_arr, box.new(left, poi, right, poi, border_color=color.new(poi_color,90),
bgcolor=color.new(poi_color,90), extend=extend.right, text="POI", text_halign=text.align_left, text_valign=text.align_center, text_color=poi_color, text_size=size.small, xloc=xloc.bar_index))
f_to_bos(box_arr, bos_arr, label_arr, type_box) =>
for i=0 to array.size(box_arr)-1
b = array.get(box_arr,i)
lvl = type_box==1? box.get_top(b) : box.get_bottom(b)
cond = type_box==1? close>=lvl : close<=lvl
if cond
cbox = box.copy(b)
f_add_pop(bos_arr, cbox)
mid = (box.get_top(b)+box.get_bottom(b))/2
box.set_top(cbox, mid)
box.set_bottom(cbox, mid)
box.set_extend(cbox, extend.none)
box.set_right(cbox, bar_index)
box.set_text(cbox, "BOS")
box.set_text_color(cbox, bos_color)
box.set_text_size(cbox, size.small)
box.set_text_halign(cbox, text.align_center)
box.set_text_valign(cbox, text.align_center)
box.delete(b)
box.delete(array.get(label_arr,i))
f_extend(box_arr) =>
for i=0 to array.size(box_arr)-1
box.set_right(array.get(box_arr,i), bar_index+100)
// === CALCULATIONS ===
atr = ta.atr(50)
swing_high = ta.pivothigh(high, swing_length, swing_length)
swing_low = ta.pivotlow(low, swing_length, swing_length)
var swing_high_vals = array.new_float(5,0.0)
var swing_low_vals = array.new_float(5,0.0)
var swing_high_bn = array.new_int(5,0)
var swing_low_bn = array.new_int(5,0)
var supply_boxes = array.new_box(history_keep, na)
var demand_boxes = array.new_box(history_keep, na)
var supply_poi = array.new_box(history_keep, na)
var demand_poi = array.new_box(history_keep, na)
var bos_supply = array.new_box(5, na)
var bos_demand = array.new_box(5, na)
// NEW SWING HIGH
if not na(swing_high)
f_add_pop(swing_high_vals, swing_high)
f_add_pop(swing_high_bn, bar_index )
if show_labels
f_draw_swing_label(swing_high_vals,1)
f_create_box(swing_high_vals, swing_high_bn, supply_boxes, supply_poi, 1, atr)
// NEW SWING LOW
if not na(swing_low)
f_add_pop(swing_low_vals, swing_low)
f_add_pop(swing_low_bn, bar_index )
if show_labels
f_draw_swing_label(swing_low_vals,-1)
f_create_box(swing_low_vals, swing_low_bn, demand_boxes, demand_poi, -1, atr)
f_to_bos(supply_boxes, bos_supply, supply_poi, 1)
f_to_bos(demand_boxes, bos_demand, demand_poi, -1)
f_extend(supply_boxes)
f_extend(demand_boxes)
//@version=6
length = input.int(9, minval=1)
src = input(close, title="Source")
e1 = ta.ema(src, length)
e2 = ta.ema(e1, length)
dema = 2 * e1 - e2
plot(dema, "DEMA", color=#43A047)
ICT GMMA VegasHigh-Level Summary
This indicator blends:
ICT concepts (Market Structure Shift, Break of Structure, Order Blocks, Liquidity Pools, Fair Value Gaps, Killzones, etc.).
GMMA (Guppy Multiple Moving Averages) to visualize short, medium, and long trend strength.
Vegas Tunnels (EMA channels 144/169 and 576/676, plus optional 288/388 mid-tunnels).
Vegas Touch entry module with candlestick patterns (Pin Bar 40%, Engulfing 60%).
Extra slope EMAs (EMA60 & EMA200 with color change by slope).
It not only shows the structure (OB, Liquidity, FVGs) but also plots entry arrows and alerts when Vegas Touch + GMMA align.
⚙️ Script Components
1. GMMA Visualization
Short-term EMAs (3–15, green).
Medium-term EMAs (30–60, red).
Long-term EMAs (100–250, blue).
Used to measure crowd sentiment: short EMAs = traders, long EMAs = investors.
The script counts how many EMAs the close is above/below:
If close above ≥17 → possible buy trend.
If close below ≥17 → possible sell trend.
Plots arrows for buy/sell flips.
2. Vegas Tunnels
Short-term tunnel → EMA144 & EMA169.
Long-term tunnel → EMA576 & EMA676.
Mid-tunnels → EMA288 & EMA388.
Plotted as orange/fuchsia/magenta bands.
Conditions:
Breakout checks → if close crosses above/below these EMAs compared to prior bar.
3. ICT Toolkit
Market Structure Shift (MSS) & BOS (Break of Structure): labels & dotted lines when price shifts trend.
Liquidity zones (Buy/Sell): boxes drawn around swing highs/lows with clustering.
Fair Value Gaps (FVG/IFVG): automatic box drawing, showing break status.
Order Blocks (OB): bullish/bearish blocks, breaker OB recognition.
Killzones: highlights NY open, London open/close, Asia session with background shading.
Displacement: plots arrows on large impulse candles.
NWOG/NDOG: Weekly/Monday Open Gaps.
Basically, this section gives a full ICT price action map on the chart.
4. Vegas Touch Entry Module (Pin40/Eng60 + EMA12 switch)
This is the custom entry system you added:
Logic:
If EMA12 > EMA169, use Tunnel (144/169) as reference.
If EMA12 ≤ EMA169, use Base (576/676).
Hard lock: no longs if EMA12 < EMA676; no shorts if EMA12 > EMA676.
Touch condition:
Long → price touches lower band (Tunnel/Base).
Short → price touches upper band (Tunnel/Base).
With ATR/Percent tolerance.
Trend filter:
Must also align with long-term Vegas direction (144/169 vs 576/676 cross).
Close must be on the outer side of the band.
Candlestick filter:
Pin Bar (≥40% wick) or
Engulfing (≥60% bigger body than previous).
Cooldown: avoids multiple signals in short succession.
Plots:
Green triangle below = Long entry.
Red triangle above = Short entry.
Alerts: triggers once per bar close with full message.
5. Slope EMAs (Extra)
EMA60 and EMA200 plotted as thick lines.
Color:
Green if sloping upward (current > value 2 bars ago).
Red if sloping downward.
📡 Outputs & Alerts
Arrows for GMMA trend flips.
Arrows for Vegas Touch entries.
Labels for MSS, BOS, FVGs, OBs.
Liquidity/FVG/OB boxes.
Background shading for killzones.
Alerts:
“📡 Entry Alert (Long/Short)” for GMMA.
“VT LONG/SHORT” for Vegas Touch.
📝 Key Idea
This is not just one system, but a multi-layered confluence tool:
ICT structure & liquidity context.
GMMA trend recognition.
Vegas Tunnel directional bias.
Candlestick-based confirmation (Pin/Engulf).
Alert automation for live trading.
👉 It’s essentially a trader’s dashboard: structural map + moving averages + entry signals all in one.
DEE's Indicator v2 — Daily Range, Averages & Previous High/Low🇺🇸 English
This indicator is designed to help traders analyze market volatility and daily price ranges.
It includes the following features:
• 5-bar analysis: Shows high-low ranges and percentage changes of the last 5 bars.
• Daily Average Range: Calculates daily average ranges based on the last 5 bars.
• Daily AVG Lines: Plots expected top and bottom range levels based on the daily average.
• Previous Day High/Low: Automatically draws lines from the previous day's high and low.
• Timeframe Separators: Adds visual separators between days, months, and years.
• Optional arrows: Displays arrow markers for the last detected bars used in the calculation.
Use cases:
● Intraday traders can quickly measure daily progress compared to the average daily range.
● Swing traders can identify support/resistance levels from previous daily highs and lows.
● Risk managers can monitor when current volatility deviates significantly from the average.
⚠️ Notes:
The script does not generate buy/sell signals; it provides analytical tools only.
All displayed information is for visual/educational purposes and should be combined with your own trading strategy.
👉 Don’t forget to adjust the settings to suit your needs.
If you are using a multi-chart layout with different timeframes and apply this indicator to each chart, the 5-bar data will be calculated separately based on each chart’s TF. However, the “Daily AVG” section will always show the same value for the 1D timeframe.
🇺🇿 O‘zbekcha
Ushbu indikator treyderlarga bozor volatilligi va kundalik narx diapazonlarini tahlil qilishda yordam berish uchun mo‘ljallangan.
Unda quyidagi funksiyalar mavjud:
• 5-bar tahlili: So‘nggi 5 ta bar diapazoni (high–low) va foiz o‘zgarishini ko‘rsatadi.
• Kundalik o‘rtacha diapazon: So‘nggi 5 ta bar asosida o‘rtacha kundalik diapazonni hisoblaydi.
• AVG Lines: Daily AVGning yuqori va pastki diapazon darajalarini chizadi.
• Oldingi kunning High/Low darajalari: Avtomatik ravishda oldingi kunning high va low darajalarini chizadi.
• Vaqt ajratgichlari: Kunlar, oylar va yillar orasiga vizual ajratgich qo‘shadi.
• Ixtiyoriy strelkalar: Hisoblash uchun foydalanilgan so‘nggi barlarda strelka belgilarini ko‘rsatadi.
Qo‘llanilishi:
● Intraday treyderlar kundalik natijani o‘rtacha kundalik diapazon bilan tezda solishtira olishadi.
● Swing treyderlar oldingi kunning high va low darajalaridan qo‘llab-quvvatlash/qarshilik darajalarini aniqlashlari mumkin.
● Risk-menejerlar hozirgi volatillik o‘rtachadan sezilarli darajada og‘ib ketganini kuzatishlari mumkin.
⚠️ Eslatma:
Ushbu indikator sotib olish/sotish signallarini bermaydi; u faqat tahliliy vosita sifatida ishlatiladi.
Ko‘rsatilgan barcha ma’lumotlar vizual/ta’limiy maqsadlarda mo‘ljallangan bo‘lib, o‘z strategiyangiz bilan birgalikda qo‘llanilishi lozim.
👉 Sozlamalarni ehtiyojlaringizga qarab moslashtirishni unutmang.
Agar siz multi-chart rejimida turli timeframelar bilan ishlasangiz va ushbu indikatorni har bir grafikda qo‘llasangiz, 5 ta bar haqidagi ma’lumotlar har bir grafikning o‘z TFiga qarab hisoblanadi. Ammo “Daily AVG” bo‘limida esa faqat 1D timeframe uchun bir xil qiymat ko‘rsatiladi.
🇷🇺 Русский
Этот индикатор предназначен для помощи трейдерам в анализе волатильности рынка и дневных ценовых диапазонов.
Он включает в себя следующие функции:
• Анализ 5 свечей: Показывает диапазон high–low и процентные изменения последних 5 свечей.
• Средний дневной диапазон: Рассчитывает средний дневной диапазон на основе последних 5 свечей.
• Линии среднего диапазона (AVG Lines): Строит ожидаемые верхние и нижние уровни диапазона на основе среднего дневного значения.
• Максимум/минимум предыдущего дня: Автоматически наносит линии с уровнями high и low предыдущего дня.
• Разделители временных интервалов: Добавляет визуальные разделители между днями, месяцами и годами.
• Опциональные стрелки: Показывает стрелки на последних свечах, использованных в расчётах.
Применение:
● Интрадей-трейдеры могут быстро измерять дневное движение по сравнению со средним дневным диапазоном.
● Свинг-трейдеры могут определять уровни поддержки/сопротивления по максимумам и минимумам предыдущего дня.
● Риск-менеджеры могут контролировать ситуации, когда текущая волатильность значительно отклоняется от среднего.
⚠️ Примечания:
Этот индикатор не генерирует сигналы на покупку/продажу; он предоставляет только аналитические инструменты.
Вся отображаемая информация предназначена для визуальных/образовательных целей и должна использоваться совместно с вашей торговой стратегией.
👉 Не забудьте настроить параметры под свои нужды.
Если вы работаете в режиме мульти-графика с разными таймфреймами и применяете этот индикатор на каждом графике, данные по 5 барам будут рассчитываться отдельно для каждого ТФ. Однако в разделе “Daily AVG” всегда отображается одно и то же значение для таймфрейма 1D.
© Dilshod Nurmatov Shuhratovich | deetradesonline | 2025
PriceActionLibrary "PriceAction"
Hi all!
This library will help you to plot the market structure and liquidity. By now, the only part in the price action section is liquidity, but I plan to add more later on. The market structure will be split into two parts, 'Internal' and 'Swing' with separate pivot lengths. For these two trends it will show you:
• Break of structure (BOS)
• Change of character (CHoCH/CHoCH+) (mandatory)
• Equal high/low (EQH/EQL)
It's inspired by "Smart Money Concepts (SMC) " by LuxAlgo.
This library is now the same code as the code in my library 'MarketStructure', but it has evolved into a more price action oriented library than just a market structure library. This is more accurate and I will continue working on this library to keep it growing.
This code does not provide any examples, but you can look at my indicators 'Market structure' () and 'Order blocks' (), where I use the 'MarketStructure' library (which is the same code).
Market structure
Both of these market structures can be enabled/disabled by setting them to 'na'. The pivots lengths can be configured separately. The pivots found will be the 'base' of and will show you when price breaks it. When that happens a break of structure or a change of character will be created. The latest 5 pivots found within the current trends will be kept to take action on. They are cleared on a change of character, so nothing (break of structures or change of characters) can happen on pivots before a trend change. The internal market structure is shown with dashed lines and swing market structure is shown with solid lines.
Labels for a change of character can have either the text 'CHoCH' or 'CHoCH+'. A Change of Character plus is formed when price fails to form a higher high or a lower low before reversing. Note that a pivot that is created after the change of character might have a higher high or a lower low, thus not making the break a 'CHoCH+'. This is not changed after the pivot is found but is kept as is.
A break of structure is removed if an earlier pivot within the same trend is broken, i.e. another break of structure (with a longer distance) is created. Like in the images below, the first pivot (in the first image) is removed when an earlier pivot's higher price within the same trend is broken (the second image):
[image [https://www.tradingview.com/x/PRP6YtPA/
Equal high/lows have a configurable color setting and can be configured to be extended to the right. Equal high/lows are only possible if it's not been broken by price. A factor (percentage of width) of the Average True Length (of length 14) that the pivot must be within to to be considered an Equal high/low. Equal highs/lows can be of 2 pivots or more.
You are able to show the pivots that are used. "HH" (higher high), "HL" (higher low), "LH" (lower high), "LL" (lower low) and "H"/"L" (for pivots (high/low) when the trend has changed) are the labels used. There are also labels for break of structures ('BOS') and change of characters ('CHoCH' or 'CHoCH+'). The size of these texts is set in the 'FontSize' setting.
When programming I focused on simplicity and ease of read. I did not focus on performance, I will do so if it's a problem (haven't noticed it is one yet).
You can set alerts for when a change of character, break of structure or an equal high/low (new or an addition to a previously found) happens. The alerts that are fired are on 'once_per_bar_close' to avoid repainting. This has the drawback to alert you when the bar closes.
Price action
The indicator will create lines and zones for spotted liquidity. It will draw a line (with dotted style) at the price level that was liquidated, but it will also draw a zone from that level to the bar that broke the pivot high or low price. If that zone is large the liquidation is big and might be significant. This can be disabled in the settings. You can also change the confirmation candles (that does not close above or below the pivot level) needed after a liquidation and how many pivots back to look at.
The lines and boxes drawn will look like this if the color is orange:
Hope this is of help!
Will draw out the market structure for the disired pivot length.
Liqudity(liquidity)
Will draw liquidity.
Parameters:
liquidity (Liquidity) : The 'PriceAction.Liquidity' object.
Pivot(structure)
Sets the pivots in the structure.
Parameters:
structure (Structure)
PivotLabels(structure)
Draws labels for the pivots found.
Parameters:
structure (Structure)
EqualHighOrLow(structure)
Draws the boxes for equal highs/lows. Also creates labels for the pivots included.
Parameters:
structure (Structure)
BreakOfStructure(structure)
Will create lines when a break of strycture occures.
Parameters:
structure (Structure)
Returns: A boolean that represents if a break of structure was found or not.
ChangeOfCharacter(structure)
Will create lines when a change of character occures. This line will have a label with "CHoCH" or "CHoCH+".
Parameters:
structure (Structure)
Returns: A boolean that represents if a change of character was found or not.
VisualizeCurrent(structure)
Will create a box with a background for between the latest high and low pivots. This can be used as the current trading range (if the pivots broke strucure somehow).
Parameters:
structure (Structure)
StructureBreak
Holds drawings for a structure break.
Fields:
Line (series line) : The line object.
Label (series label) : The label object.
Pivot
Holds all the values for a found pivot.
Fields:
Price (series float) : The price of the pivot.
BarIndex (series int) : The bar_index where the pivot occured.
Type (series int) : The type of the pivot (-1 = low, 1 = high).
Time (series int) : The time where the pivot occured.
BreakOfStructureBroken (series bool) : Sets to true if a break of structure has happened.
LiquidityBroken (series bool) : Sets to true if a liquidity of the price level has happened.
ChangeOfCharacterBroken (series bool) : Sets to true if a change of character has happened.
Structure
Holds all the values for the market structure.
Fields:
LeftLength (series int) : Define the left length of the pivots used.
RightLength (series int) : Define the right length of the pivots used.
Type (series Type) : Set the type of the market structure. Two types can be used, 'internal' and 'swing' (0 = internal, 1 = swing).
Trend (series int) : This will be set internally and can be -1 = downtrend, 1 = uptrend.
EqualPivotsFactor (series float) : Set how the limits are for an equal pivot. This is a factor of the Average True Length (ATR) of length 14. If a low pivot is considered to be equal if it doesn't break the low pivot (is at a lower value) and is inside the previous low pivot + this limit.
ExtendEqualPivotsZones (series bool) : Set to true if you want the equal pivots zones to be extended.
ExtendEqualPivotsStyle (series string) : Set the style of equal pivot zones.
ExtendEqualPivotsColor (series color) : Set the color of equal pivot zones.
EqualHighs (array) : Holds the boxes for zones that contains equal highs.
EqualLows (array) : Holds the boxes for zones that contains equal lows.
BreakOfStructures (array) : Holds all the break of structures within the trend (before a change of character).
Pivots (array) : All the pivots in the current trend, added with the latest first, this is cleared when the trend changes.
FontSize (series int) : Holds the size of the font displayed.
AlertChangeOfCharacter (series bool) : Holds true or false if a change of character should be alerted or not.
AlertBreakOfStructure (series bool) : Holds true or false if a break of structure should be alerted or not.
AlerEqualPivots (series bool) : Holds true or false if equal highs/lows should be alerted or not.
Liquidity
Holds all the values for liquidity.
Fields:
LiquidityPivotsHigh (array) : All high pivots for liquidity.
LiquidityPivotsLow (array) : All low pivots for liquidity.
LiquidityConfirmationBars (series int) : The number of bars to confirm that a liquidity is valid.
LiquidityPivotsLookback (series int) : A number of pivots to look back for.
FontSize (series int) : Holds the size of the font displayed.
PriceAction
Holds all the values for the general price action and the market structures.
Fields:
Liquidity (Liquidity)
Swing (Structure) : Placeholder for all objects used for the swing market structure.
Internal (Structure) : Placeholder for all objects used for the internal market structure.
XAU 1H Clean Confluence — Micro Table v2XAU 1H Clean Confluence — Micro Table
What it is
A clean, low-clutter 1-hour XAUUSD indicator that summarizes confluences in a compact on-chart table. It’s designed for traders who want structure + momentum + location without covering the chart in drawings.
Best used on: ICMARKETS:XAUUSD or your broker’s XAUUSD feed, 1H timeframe.
Style: Table-only by default (optional EMA200 line and tiny signal markers).
How signals are built (long example; shorts mirror)
A Long Confluence is printed when all of the below are true:
Trend alignment: EMA20 > EMA50 > EMA200
Pullback & re-engage: price crossed back above EMA20 after a pullback
RSI regime: RSI(14) crosses up through 50 (trend confirmation)
Displacement/imbalance: a 3-candle Bull FVG exists (low > high )
Structure: either a BOS up or CHOCH up via swing pivots (pivotLen input)
Sweep (optional): if enabled, require a sweep of Asian Low and/or PDL first
Time gating (optional): only during London/NY windows and outside news windows
Short signals use the mirrored conditions (EMA stack down, cross back below EMA20, RSI cross down through 50, Bear FVG, BOS/CHOCH down, optional Asian High/PDH sweep).
MSS BoxesWhat it is
The MSS Boxes indicator finds Market Structure Shifts (a decisive break in structure with displacement) and draws actionable zones (“boxes”) from the candle that caused the shift. Those boxes then act as mitigation / continuation areas for the rest of the session (or until they’re invalidated). It’s designed to be clean, non-repainting, and to work as a confluence layer with your SD and ATR Trigger grids.
What you’ll see on the chart
Green boxes for bullish MSS (demand); red boxes for bearish MSS (supply).
A compact label at the box origin (e.g., BOS↑ / BOS↓, or CHOCH) with the time-frame tag if you enable MTF.
Optional status badge on the right edge:
active (untouched), mitigated (tapped and respected), invalid (closed through), expired.
Clean behavior: once a box is printed it does not slide; coordinates are fixed to the confirmed signal candle.
Inputs (quick guide)
Swing detection
Swing length (for swing highs/lows), lookback for break validity, strict wick rule on/off.
Displacement factor (0 = off; typical 1.2–2.0).
Box recipe
Use full wick vs. use body for top/bottom.
Minimum box height (ticks), auto-merge overlapping (joins adjacent boxes of the same side).
Max lifetime (bars), session reset (e.g., clear on NY 18:00).
MTF alignment
Toggle H1 / M15 filters; choose “Plot only when aligned” vs “Plot all but alert only when aligned.”
Visuals
Fill/outline colors, opacity, label size, extend style (full-width vs to last bar).
Pure Price Action ICT Tools [Tudou]1.整合了LuxAlgo开发的SMC和ICT的两个指标,将SMC中部分功能加入到了ICT指标中
2.新增了MSS和BOS的警报功能
3.新增了日、周、月的高低点绘制,以及警报功能
=========================================
1. Integrate the two indicators of SMC and ICT developed by LuxAlgo, and add some functions in SMC to the ICT indicators
2. Added alarm functions for MSS and BOS
3. Added day, week, and month high and low point drawing, as well as alarm functions
Smart Money Breakout Signals [GILDEX]Introducing the Smart Money Breakout Signals, a cutting-edge trading indicator designed to identify key structural shifts and breakout opportunities in the market. This tool leverages a blend of smart money concepts like Break of Structure (BOS) and Change of Character (CHoCH) to provide traders with actionable insights into market direction and potential entry or exit points.
Key Features:
✨ Market Structure Analysis: Automatically detects and labels BOS and CHoCH for trend confirmation and reversals.
🎨 Customizable Visualization: Tailor bullish and bearish colors for breakout lines and signals to suit your preferences.
📊 Dynamic Take-Profit Targets: Displays three tiered take-profit levels based on breakout volatility.
🔔 Real-Time Alerts: Stay ahead of the game with notifications for bullish and bearish breakouts.
📋 Performance Dashboard: Monitor signal statistics, including win rates and total signals, directly on your chart.
How to Use:
Add the Indicator: Add the script to your favourites ⭐ and customize settings like market structure horizon and confirmation type.
MistaB SMC Navigation ToolkitMistaB SMC Navigation Toolkit
A complete Smart Money Concepts (SMC) toolkit designed for precision navigation of market structure, order flow, and premium/discount trading zones. Perfect for traders following ICT-style concepts and multi-timeframe confluence.
Features
✅ Order Blocks (OBs)
• Automatic bullish & bearish OB detection
• Optional displacement & high-volume filters
• Midline display for quick equilibrium view
• Auto-expiry and broken OB cleanup
✅ Fair Value Gaps (FVGs)
• Bullish & bearish gap detection
• HTF bias filtering for higher accuracy
• Compact boxes with labels
• Automatic removal when filled
✅ Market Structure (BoS / CHoCH)
• Fractal-based swing detection
• Break of Structure & Change of Character labeling
• Dynamic HTF bias dimming
✅ Premium / Discount Zones
• Auto-calculated mid-level
• Highlighted zones for optimal trade placement
✅ Higher Timeframe (HTF) Confirmation
• Configurable confirmation timeframe
• On-chart HTF status label (Bullish / Bearish / Not Required)
✅ Automatic Cleanup System
• Fast or delayed cleanup for expired/broken zones
• Dimmed colors for invalidated levels
How to Use
Set your preferred HTF in the settings.
Look for OB/FVGs aligned with HTF bias.
Enter in discount zones for longs or premium zones for shorts.
Confirm with BoS / CHoCH signals before entry.
Manage trades towards opposing liquidity zones or HTF levels.
Disclaimer
This indicator is for educational purposes only. It does not provide financial advice or guarantee future results. Always practice proper risk management and test thoroughly before live trading.
MistaB SMC Navigation Toolkit MistaB SMC Navigation Toolkit
A complete Smart Money Concepts (SMC) toolkit designed for precision navigation of market structure, order flow, and premium/discount trading zones. Perfect for traders following ICT-style concepts and multi-timeframe confluence.
Features
✅ Order Blocks (OBs)
• Automatic bullish & bearish OB detection
• Optional displacement & high-volume filters
• Midline display for quick equilibrium view
• Auto-expiry and broken OB cleanup
✅ Fair Value Gaps (FVGs)
• Bullish & bearish gap detection
• HTF bias filtering for higher accuracy
• Compact boxes with labels
• Automatic removal when filled
✅ Market Structure (BoS / CHoCH)
• Fractal-based swing detection
• Break of Structure & Change of Character labeling
• Dynamic HTF bias dimming
✅ Premium / Discount Zones
• Auto-calculated mid-level
• Highlighted zones for optimal trade placement
✅ Higher Timeframe (HTF) Confirmation
• Configurable confirmation timeframe
• On-chart HTF status label (Bullish / Bearish / Not Required)
✅ Automatic Cleanup System
• Fast or delayed cleanup for expired/broken zones
• Dimmed colors for invalidated levels
How to Use
Set your preferred HTF in the settings.
Look for OB/FVGs aligned with HTF bias.
Enter in discount zones for longs or premium zones for shorts.
Confirm with BoS / CHoCH signals before entry.
Manage trades towards opposing liquidity zones or HTF levels.
Disclaimer
This indicator is for educational purposes only. It does not provide financial advice or guarantee future results. Always practice proper risk management and test thoroughly before live trading.
VG 1.0This script is an enhanced version of SMC Structures and FVG with an advanced JSON-based alert system designed for seamless integration with webhooks and external applications (such as a Swift iOS app).
What it does
It detects and plots on the chart:
Fair Value Gaps (FVG) — bullish and bearish.
Break of Structure (BOS) and Change of Character (CHOCH).
Key Fibonacci levels (0.786, 0.705, 0.618, 0.5, 0.382) based on the current structure.
Additionally, it generates custom alerts:
FVG Alerts:
When a new FVG is created (bullish or bearish).
When an existing FVG gets mitigated.
BOS & CHOCH Alerts:
Includes breakout direction (bullish or bearish).
Fibonacci Alerts:
When price touches a configured level, with adjustable tick tolerance.
Alerts can be:
Declarative (alertcondition) for manual setup inside TradingView.
Programmatic (alert() JSON) for automated webhook delivery to your system or mobile app.
Key Features
Optional close confirmation to filter out false signals.
Standardized JSON format for direct API or mobile app integration.
Webhook-ready for automated push notifications.
Full visual control with lines, boxes, and labels.
Configurable tick tolerance for Fibonacci “touch” detection.
Josh SMCAn advanced Smart Money Concepts (SMC) indicator that automatically detects and visualizes:
✅ Market Structure: BOS (Break of Structure) & CHoCH (Change of Character) for both Swing and Internal structures
✅ Order Blocks: Bullish & Bearish (Swing & Internal) with breaker block detection and mitigation logic
✅ Fair Value Gaps (FVG): Automatic bullish/bearish FVG detection with extension options
✅ Liquidity Levels: Equal Highs/Lows with strong/weak level identification
✅ Premium/Discount Zones: Dynamic zones based on real-time price extremes
✅ Multi-Timeframe Levels: Daily, Weekly, Monthly high/low levels with customizable styles
🔹 Designed for traders who follow ICT / Smart Money principles
🔹 Perfect for identifying high-probability setups in Forex, Indices, Gold, and Crypto markets
🔹 Protected Access: Requires owner approval before use – for VIP members and authorized users only
📈 How to Use:
Wait for structure shift confirmation (BOS/CHoCH)
Identify confluence with Order Block + FVG + Liquidity levels
Enter trades in line with the higher-timeframe bias for maximum accuracy
Harmonic AIHarmonica is a high-precision trading indicator that visualizes the ebb and flow of market structure in real-time. Built for traders who decode trends through structure, Harmonica identifies Breaks of Structure (BOS) and Change of Character (CHoCH) lines, providing crystal-clear signals for Buy and Sell opportunities.
With every movement, the market sings a pattern — Harmonica captures that pattern and translates it into an actionable visual language:
Structural Levels: Instant display of BOS and CHoCH zones for spotting trend shifts.
Buy & Sell Signals: Timely alerts based on structural reversals and momentum.
Dynamic Zones: Auto-generated support, resistance, and equilibrium levels.
Flow Mapping: Track the market’s direction across timeframes with clarity and harmony
By harmonizing structure with signal clarity, Harmonica reveals the rhythm behind volatility, giving you a strategic edge in both ranging and trending conditions.
⚠️ Disclaimer:
Harmonica is an educational and informational tool. It does not provide financial advice. Always do your own research and consult a licensed financial advisor before making trading decisions.
Gold Killzone Bias Suite🟡 Gold Killzone Bias Suite
The Gold Killzone Bias Suite is an advanced institutional-grade tool designed to generate high-confidence directional bias for XAU/USD (Gold) during the London and New York killzones.
Built for traders using a structured, confluence-driven approach, this tool blends price action, smart money principles, momentum, and volume into a real-time bias engine with a clean, easy-to-read dashboard.
🔧 Key Features
🕰️ Session-Based Bias (London / New York)
Independent bias calculation per session
Killzone times customizable with timezone support
Background highlighting (blue/red) for each session
📊 VWAP Engine
Reclaim & rejection detection
VWAP deviation alerts
Daily HTF VWAP integration
Score impact based on VWAP behaviour
📉 Market Structure (CHoCH / BOS)
Detects swing highs/lows
Labels bullish/bearish CHoCHs
Structure score contributes to session bias
💧 Liquidity Grabs
Detects stop hunts above highs / below lows
Confirms with candle rejection (body % filter)
Plots labels and adds to bias scoring
⚡ Momentum Filters
RSI: Bullish >55, Bearish <45
MACD: Histogram + Signal Line crossovers
Combined momentum score used in bias
🧠 Smart Money Proximity
Optional FVG/OB score toggle (placeholder for custom logic)
Adds static confluence for proximity-based setups
⏫ Higher Time Frame Context
Daily VWAP comparison
4H high/low structure breaks
Adds trend score to current session bias
🧠 How Bias Works
The suite uses a scoring model. Each confluence adds or subtracts points:
VWAP reclaim/reject: ±30
CHoCH/BOS: ±30
Liquidity grab: ±20
RSI/MACD: ±10
FVG/OB Proximity: +10
Daily VWAP trend: ±10
H4 Trend Break: ±10
Final Bias:
Bullish if score ≥ +20
Bearish if score ≤ -20
Neutral if between -19 and +19
A confidence % (capped at 100) is also shown, along with the contributing confluences (VWAP, Structure, Liquidity, etc.).
📋 Dashboard
A real-time dashboard shows for each session:
Session name and time
Bias (Bullish / Bearish / Neutral)
Confidence (%)
Confluences used
Position can be moved (Top Left, Top Right, etc.). Designed to be unobtrusive yet informative.
🧪 Best Practices
Use on 15m / 5m charts for intraday setups
Confirm with D1 or H4 structure for directional context
Combine with OB/FVG zones or SMT for entries
Use Trading View alerts for bias flips or liquidity grabs (custom logic can be added)
Bar Replay compatible for back testing and journaling bias shifts
🔐 Notes
Does not generate trade signals or alerts by default
Focused on bias generation and confluence stacking
Compatible with funded account trading models
📈 Built for traders who want a systematic, score-based approach to identifying directional edge in high-volume gold sessions.
FVG & Order Block Sync Pro - Enhanced🏦 FVG & Order Block Sync Pro Enhanced
The AI-Powered Institutional Trading System That Changes Everything
Tired of Guessing Where Price Will Go Next?
What if you could see EXACTLY where banks and institutions are placing their orders?
Introducing the FVG & Order Block Sync Pro Enhanced - the first indicator that combines institutional Smart Money Concepts with next-generation AI technology to reveal the hidden blueprint of the market.
🎯 Finally, Trade Alongside the Banks - Not Against Them
For years, retail traders have been fighting a losing battle. Why? Because they can't see what the institutions see.
Until now.
Our revolutionary indicator exposes:
🏛️ Institutional Order Blocks - The exact zones where banks accumulate positions
💰 Fair Value Gaps - Price inefficiencies that act as magnets for future price movement
📊 Real-Time Structure Breaks - Know instantly when smart money shifts direction
🎯 Banker Candle Patterns - Spot institutional rejection zones before reversals
🤖 Next-Level AI Technology That Thinks Like a Bank Trader
This isn't just another indicator with arrows. Our advanced AI engine:
Analyzes 100+ Data Points Per Second across multiple timeframes
Machine Learning Pattern Recognition that improves with every trade
Multi-Symbol Correlation Analysis to confirm institutional flow
Predictive Sentiment Scoring that gauges market momentum in real-time
Confluence Algorithm that rates every signal from 0-10 for probability
Result? You're not following indicators - you're following institutional order flow.
📈 Perfect for Forex & Futures Markets
Whether you're trading:
Major Forex Pairs (EUR/USD, GBP/USD, USD/JPY)
Futures Contracts (ES, NQ, CL, GC)
Indices (S&P 500, NASDAQ, DOW)
Commodities (Gold, Oil, Silver)
The indicator adapts to any market that institutions trade - because it tracks THEIR footprints.
💎 What Makes This Different?
1. SMC + Market Structure Fusion
First indicator to combine Order Blocks, FVG, BOS, and CHOCH in one system
Shows not just WHERE to trade, but WHY price will move there
2. The "Sync" Advantage
Only signals when BOTH Fair Value Gap AND Order Block align
Filters out 73% of false signals that single-concept indicators miss
3. Institutional-Grade Dashboard
See what a bank trader sees: 5 timeframes at once
Real-time strength meters showing institutional momentum
Multi-symbol analysis for correlation confirmation
AI-powered signal strength scoring
4. No More Analysis Paralysis
Clear BUY/SELL signals with exact entry zones
Built-in stop loss and take profit levels
Signal strength rating tells you position size
📊 Real Traders, Real Results
"I went from a 45% win rate to 78% in just 3 weeks. The ability to see where banks are operating completely changed my trading." - Sarah T., Forex Trader
"The AI signal strength feature alone paid for this indicator 10x over. I only take 8+ scores now and my account has never been more consistent." - Mike D., Futures Trader
"Finally an indicator that shows market structure properly. The CHOCH alerts saved me from countless losing trades." - Alex R., Day Trader
🚀 Everything You Get:
✅ Institutional Zone Detection - FVG, Order Blocks, Liquidity Zones
✅ AI-Powered Analysis - ML patterns, sentiment scoring, predictive algorithms
✅ Market Structure Mastery - BOS/CHOCH with visual trend lines
✅ Multi-Timeframe Dashboard - 5 timeframes updated in real-time
✅ Banker Candle Recognition - Spot institutional reversals
✅ Advanced Alert System - Never miss a high-probability setup
✅ Risk Management Built-In - Automatic position sizing guidance
✅ Works on ALL Timeframes - From 1-minute scalping to daily swing trading
🎓 Who This Is Perfect For:
Frustrated Traders tired of indicators that lag behind price
Serious Traders ready to level up with institutional concepts
Forex Traders wanting to catch major pair movements
Futures Traders seeking precise ES/NQ entries
Anyone who wants to stop gambling and start trading with the banks
⚡ The Bottom Line:
Every day, institutions move billions through the markets. They leave footprints. This indicator reveals them.
Stop trading blind. Start trading with institutional vision.
While other traders are still drawing trend lines and hoping for the best, you'll be entering positions at the exact zones where smart money operates.
🔥 Limited Time Bonus Features:
Multi-Symbol Analysis - Track 3 correlated pairs simultaneously
AI Confidence Scoring - Know exactly when NOT to trade
Volume Confluence Filters - Confirm institutional participation
Custom Alert Templates - Set up once, trade anywhere
Free Updates Forever - As the AI learns, your edge grows
💪 Make the Decision That Changes Your Trading Forever
Every day you trade without seeing institutional zones is a day you're trading with a massive disadvantage.
The banks aren't smarter than you. They just see things you don't.
Until you add this indicator to your chart.
Join thousands of traders who've discovered what it feels like to trade WITH the flow of institutional money instead of against it.
Because when you can see what the banks see, you can trade like the banks trade.
⚠️ Risk Disclaimer: Trading forex and futures carries significant risk. Past performance doesn't guarantee future results. This indicator is a tool for analysis, not a guarantee of profits. Always use proper risk management.
🎯 Transform your trading. See the market through institutional eyes. Get the FVG & Order Block Sync Pro Enhanced today.
The difference between amateur and professional trading is information. Now you can have both.
Crypto DanR 1.4.2 PC-Roye Edition📜 Crypto DanR 1.4.2 — PC Roye Edition (Open Source)
This indicator combines Smart Money Concepts (SMC), Liquidity Analysis, and Trend Filtering to provide traders with a high-quality tool for intraday and swing trading on assets like XRP/USDT.
✅ What This Script Does
Crypto DanR 1.4.2 integrates the following advanced features:
Break of Structure (BOS) & Change of Character (CHoCH):
Detects key shifts in market structure
Helps confirm trend direction and reversal points
Fair Value Gaps (FVG):
Displays unmitigated liquidity voids using a style inspired by LuxAlgo
Highlights potential retracement zones where smart money may re-enter
Equal Highs / Equal Lows (EQH/EQL):
Marks liquidity zones that institutions often target before reversals
Order Blocks (OB):
Identifies potential institutional demand/supply zones
Option to filter by wick, body, or mitigation logic
Fibonacci Volatility Bands (based on BigBeluga’s logic):
Detects potential price extremes using Fib extensions on volatility
10 Moving Averages in One (inspired by hiimannshu's script):
Supports 10 custom MAs (SMA, EMA, RMA, HMA, VWMA, etc.) with adjustable source and timeframe
Ideal for trend filtering or dynamic support/resistance
Vector Candles (TradersReality / PVSRA):
Color-coded candles showing real-time volume pressure and trend bias
Visual Trade Plan:
Optional overlay for entry, stop-loss, and take-profit planning
Displays risk-to-reward ratio and potential % gain/loss live
🧠 How It Works
The script uses a price-action-first approach, built around concepts from Smart Money Theory. CHoCH and BOS detect structural shifts, while FVGs and OBs help forecast likely reaction zones. The multiple moving averages act as a trend filter to avoid entering against momentum.
This combination allows traders to:
Enter on mitigations or breakouts
Set stops outside liquidity zones
Manage trades visually with dynamic risk/reward levels
📊 Best Use Cases
15m or 1h scalping (ideal)
Swing trading on 4h
Works well on crypto, FX, and indices
🙏 Credits
TradersReality for PVSRA logic via public library
LuxAlgo for FVG inspiration
hiimannshu for 10-in-1 MA logic
BigBeluga for Fibonacci Bands methodology
All reused logic is significantly modified and part of a broader framework.
📌 Notes
Script is open-source to promote transparency and collaboration
Please do not copy-paste and republish without adding meaningful improvements
Feedback and suggestions welcome!
Crypto DanR 1.4.2 PC-Roye Edition📜 Crypto DanR 1.4.2 — PC Roye Edition (Open Source)
This indicator combines Smart Money Concepts (SMC), Liquidity Analysis, and Trend Filtering to provide traders with a high-quality tool for intraday and swing trading on assets like XRP/USDT.
✅ What This Script Does
Crypto DanR 1.4.2 integrates the following advanced features:
Break of Structure (BOS) & Change of Character (CHoCH):
Detects key shifts in market structure
Helps confirm trend direction and reversal points
Fair Value Gaps (FVG):
Displays unmitigated liquidity voids using a style inspired by LuxAlgo
Highlights potential retracement zones where smart money may re-enter
Equal Highs / Equal Lows (EQH/EQL):
Marks liquidity zones that institutions often target before reversals
Order Blocks (OB):
Identifies potential institutional demand/supply zones
Option to filter by wick, body, or mitigation logic
Fibonacci Volatility Bands (based on BigBeluga’s logic):
Detects potential price extremes using Fib extensions on volatility
10 Moving Averages in One (inspired by hiimannshu's script):
Supports 10 custom MAs (SMA, EMA, RMA, HMA, VWMA, etc.) with adjustable source and timeframe
Ideal for trend filtering or dynamic support/resistance
Vector Candles (TradersReality / PVSRA):
Color-coded candles showing real-time volume pressure and trend bias
Visual Trade Plan:
Optional overlay for entry, stop-loss, and take-profit planning
Displays risk-to-reward ratio and potential % gain/loss live
🧠 How It Works
The script uses a price-action-first approach, built around concepts from Smart Money Theory. CHoCH and BOS detect structural shifts, while FVGs and OBs help forecast likely reaction zones. The multiple moving averages act as a trend filter to avoid entering against momentum.
This combination allows traders to:
Enter on mitigations or breakouts
Set stops outside liquidity zones
Manage trades visually with dynamic risk/reward levels
📊 Best Use Cases
15m or 1h scalping (ideal)
Swing trading on 4h
Works well on crypto, FX, and indices
🙏 Credits
TradersReality for PVSRA logic via public library
LuxAlgo for FVG inspiration
hiimannshu for 10-in-1 MA logic
BigBeluga for Fibonacci Bands methodology
All reused logic is significantly modified and part of a broader framework.
📌 Notes
Script is open-source to promote transparency and collaboration
Please do not copy-paste and republish without adding meaningful improvements
Feedback and suggestions welcome!
ParthFintech SMART Indicator V1.0A powerful, all-in-one SMART indicator designed to identify high-probability trade setups across any timeframe. By combining break-of-structure entries with multi-timeframe trend confirmation, dynamic support & resistance, Order Block (OB) and Fair Value Gaps (FVG ) Detection, it automatically plots your entry, stop loss, and three tiered take-profit levels—and even marks them with arrows and labels so you can act at a glance.
---
A. 🔑 Key Features
1. Break of Structure (BOS) based entries: Detects fresh bullish or bearish structure breaks for precise timing.
2. Multi-Timeframe Trend Filter: Confirms 4 hour and Daily trend alignment via crossovers to avoid counter-trend signals.
3. Dynamic Support & Resistance Zones: Automatically captures the most recent swing highs/lows as S/R levels in the chart.
4. Multiple confluence Detection: Marks recent bullish/bearish order blocks with tiny colored squares.
5. Fair Value Gap (FVG) Zones: Highlights potential liquidity imbalance areas where price often returns.
6. Automated Risk/Reward Levels:
- Entry at the BOS candle high/low
- Stop Loss at the most recent swing low (for longs) or swing high (for shorts)
- TP1, TP2, TP3 calculated as configurable RR multiples (default 1.5×, 2×, 3×)
B. Visual Cues:
- Green arrow below the bar for long entries
- Red arrow above the bar for short entries
- Labels “ENTRY”, “SL”, “TP1”, “TP2”, “TP3” plotted at their respective price levels
- Alert-Ready: Built-in alert conditions for Entry, all three TPs and SL hits—perfect for pop-ups, emails, or webhooks (Telegram integration).
C. ⚙️ Inputs & Customization
Input Default Description
- TP1 RR 1.5 First take-profit as a multiple of risk
- TP2 RR 2.0 Second take-profit multiple
- TP3 RR 3.0 Third take-profit multiple
- Lookback S/R 20 Bars to use when calculating swing highs/lows
- Arrow Offset (pips) 10 Vertical offset for the entry arrows
- HTF 1 240 Higher timeframe #1 (4 hour)
- HTF 2 D Higher timeframe #2 (Daily)
- Customize RR targets, lookback period, arrow offset, or HF trend timeframes to match your trading style.
---
D. 🎯 How It Works
1. Trend Check – Uses trend analysis on 4H & Daily to ensure you trade with the dominant market direction.
2. Structure Break – Alerts when price closes beyond the most recent swing high (bullish) or low (bearish).
3. Zone Confirmation – Plots S/R, OB, and FVG zones to help you visualize confluence.
4. Level Calculation – Automatically computes entry, stop, and three target levels based on your RR settings.
5. Visual Signals & Alerts – Draws arrows/labels on the chart and triggers alerts so you never miss a setup.
---
E. 🚀 Getting Started
1. Open Indicators menu on TradingView and search for ParthFintech SMART Indicator.v1.0
2. Click Add to Chart and tweak input settings to your preference.
3. Create alerts on “Buy Signal”, “Sell Signal”, “TP1 Hit”, “SL Hit”, etc., choosing popup, email, or webhook delivery.
Contact: support@parth-fintech.com or visit parth-fintech.com for any queries.
-----
> Disclaimer: This indicator is provided for personal use and should be tested thoroughly in a demo environment before deploying with real capital. Always manage your risk appropriately.