Liquidity Entry Triggers (4-Model System) | WarRoomXYZLiquidity Entry Triggers is an open-source, price-action-based analytical framework designed to highlight recurring institutional liquidity behaviors that appear across all liquid markets.
The script focuses on how and where liquidity is taken, rather than attempting to predict direction using oscillators or lagging indicators.
It is optimized for XAUUSD, FX pairs, indices, and crypto , particularly on 1m–15m timeframes where session behavior and liquidity reactions are most visible.
This tool is not a buy/sell signal generator .
It provides contextual entry zones based on structural liquidity logic, allowing traders to apply their own execution rules.
Core Philosophy
Markets move because of:
•Trapped traders
•Forced liquidations
•Session-based liquidity cycles
•Reactions at prior institutional participation zones
This script visualizes four repeatable entry triggers that emerge from those mechanisms.
🔹 1. Failed Breakout / Trapped Trader Model
When price breaks a clearly defined range high or low, breakout traders often enter expecting continuation.
If price fails to hold outside the range and closes back inside, those traders become trapped.
The script detects:
•Breaks beyond recent highs/lows
•Immediate rejection back into the range
•Structural failure of momentum
These conditions frequently lead to mean reversion or reversal moves as trapped traders exit and fuel movement in the opposite direction.
Markers are plotted at the point of failure to highlight potential trap zones.
🔹 2. Liquidation Flush Detection
Sharp impulsive candles with abnormally large wicks often represent liquidation cascades rather than healthy trend continuation.
The script identifies liquidation behavior by measuring:
•Wick-to-body imbalance
•Sudden expansion followed by rejection
•Temporary price inefficiencies
These flushes commonly occur near:
•Session highs/lows
•Range extremes
•Trend exhaustion points
Such events often lead to rebalance moves , where price partially or fully fills the wick.
🔹 3. Orderblock Reaction Zones
Orderblocks represent areas where heavy participation occurred before a strong displacement move.
The script highlights:
•Clean bullish and bearish orderblock structures
•Zones formed during consolidation prior to expansion
•Areas likely to be defended when revisited
Orderblocks with minimal noise and clean departure are prioritized, as they often reflect institutional positioning rather than retail activity.
These zones are intended as reaction areas , not automatic entry signals.
🔹 4. London Session Liquidity Sweep Model
The London session frequently establishes the initial daily high or low.
Later in the session or during New York, price often:
•Sweeps internal liquidity around that level
•Rejects after the sweep
•Continues with the higher-timeframe bias
The script monitors London session behavior and marks:
•Liquidity runs above/below London highs and lows
•Rejections back inside the prior structure
This model is especially effective when combined with broader daily context.
🔹4. How the Components Work Together
The framework is designed as a context stack , not a checklist of signals:
Liquidity Event → Location → Timing → Trader Execution
Each model reinforces the others:
•Failed breakouts often occur after liquidity sweeps
•Liquidation wicks frequently form near orderblocks
•London sweeps often trigger failed momentum moves
•Confluence increases probability, not certainty
🔹 Practical Usage Guide
✔ Identify context
Determine whether price is approaching a range extreme, session level, or prior participation zone.
✔ Wait for a liquidity event
Look for a sweep, failed breakout, or liquidation wick.
✔ Observe reaction
Rejection, displacement, or reclaim behavior provides confirmation.
✔ Execute manually
Stops are commonly placed beyond the liquidity extreme.
Targets are typically internal liquidity, prior highs/lows, or imbalance zones.
The indicator does not manage trades or enforce rules.
Execution and risk management remain the trader’s responsibility.
🔹 5. Originality & Design Notes
This script does not replicate or bundle existing indicators.
It introduces:
•A multi-model liquidity entry framework
•Structural failed breakout detection
•Wick-based liquidation imbalance logic
•Session-aware liquidity sweep visualization
•A unified, minimal, non-lagging design
All concepts are based on observable market behavior and integrated into a single analytical tool.
🔹 6. Suitable Markets & Timeframes
Works best on:
•XAUUSD
•Major FX pairs
•Indices
•Liquid crypto markets
Recommended timeframes:
•1m
•5m
•15m
•30m
🔹7. Limitations & Notes
•This is an analytical framework , not a trading system
•All markings are confirmed at candle close (non-repainting)
•No open interest or order flow data is used
•Results depend on user interpretation and execution
•Best used alongside session bias and higher-timeframe structure
Disclaimer
This script is provided for educational and informational purposes only.
It does not constitute financial advice, investment advice, or a recommendation to buy or sell any instrument.
Trading involves risk, and losses can exceed initial deposits.
The author assumes no responsibility for trading decisions made using this tool.
Users are strongly encouraged to test this script in demo or simulation environments and to apply proper risk management, position sizing, and personal discretion at all times.
By using this script, you acknowledge and accept all associated risks.
Indicadores e estratégias
INAZUMA Bollinger BandsThis is an indicator based on the widely used Bollinger Bands, enhanced with a unique feature that visually emphasizes the "strength of the breakout" when the price penetrates the bands.
Main Features and Characteristics
1. Standard Bollinger Bands Display
Center Line (Basis): Simple Moving Average (\text{SMA(20)}).
1 sigma Lines: Light green (+) and red (-) lines for reference.
2 sigma Lines (Upper/Lower Band): The main dark green (+) and red (-) bands.
2. Emphasized Breakout Zones: "INAZUMA / Flare" and "MAGMA"
The key feature is the activation of colored, expanding areas when the candlestick's High or Low breaks significantly outside the \pm 2\sigma bands.
Upper Side (Green Base / Flare):
When the High exceeds the +2\sigma line, a green gradient area expands upwards.
Indication: This visually suggests strong buying pressure or overbought conditions. The color deepens as the price moves further away, indicating higher momentum.
Lower Side (Red Base / Magma):
When the Low falls below the -2 sigma line, a red gradient area expands downwards.
Indication: This visually suggests strong selling pressure or oversold conditions. The color deepens as the price moves further away, indicating higher momentum.
Key Insight: This visual aid helps traders quickly assess the momentum and market excitement when the price moves outside the standard Bollinger Bands range. Use it as a reference for judging trend strength and potential entry/exit points.
Customizable Settings
You can adjust the following parameters in the indicator settings:
Length: The period used for calculating the Moving Average and Standard Deviation. (Default: 20)
StdDev (Standard Deviation): The multiplier for the band width (e.g., 2.0 for -2 sigma). (Default: 2.0)
Source: The price data used for calculation (Default: close).
Razzere Cloned! EzAlgo V.8.1showBuySell = input(true, "Show Buy & Sell", group="BUY & SELL SIGNALS")
hassasiyet = input.float(3, "Hassasiyet (1-6)", 0.1, 99999, group="BUY & SELL SIGNALS")
percentStop = input.float(1, "Stop Loss % (0 to Disable)", 0, group="BUY & SELL SIGNALS")
offsetSignal = input.float(5, "Signals Offset", 0, group="BUY & SELL SIGNALS")
showRibbon = input(true, "Show Trend Ribbon", group="TREND RIBBON")
smooth1 = input.int(5, "Smoothing 1", 1, group="TREND RIBBON")
smooth2 = input.int(8, "Smoothing 2", 1, group="TREND RIBBON")
showreversal = input(true, "Show Reversals", group="REVERSAL SIGNALS")
showPdHlc = input(false, "Show P.D H/L/C", group="PREVIOUS DAY HIGH LOW CLOSE")
lineColor = input.color(color.yellow, "Line Colors", group="PREVIOUS DAY HIGH LOW CLOSE")
lineWidth = input.int(1, "Width Lines", group="PREVIOUS DAY HIGH LOW CLOSE")
lineStyle = input.string("Solid", "Line Style", )
labelSize = input.string("normal", "Label Text Size", )
labelColor = input.color(color.yellow, "Label Text Colors")
showEmas = input(false, "Show EMAs", group="EMA")
srcEma1 = input(close, "Source EMA 1")
lenEma1 = input.int(7, "Length EMA 1", 1)
srcEma2 = input(close, "Source EMA 2")
lenEma2 = input.int(21, "Length EMA 2", 1)
srcEma3 = input(close, "Source EMA 3")
lenEma3 = input.int(144, "Length EMA 3", 1)
showSwing = input(false, "Show Swing Points", group="SWING POINTS")
prdSwing = input.int(10, "Swing Point Period", 2, group="SWING POINTS")
colorPos = input(color.new(color.green, 50), "Positive Swing Color")
colorNeg = input(color.new(color.red, 50), "Negative Swing Color")
showDashboard = input(true, "Show Dashboard", group="TREND DASHBOARD")
locationDashboard = input.string("Middle Right", "Table Location", , group="TREND DASHBOARD")
tableTextColor = input(color.white, "Table Text Color", group="TREND DASHBOARD")
tableBgColor = input(#2A2A2A, "Table Background Color", group="TREND DASHBOARD")
sizeDashboard = input.string("Normal", "Table Size", , group="TREND DASHBOARD")
showRevBands = input.bool(true, "Show Reversal Bands", group="REVERSAL BANDS")
lenRevBands = input.int(30, "Length", group="REVERSAL BANDS")
// Fonksiyonlar
smoothrng(x, t, m) =>
wper = t * 2 - 1
avrng = ta.ema(math.abs(x - x ), t)
smoothrng = ta.ema(avrng, wper) * m
rngfilt(x, r) =>
rngfilt = x
rngfilt := x > nz(rngfilt ) ? x - r < nz(rngfilt ) ? nz(rngfilt ) : x - r : x + r > nz(rngfilt ) ? nz(rngfilt ) : x + r
percWidth(len, perc) => (ta.highest(len) - ta.lowest(len)) * perc / 100
securityNoRep(sym, res, src) => request.security(sym, res, src, barmerge.gaps_off, barmerge.lookahead_on)
swingPoints(prd) =>
pivHi = ta.pivothigh(prd, prd)
pivLo = ta.pivotlow (prd, prd)
last_pivHi = ta.valuewhen(pivHi, pivHi, 1)
last_pivLo = ta.valuewhen(pivLo, pivLo, 1)
hh = pivHi and pivHi > last_pivHi ? pivHi : na
lh = pivHi and pivHi < last_pivHi ? pivHi : na
hl = pivLo and pivLo > last_pivLo ? pivLo : na
ll = pivLo and pivLo < last_pivLo ? pivLo : na
f_chartTfInMinutes() =>
float _resInMinutes = timeframe.multiplier * (
timeframe.isseconds ? 1 :
timeframe.isminutes ? 1. :
timeframe.isdaily ? 60. * 24 :
timeframe.isweekly ? 60. * 24 * 7 :
timeframe.ismonthly ? 60. * 24 * 30.4375 : na)
f_kc(src, len, hassasiyet) =>
basis = ta.sma(src, len)
span = ta.atr(len)
wavetrend(src, chlLen, avgLen) =>
esa = ta.ema(src, chlLen)
d = ta.ema(math.abs(src - esa), chlLen)
ci = (src - esa) / (0.015 * d)
wt1 = ta.ema(ci, avgLen)
wt2 = ta.sma(wt1, 3)
f_top_fractal(src) => src < src and src < src and src > src and src > src
f_bot_fractal(src) => src > src and src > src and src < src and src < src
f_fractalize (src) => f_top_fractal(src) ? 1 : f_bot_fractal(src) ? -1 : 0
f_findDivs(src, topLimit, botLimit) =>
fractalTop = f_fractalize(src) > 0 and src >= topLimit ? src : na
fractalBot = f_fractalize(src) < 0 and src <= botLimit ? src : na
highPrev = ta.valuewhen(fractalTop, src , 0)
highPrice = ta.valuewhen(fractalTop, high , 0)
lowPrev = ta.valuewhen(fractalBot, src , 0)
lowPrice = ta.valuewhen(fractalBot, low , 0)
bearSignal = fractalTop and high > highPrice and src < highPrev
bullSignal = fractalBot and low < lowPrice and src > lowPrev
// Bileşen...
source = close
smrng1 = smoothrng(source, 27, 1.5)
smrng2 = smoothrng(source, 55, hassasiyet)
smrng = (smrng1 + smrng2) / 2
filt = rngfilt(source, smrng)
up = 0.0, up := filt > filt ? nz(up ) + 1 : filt < filt ? 0 : nz(up )
dn = 0.0, dn := filt < filt ? nz(dn ) + 1 : filt > filt ? 0 : nz(dn )
bullCond = bool(na), bullCond := source > filt and source > source and up > 0 or source > filt and source < source and up > 0
bearCond = bool(na), bearCond := source < filt and source < source and dn > 0 or source < filt and source > source and dn > 0
lastCond = 0, lastCond := bullCond ? 1 : bearCond ? -1 : lastCond
bull = bullCond and lastCond == -1
bear = bearCond and lastCond == 1
countBull = ta.barssince(bull)
countBear = ta.barssince(bear)
trigger = nz(countBull, bar_index) < nz(countBear, bar_index) ? 1 : 0
ribbon1 = ta.sma(close, smooth1)
ribbon2 = ta.sma(close, smooth2)
rsi = ta.rsi(close, 21)
rsiOb = rsi > 70 and rsi > ta.ema(rsi, 10)
rsiOs = rsi < 30 and rsi < ta.ema(rsi, 10)
dHigh = securityNoRep(syminfo.tickerid, "D", high )
dLow = securityNoRep(syminfo.tickerid, "D", low )
dClose = securityNoRep(syminfo.tickerid, "D", close )
ema1 = ta.ema(srcEma1, lenEma1)
ema2 = ta.ema(srcEma2, lenEma2)
ema3 = ta.ema(srcEma3, lenEma3)
= swingPoints(prdSwing)
ema = ta.ema(close, 144)
emaBull = close > ema
equal_tf(res) => str.tonumber(res) == f_chartTfInMinutes() and not timeframe.isseconds
higher_tf(res) => str.tonumber(res) > f_chartTfInMinutes() or timeframe.isseconds
too_small_tf(res) => (timeframe.isweekly and res=="1") or (timeframe.ismonthly and str.tonumber(res) < 10)
securityNoRep1(sym, res, src) =>
bool bull_ = na
bull_ := equal_tf(res) ? src : bull_
bull_ := higher_tf(res) ? request.security(sym, res, src, barmerge.gaps_off, barmerge.lookahead_on) : bull_
bull_array = request.security_lower_tf(syminfo.tickerid, higher_tf(res) ? str.tostring(f_chartTfInMinutes()) + (timeframe.isseconds ? "S" : "") : too_small_tf(res) ? (timeframe.isweekly ? "3" : "10") : res, src)
if array.size(bull_array) > 1 and not equal_tf(res) and not higher_tf(res)
bull_ := array.pop(bull_array)
array.clear(bull_array)
bull_
TF1Bull = securityNoRep1(syminfo.tickerid, "1" , emaBull)
TF3Bull = securityNoRep1(syminfo.tickerid, "3" , emaBull)
TF5Bull = securityNoRep1(syminfo.tickerid, "5" , emaBull)
TF15Bull = securityNoRep1(syminfo.tickerid, "15" , emaBull)
TF30Bull = securityNoRep1(syminfo.tickerid, "30" , emaBull)
TF60Bull = securityNoRep1(syminfo.tickerid, "60" , emaBull)
TF120Bull = securityNoRep1(syminfo.tickerid, "120" , emaBull)
TF240Bull = securityNoRep1(syminfo.tickerid, "240" , emaBull)
TF480Bull = securityNoRep1(syminfo.tickerid, "480" , emaBull)
TFDBull = securityNoRep1(syminfo.tickerid, "1440", emaBull)
= f_kc(close, lenRevBands, 3)
= f_kc(close, lenRevBands, 4)
= f_kc(close, lenRevBands, 5)
= f_kc(close, lenRevBands, 6)
= wavetrend(hlc3, 9, 12)
= f_findDivs(wt2, 15, -40)
= f_findDivs(wt2, 45, -65)
wtDivBull = wtDivBull1 or wtDivBull2
wtDivBear = wtDivBear1 or wtDivBear2
// Renkler
cyan = #00DBFF, cyan30 = color.new(cyan, 70)
pink = #E91E63, pink30 = color.new(pink, 70)
red = #FF5252, red30 = color.new(red , 70)
// Plotlar
off = percWidth(300, offsetSignal)
plotshape(showBuySell and bull ? low - off : na, "Buy Label" , shape.labelup , location.absolute, cyan, 0, "Buy" , color.white, size=size.normal)
plotshape(showBuySell and bear ? high + off : na, "Sell Label", shape.labeldown, location.absolute, pink, 0, "Sell", color.white, size=size.normal)
plotshape(ta.crossover(wt1, wt2) and wt2 <= -53, "Mild Buy" , shape.xcross, location.belowbar, cyan, size=size.tiny)
plotshape(ta.crossunder(wt1, wt2) and wt2 >= 53, "Mild Sell", shape.xcross, location.abovebar, pink, size=size.tiny)
plotshape(wtDivBull, "Divergence Buy ", shape.triangleup , location.belowbar, cyan, size=size.tiny)
plotshape(wtDivBear, "Divergence Sell", shape.triangledown, location.abovebar, pink, size=size.tiny)
barcolor(up > dn ? cyan : pink)
plotshape(showreversal and rsiOs, "Reversal Buy" , shape.diamond, location.belowbar, cyan30, size=size.tiny)
plotshape(showreversal and rsiOb, "Reversal Sell", shape.diamond, location.abovebar, pink30, size=size.tiny)
lStyle = lineStyle == "Solid" ? line.style_solid : lineStyle == "Dotted" ? line.style_dotted : line.style_dashed
lSize = labelSize == "small" ? size.small : labelSize == "normal" ? size.normal : size.large
dHighLine = showPdHlc ? line.new(bar_index, dHigh, bar_index + 1, dHigh , xloc.bar_index, extend.both, lineColor, lStyle, lineWidth) : na, line.delete(dHighLine )
dLowLine = showPdHlc ? line.new(bar_index, dLow , bar_index + 1, dLow , xloc.bar_index, extend.both, lineColor, lStyle, lineWidth) : na, line.delete(dLowLine )
dCloseLine = showPdHlc ? line.new(bar_index, dClose, bar_index + 1, dClose, xloc.bar_index, extend.both, lineColor, lStyle, lineWidth) : na, line.delete(dCloseLine )
dHighLabel = showPdHlc ? label.new(bar_index + 100, dHigh , "P.D.H", xloc.bar_index, yloc.price, #000000, label.style_none, labelColor, lSize) : na, label.delete(dHighLabel )
dLowLabel = showPdHlc ? label.new(bar_index + 100, dLow , "P.D.L", xloc.bar_index, yloc.price, #000000, label.style_none, labelColor, lSize) : na, label.delete(dLowLabel )
dCloseLabel = showPdHlc ? label.new(bar_index + 100, dClose, "P.D.C", xloc.bar_index, yloc.price, #000000, label.style_none, labelColor, lSize) : na, label.delete(dCloseLabel )
plot(showEmas ? ema1 : na, "EMA 1", color.green , 2)
plot(showEmas ? ema2 : na, "EMA 2", color.purple, 2)
plot(showEmas ? ema3 : na, "EMA 3", color.yellow, 2)
plotshape(showSwing ? hh : na, "", shape.triangledown, location.abovebar, color.new(color.green, 50), -prdSwing, "HH", colorPos, false)
plotshape(showSwing ? hl : na, "", shape.triangleup , location.belowbar, color.new(color.green, 50), -prdSwing, "HL", colorPos, false)
plotshape(showSwing ? lh : na, "", shape.triangledown, location.abovebar, color.new(color.red , 50), -prdSwing, "LH", colorNeg, false)
plotshape(showSwing ? ll : na, "", shape.triangleup , location.belowbar, color.new(color.red , 50), -prdSwing, "LL", colorNeg, false)
srcStop = close
atrBand = srcStop * (percentStop / 100)
atrStop = trigger ? srcStop - atrBand : srcStop + atrBand
lastTrade(src) => ta.valuewhen(bull or bear, src, 0)
entry_y = lastTrade(srcStop)
stop_y = lastTrade(atrStop)
tp1_y = (entry_y - lastTrade(atrStop)) * 1 + entry_y
tp2_y = (entry_y - lastTrade(atrStop)) * 2 + entry_y
tp3_y = (entry_y - lastTrade(atrStop)) * 3 + entry_y
labelTpSl(y, txt, color) =>
label labelTpSl = percentStop != 0 ? label.new(bar_index + 1, y, txt, xloc.bar_index, yloc.price, color, label.style_label_left, color.white, size.normal) : na
label.delete(labelTpSl )
labelTpSl(entry_y, "Entry: " + str.tostring(math.round_to_mintick(entry_y)), color.gray)
labelTpSl(stop_y , "Stop Loss: " + str.tostring(math.round_to_mintick(stop_y)), color.red)
labelTpSl(tp1_y, "Take Profit 1: " + str.tostring(math.round_to_mintick(tp1_y)), color.green)
labelTpSl(tp2_y, "Take Profit 2: " + str.tostring(math.round_to_mintick(tp2_y)), color.green)
labelTpSl(tp3_y, "Take Profit 3: " + str.tostring(math.round_to_mintick(tp3_y)), color.green)
lineTpSl(y, color) =>
line lineTpSl = percentStop != 0 ? line.new(bar_index - (trigger ? countBull : countBear) + 4, y, bar_index + 1, y, xloc.bar_index, extend.none, color, line.style_solid) : na
line.delete(lineTpSl )
lineTpSl(entry_y, color.gray)
lineTpSl(stop_y, color.red)
lineTpSl(tp1_y, color.green)
lineTpSl(tp2_y, color.green)
lineTpSl(tp3_y, color.green)
var dashboard_loc = locationDashboard == "Top Right" ? position.top_right : locationDashboard == "Middle Right" ? position.middle_right : locationDashboard == "Bottom Right" ? position.bottom_right : locationDashboard == "Top Center" ? position.top_center : locationDashboard == "Middle Center" ? position.middle_center : locationDashboard == "Bottom Center" ? position.bottom_center : locationDashboard == "Top Left" ? position.top_left : locationDashboard == "Middle Left" ? position.middle_left : position.bottom_left
var dashboard_size = sizeDashboard == "Large" ? size.large : sizeDashboard == "Normal" ? size.normal : sizeDashboard == "Small" ? size.small : size.tiny
var dashboard = showDashboard ? table.new(dashboard_loc, 2, 15, tableBgColor, #000000, 2, tableBgColor, 1) : na
dashboard_cell(column, row, txt, signal=false) => table.cell(dashboard, column, row, txt, 0, 0, signal ? #000000 : tableTextColor, text_size=dashboard_size)
dashboard_cell_bg(column, row, col) => table.cell_set_bgcolor(dashboard, column, row, col)
if barstate.islast and showDashboard
dashboard_cell(0, 0 , "EzAlgo")
dashboard_cell(0, 1 , "Current Position")
dashboard_cell(0, 2 , "Current Trend")
dashboard_cell(0, 3 , "Volume")
dashboard_cell(0, 4 , "Timeframe")
dashboard_cell(0, 5 , "1 min:")
dashboard_cell(0, 6 , "3 min:")
dashboard_cell(0, 7 , "5 min:")
dashboard_cell(0, 8 , "15 min:")
dashboard_cell(0, 9 , "30 min:")
dashboard_cell(0, 10, "1 H:")
dashboard_cell(0, 11, "2 H:")
dashboard_cell(0, 12, "4 H:")
dashboard_cell(0, 13, "8 H:")
dashboard_cell(0, 14, "Daily:")
dashboard_cell(1, 0 , "V.8.1")
dashboard_cell(1, 1 , trigger ? "Buy" : "Sell", true), dashboard_cell_bg(1, 1, trigger ? color.green : color.red)
dashboard_cell(1, 2 , emaBull ? "Bullish" : "Bearish", true), dashboard_cell_bg(1, 2, emaBull ? color.green : color.red)
dashboard_cell(1, 3 , str.tostring(volume))
dashboard_cell(1, 4 , "Trends")
dashboard_cell(1, 5 , TF1Bull ? "Bullish" : "Bearish", true), dashboard_cell_bg(1, 5 , TF1Bull ? color.green : color.red)
dashboard_cell(1, 6 , TF3Bull ? "Bullish" : "Bearish", true), dashboard_cell_bg(1, 6 , TF3Bull ? color.green : color.red)
dashboard_cell(1, 7 , TF5Bull ? "Bullish" : "Bearish", true), dashboard_cell_bg(1, 7 , TF5Bull ? color.green : color.red)
dashboard_cell(1, 8 , TF15Bull ? "Bullish" : "Bearish", true), dashboard_cell_bg(1, 8 , TF15Bull ? color.green : color.red)
dashboard_cell(1, 9 , TF30Bull ? "Bullish" : "Bearish", true), dashboard_cell_bg(1, 9 , TF30Bull ? color.green : color.red)
dashboard_cell(1, 10, TF60Bull ? "Bullish" : "Bearish", true), dashboard_cell_bg(1, 10, TF60Bull ? color.green : color.red)
dashboard_cell(1, 11, TF120Bull ? "Bullish" : "Bearish", true), dashboard_cell_bg(1, 11, TF120Bull ? color.green : color.red)
dashboard_cell(1, 12, TF240Bull ? "Bullish" : "Bearish", true), dashboard_cell_bg(1, 12, TF240Bull ? color.green : color.red)
dashboard_cell(1, 13, TF480Bull ? "Bullish" : "Bearish", true), dashboard_cell_bg(1, 13, TF480Bull ? color.green : color.red)
dashboard_cell(1, 14, TFDBull ? "Bullish" : "Bearish", true), dashboard_cell_bg(1, 14, TFDBull ? color.green : color.red)
plot(showRevBands ? upperKC1 : na, "Rev.Zone Upper 1", red30)
plot(showRevBands ? upperKC2 : na, "Rev.Zone Upper 2", red30)
plot(showRevBands ? upperKC3 : na, "Rev.Zone Upper 3", red30)
plot(showRevBands ? upperKC4 : na, "Rev.Zone Upper 4", red30)
plot(showRevBands ? lowerKC4 : na, "Rev.Zone Lower 4", cyan30)
plot(showRevBands ? lowerKC3 : na, "Rev.Zone Lower 3", cyan30)
plot(showRevBands ? lowerKC2 : na, "Rev.Zone Lower 2", cyan30)
plot(showRevBands ? lowerKC1 : na, "Rev.Zone Lower 1", cyan30)
fill(plot(showRibbon ? ribbon1 : na, "", na, editable=false), plot(showRibbon ? ribbon2 : na, "", na, editable=false), ribbon1 > ribbon2 ? cyan30 : pink30, "Ribbon Fill Color")
// Alarmlar
alert01 = ta.crossover(ribbon1, ribbon2)
alert02 = bull
alert03 = wtDivBull
alert04 = wtDivBear
alert05 = bull or bear
alert06 = ta.crossover(wt1, wt2) and wt2 <= -53
alert07 = ta.crossunder(wt1, wt2) and wt2 >= 53
alert08 = ta.crossunder(ribbon1, ribbon2)
alert09 = rsiOb or rsiOs
alert10 = bear
alert11 = ta.cross(ribbon1, ribbon2)
alerts(sym) =>
if alert02 or alert03 or alert04 or alert06 or alert07 or alert10
alert_text = alert02 ? "Buy Signal EzAlgo" : alert03 ? "Strong Buy Signal EzAlgo" : alert04 ? "Strong Sell Signal EzAlgo" : alert06 ? "Mild Buy Signal EzAlgo" : alert07 ? "Mild Sell Signal EzAlgo" : "Sell Signal EzAlgo"
alert(alert_text, alert.freq_once_per_bar_close)
alerts(syminfo.tickerid)
alertcondition(alert01, "Blue Trend Ribbon Alert", "Blue Trend Ribbon, TimeFrame={{interval}}")
alertcondition(alert02, "Buy Signal", "Buy Signal EzAlgo")
alertcondition(alert03, "Divergence Buy Alert", "Strong Buy Signal EzAlgo, TimeFrame={{interval}}")
alertcondition(alert04, "Divergence Sell Alert", "Strong Sell Signal EzAlgo, TimeFrame={{interval}}")
alertcondition(alert05, "Either Buy or Sell Signal", "EzAlgo Signal")
alertcondition(alert06, "Mild Buy Alert", "Mild Buy Signal EzAlgo, TimeFrame={{interval}}")
alertcondition(alert07, "Mild Sell Alert", "Mild Sell Signal EzAlgo, TimeFrame={{interval}}")
alertcondition(alert08, "Red Trend Ribbon Alert", "Red Trend Ribbon, TimeFrame={{interval}}")
alertcondition(alert09, "Reversal Signal", "Reversal Signal")
alertcondition(alert10, "Sell Signal", "Sell Signal EzAlgo")
alertcondition(alert11, "Trend Ribbon Color Change Alert", "Trend Ribbon Color Change, TimeFrame={{interval}}")
Parabolic SAR (PSAR) - Basit//@version=5
indicator("Parabolic SAR (PSAR) - Basit", overlay=true)
start = input.float(0.02, "Start (Step)", step=0.01)
increment = input.float(0.02, "Increment", step=0.01)
maximum = input.float(0.2, "Maximum", step=0.01)
showDots = input.bool(true, "Dotları Göster")
showLine = input.bool(false, "PSAR Çizgisi Göster")
bgTrend = input.bool(true, "Arka planı trende göre renklendir")
psar = ta.sar(start, increment, maxim
bull = close > psar
bear = close < psar
psarColor = bull ? color.green : color.
plot(showLine ? psar : na, title="PSAR Line", color=psarColor, linewi
plotshape(showDots and bull, title="PSAR Bull Dot", location=location.belowbar, style=shape.circle, size=size.tiny, color=color.green)
plotshape(showDots and bear, title="PSAR Bear Dot", location=location.abovebar, style=shape.circle, size=size.tiny, color=color.red)
bgcolor(bgTrend ? (bull ? color.new(color.green, 90) : color.new(color.red, 90)) : n
buySignal = ta.crossover(close, psar)
sellSignal = ta.crossunder(close, psa
plotshape(buySignal, title="AL Sinyali", location=location.belowbar, style=shape.triangleup, size=size.small, color=color.green)
plotshape(sellSignal, title="SAT Sinyali", location=location.abovebar, style=shape.triangledown, size=size.small, color=color.red)
alertcondition(buySignal, title="AL (PSAR flip)", message="PSAR flip: AL sinyali")
alertcondition(sellSignal, title="SAT (PSAR flip)", message="PSAR flip: SAT sinyali")
ICT Macro Tracker - Study Version (Original by toodegrees)This indicator is a modified study version of the ICT Algorithmic Macro Tracker by toodegrees, based on the original open-source script available at The original indicator plots ICT Macro windows on the chart, corresponding to specific time [ periods when the Interbank Price Delivery Algorithm undergoes checks/instructions (aka "macros") for the price engine to reprice to an area of liquidity or inefficiency.
This study version adds functionality to hide bars outside macro periods. When enabled, the indicator draws boxes that cover the full chart height during non-macro periods, obscuring those bars so only macro periods are visible. This helps focus on macro-only price action. The feature is configurable, allowing users to enable or disable it and customize the box color. All original functionality remains intact.
Ultimate Squeeze & BreakoutTitle: Ultimate Squeeze & Breakout
Description: This indicator is a volatility analysis tool designed to identify periods of market compression ("The Squeeze") and validate subsequent breakouts using momentum logic. It builds upon the classic relation between Bollinger Bands and Keltner Channels but adds a directional filter to reduce false signals.
The Problem It Solves: Standard squeeze indicators often signal a breakout the moment price exits the bands, even if the underlying trend is weak or flat. This can lead to entering "wicks" or fakeouts. This script solves this by requiring the Basis Line Slope to align with the breakout direction before generating a signal.
How It Works:
1. Compression (The Setup) The script monitors the relationship between Bollinger Bands (Standard Deviation) and Keltner Channels (ATR).
Red Cloud: When the Bollinger Bands contract completely inside the Keltner Channels, it indicates a critical drop in volatility. The market is coiling and storing energy.
2. The Momentum Filter (The Validation) Unlike basic squeeze indicators, a breakout is not signaled solely by price closing outside the bands.
Logic: The script calculates the slope of the 20-period Basis Line (Simple Moving Average).
Bullish Validation: Price > Upper Band AND Basis Line is sloping UP.
Bearish Validation: Price < Lower Band AND Basis Line is sloping DOWN.
Visual Guide:
🟥 Red Cloud: Squeeze ON. Volatility is compressed. Do not trade; wait for expansion.
🟣 Fuchsia Cloud: Bullish Breakout (Price released upward + Positive Momentum).
🔵 Blue Cloud: Bearish Breakout (Price released downward + Negative Momentum).
⬜ Gray/Green Cloud: Standard Trending phase (Volatility is normal).
Features:
Precision Inputs: Multipliers for Standard Deviation and ATR can be adjusted in 0.01 increments for fine-tuning sensitivity.
Visual Toggles: Option to color the neutral trending cloud Green or Gray based on preference.
Alerts: Built-in alerts for "Squeeze Started" and validated "Bullish/Bearish Breakouts."
Credits: Core mechanics based on the TTM Squeeze concept popularized by John Carter. Momentum filtering logic added for enhanced signal reliability.
POI Zones with Imbalance- Ahmed AwadHighlights Point of Interest (POI) zones on the chart where a significant price imbalance occurs between the candle’s open and close. The indicator draws semi-transparent orange zones to mark potential buy or sell areas, helping traders spot strong price moves and key levels. Adjustable imbalance threshold and transparency for flexibility.
Scout Regiment - Signal📊 中文版
指标简介
Buy/Sell Signal 多维度交易信号指标
这是一个结合了EMA趋势过滤、CCI动量指标和RSI背景环境的多维度交易信号系统。通过三重过滤机制,帮助交易者在合适的市场环境中捕捉高质量的买卖信号。
核心特点
✅ 趋势过滤:使用233周期EMA确保顺势交易
✅ 动量确认:CCI(33)穿越信号作为入场触发
✅ 背景过滤:RSI(13)环境判断,避免同一背景重复信号
✅ 智能去重:每个RSI背景周期内只标记首次信号
✅ 清晰标识:三角形标记配合颜色区分买卖方向
使用说明
信号逻辑:
做多信号 (Buy):
收盘价 > EMA233(确认上升趋势)
CCI33向上穿越20(动量转强)
情况1:在RSI红色背景中首次出现
情况2:在RSI绿色背景中出现
做空信号 (Sell):
收盘价 < EMA233(确认下降趋势)
CCI33向下穿越80(动量转弱)
情况1:在RSI绿色背景中首次出现
情况2:在RSI红色背景中出现
参数设置
EMA过滤长度:默认233,用于判断主趋势方向
CCI长度:默认33,控制动量指标灵敏度
RSI长度:默认13,用于背景环境判断
重要提示
⚠️ 信号出现后不要立即下单!请务必检查:
CCI中期是否出现"浪子回头"形态
OBV成交量状态是否配合
RSI是否成功穿越50中线
结合其他技术分析工具综合判断
💡 建议配合使用:
支撑阻力位分析
成交量指标(如OBV)
更大周期的趋势确认
📈 English Version
Indicator Overview
Buy/Sell Signal - Multi-Dimensional Trading Signal System
This is a comprehensive trading signal system that combines EMA trend filtering, CCI momentum indicator, and RSI background environment. Through a triple-layer filtering mechanism, it helps traders capture high-quality buy and sell signals in appropriate market conditions.
Key Features
✅ Trend Filter: 233-period EMA ensures trend-following trades
✅ Momentum Confirmation: CCI(33) crossover signals as entry triggers
✅ Background Filter: RSI(13) environment detection to avoid duplicate signals
✅ Smart Deduplication: Only first signal per RSI background cycle
✅ Clear Visualization: Triangle markers with color-coded direction
How to Use
Signal Logic:
Buy Signal:
Close > EMA233 (confirms uptrend)
CCI33 crosses above 20 (momentum strengthens)
Case 1: First occurrence in RSI red background
Case 2: Occurs in RSI green background
Sell Signal:
Close < EMA233 (confirms downtrend)
CCI33 crosses below 80 (momentum weakens)
Case 1: First occurrence in RSI green background
Case 2: Occurs in RSI red background
Parameter Settings
EMA Filter Length: Default 233, for main trend direction
CCI Length: Default 33, controls momentum sensitivity
RSI Length: Default 13, for background environment detection
Important Notes
⚠️ DO NOT enter trades immediately after signal appears! Always check:
Whether CCI shows a "reversal" pattern in medium-term
OBV volume status confirmation
Whether RSI successfully crosses the 50 midline
Combine with other technical analysis tools
💡 Recommended to Use With:
Support/Resistance analysis
Volume indicators (such as OBV)
Higher timeframe trend confirmation
Risk Disclaimer
This indicator is for reference only and does not constitute investment advice. Trading involves risk. Please conduct thorough analysis and use proper risk management before making any trading decisions.
适合交易者类型 / Suitable For:
波段交易者 / Swing Traders
日内交易者 / Day Traders
趋势跟踪者 / Trend Followers
适用市场 / Applicable Markets:
股票 / Stocks
外汇 / Forex
加密货币 / Crypto
期货 / Futures
FxAST Trend Force [ALLDYN]Attribution
This indicator is based on the original Trend Speed Analyzer created by Zeiierman .
FxAST Trend Force is a modified and simplified derivative that preserves the core methodology while focusing on clarity, usability, and practical trend interpretation .
This indicator is intended for educational and analytical use. Derivative works must retain attribution and license terms.
__________________________________________________________________________________
FxAST Trend Force
Overview
FxAST Trend Force is a directional pressure indicator designed to show who is in control of the market and how strong that control is, in real time.
Instead of measuring raw price speed or traditional momentum, this tool focuses on trend force — the sustained push of price relative to a dynamic trend baseline. The result is a clean, intuitive view of trend direction, strength, and condition without complex math or hard-to-interpret ratios.
This indicator is best used as a trend confirmation and trade management tool , not a standalone signal generator.
_________________________________________________________________________________
How It Works
FxAST Trend Force uses a Dynamic Moving Average (DMA) that adapts to changing market conditions. Price behavior relative to this adaptive trend line determines the current trend regime.
While price remains on one side of the trend:
Directional pressure accumulates
Strength builds or weakens
The regime resets only when price decisively crosses the trend
This creates a clear visual representation of trend persistence vs exhaustion , rather than short-term noise.
__________________________________________________________________________________
Core Concepts (Plain English)
Trend
Shows the current directional bias:
Bull → price above the dynamic trend
Bear → price below the dynamic trend
This answers: “Which side is currently in control?”
__________________________________________________________________________________
Strength
Displays how strong the current trend pressure is on a 0–100 scale , normalized to recent market conditions.
Strength is shown both as:
A simple label: Weak / Normal / Strong
A visual meter for quick interpretation
This answers: “Is this move weak, average, or meaningful?”
__________________________________________________________________________________
State
Indicates whether trend force is:
Building → pressure increasing
Fading → pressure weakening
This answers: “Is the trend gaining energy or losing it?”
__________________________________________________________________________________
Visual Meter
A compact bar at the bottom of the table represents trend force intensity at a glance.
Longer bar → stronger sustained pressure
Shorter bar → weaker or stalling trend
No ratios. No multipliers. Just visual clarity.
__________________________________________________________________________________
How to Use
Trend Confirmation
Favor longs when Trend = Bull and Strength = Normal/Strong
Favor shorts when Trend = Bear and Strength = Normal/Strong
__________________________________________________________________________________
Trade Management
Building state supports continuation
Fading state warns of exhaustion, consolidation, or potential reversal
__________________________________________________________________________________
Filtering Noise
Weak strength often signals chop or low-quality conditions
Strong force helps filter false breakouts
__________________________________________________________________________________
Settings (Simplified)
Maximum Length
Controls how smooth or responsive the dynamic trend is.
Accelerator Multiplier
Adjusts how quickly the trend adapts to price changes.
Lookback Period
Defines the window used to normalize trend force.
Enable Candles
Colors price candles by trend force for visual clarity.
Show Simple Table
Toggles the Trend / Strength / State display.
__________________________________________________________________________________
Philosophy
FxAST Trend Force is intentionally not a signal-spamming indicator.
It is designed to reduce cognitive load , not increase it.
If you need:
exact entries → use price action
exact exits → use structure
context and confirmation → use Trend Force
__________________________________________________________________________________
Disclaimer
This indicator is provided for educational purposes only and does not constitute financial advice. Trading involves risk, and users are responsible for their own decisions.
RSI Divergence bsTzdThis indicator automatically detects bullish and bearish RSI divergences by comparing swing highs and lows in price against momentum shifts on the Relative Strength Index. It identifies both regular divergences, which signal potential trend reversals, and hidden divergences, which often confirm trend continuation.
All divergences are plotted directly on the chart using clean, non-repainting swing-point logic so signals only appear after pivots are confirmed.
The goal of the tool is to help traders quickly spot early momentum shifts that are otherwise difficult to see in real-time—especially during fast intraday moves. By combining price structure with RSI behavior, the indicator offers high-quality signals designed to improve entry timing, stop placement, and overall trend analysis.
Key Features
Automatic bullish & bearish regular divergences
Automatic bullish & bearish hidden divergences
Uses confirmed swing pivots to avoid repainting
Works on all assets and all timeframes
Clean visual markers for fast decision-making
Helps identify momentum exhaustion, trend continuation, and potential reversals
Useful for scalping, day trading, and swing trading setups
Previous CandleThis indicator tracks the direction of the previous closed candle across multiple timeframes and displays it in a bottom-right dashboard table on your chart.
It is useful for top-down analysis, helping traders quickly see short-term and higher-timeframe candle momentum
SMC IndicatorTitle: Smart Money Concepts Market Structure
Description: This is a technical analysis tool designed to map Market Structure using Smart Money Concepts (SMC) logic. Unlike standard ZigZag indicators that often clutter the chart with repainting lines, this script focuses on delivering a clean, objective view of Trend Structure (Highs/Lows) and Structural Breaks.
The Problem It Solves: Traders often struggle to identify the valid "Swing High" or "Swing Low" in real-time. This indicator automates that process using a non-repainting detection engine, helping traders objectively spot Trend Continuations (BoS) and Potential Reversals (CHoCH).
How It Works:
1. Pivot Detection (The ZigZag Engine): The script identifies Swing Points based on a user-defined Depth and Deviation %.
High (H): A peak is confirmed when price retraces by the deviation percentage.
Low (L): A trough is confirmed when price rallies by the deviation percentage.
Ghost Line: A dotted line connects the last confirmed pivot to the current live price, allowing you to visualize the developing structure before it locks in.
2. Structure Mapping: Once pivots are confirmed, the script analyzes price action relative to those points:
BoS (Break of Structure): Trend Continuation. Triggered when price breaks a confirmed pivot in the direction of the trend (e.g., breaking a Higher High in an uptrend).
CHoCH (Change of Character): Trend Reversal. Triggered when price breaks a major pivot in the opposite direction (e.g., breaking a Higher Low in an uptrend).
Visual Features:
Minimalist Design: Uses floating text labels (no background boxes) to keep price action visible.
Color Coded: Blue/Maroon for Continuation (BoS), Aqua/Orange for Reversal (CHoCH).
Settings Guide:
ZigZag Deviation %: Set this to 5.0 for Higher Timeframes (Daily/4H) or lower it to 0.2 - 0.5 for Intraday Scalping (1m/5m).
Ghost Line: Toggle on/off to see the real-time projection.
Alerts: Full alert support included for Bullish/Bearish BoS and CHoCH signals.
Credits: Logic based on standard Price Action and Market Structure theory.
NeoChartLabs POCOne of our Favorite Indicators - the High Time Frame Point of Control with a Volume Profile.
Shout out to p2pasta for the original script, we updated to v6.
Currently included: Monthly, 3 months and 6 months.
/* DEFINITION */
Point Of Control (= POC) is a price level at which the heaviest volumes were traded.
Value Area High/Low (=VAH/VAL) is a range of prices where the majority of trading volume took place. Naturally, Value Area High being the top price level and Value Area Low being the lowest. POC always is between the two.
/* HOW TO TRADE WITH THIS INDICATOR */
The basis for POC is determining bias on whichever timeframe you choose.
1. Identify a POC on the timeframe of your choosing.
/* If you choose a "low" timeframe (monthly here) then make sure to look at the higher timeframes to see how it is playing against a higher timeframe POC.
2. When the price is moving away from the POC (either to the upside or downside) this will confirm or invalidate the trade.
3. You can now enter the trade on bias or wait for a retest of the same POC.
Support & Resistance Auto-Detector by Rakesh SharmaVersion 1.1 Update:
- Fixed: S/R lines now extend infinitely to the right
- Fixed: Lines move with chart when scrolling
- Added: Toggle to control line extension
- Improved: Better visibility across all timeframes
Vortex Imbalance DetectorVortex Imbalance Detector (VID)
Core Purpose:
To spot "fresh" institutional order flow entering the market, aiming to catch the early stage of a potential reversal driven by an imbalance between aggressive buyers and sellers.
It looks for moments when a surge in buying or selling pressure coincides with a sharp acceleration in price momentum at a market extreme.
The Vortex Imbalance Detector identifies high-probability reversal points by detecting simultaneous shifts in order flow (buy/sell pressure) and price momentum acceleration.
What It Does:
Order Flow Proxy: Creates a cumulative delta-like metric using price action (body vs. range) to estimate net buying or selling pressure.
Momentum Vortex: Calculates price acceleration (the rate of change of velocity) to gauge the force behind a move.
Imbalance Signal: Triggers when both conditions align:
Flow Flip: The order flow proxy crosses above/below zero with significant strength (exceeding a threshold).
Vortex Reversal: The momentum acceleration confirms the direction (positive for buys, negative for sells).
Price Extreme: The signal occurs at a recent low (for buys) or high (for sells).
Output:
Buy Signal (▲): A bullish order flow imbalance with upward momentum acceleration at a short-term low.
Sell Signal (▼): A bearish order flow imbalance with downward momentum acceleration at a short-term high.
Gold Sniper V21: M15 Holding MasterGold Sniper Entry (Follow Trend to enter)
My Indicator :
- Clarify the M30 in Up/Down Trend
- Only entry the trade in M1/M5 Timeframe to make a Sniper Entry.
- Indicator will show when to TP before the Trend Change
RSI-ACCURATE+ (RSI + MACD + MA)UPDATED V5 Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah
Impulse %Impulse % — Liquidation Cascade Detector (BTC · 1H)
Impulse % identifies sharp impulsive price moves and liquidation cascades by measuring how much a candle’s range deviates from its historical average in percent.
How it works
Calculates the candle range (in %) relative to price and compares it to the average over N periods.
When the range exceeds the upper band, an Impulse is detected.
Inside each 1H candle, the indicator checks lower timeframes (1m / 5m) to classify the impulse phases:
PANIC — the first minutes of a violent move (forced liquidations, stop hunts).
CAUTION (Cascade) — continuation and “cleanup” phase with elevated risk.
Determines whether the impulse is against the trend using EMA 50 / EMA 200 — the most dangerous scenario.
Highlights risk zones to protect positions and filter new entries.
What it’s for
Avoid entering during liquidation cascades.
Exit at break-even or partially take profit during risky phases.
Recommended Settings — BTC (1H)
Calculation
Calculation TF: (empty = current)
Average Mode: By N bars
N (bars): 100
Range Type: High–Low
Bands
Upper Band (% of average): 130
Lower Band: Auto (same %)
Cascade (First Minutes)
Enable Cascade Filter: ON
When to trigger safety: Only against trend
PANIC (minutes): 3
CAUTION (minutes after PANIC): 15
Trend (EMA)
Use EMA Trend: ON
Fast EMA: 50
Slow EMA: 200
Lower TF Detection
Lower TF: 1m (or 5m if you prefer smoother signals)
Visualization
Style: Columns
Show Bands: ON
Show Band Lines & Mean: ON
How to read it (BTC · 1H)
Purple (PANIC): first minutes of liquidation — do not enter.
Yellow (CAUTION): cascade phase — high risk, manage/exit.
Normal color: no active cascade — strategy allowed.
Best practice:
1m/5m → real-time cascade detection
1H → decision level
4H → market context
Stochastic RSI with CrossesThis is the same Indicator on tradingview I just added a trigger for crosses for clarity. It has alerts and now you can clearly see who the STOCH/ RSI crosses.
Golden hour 1130 1230 Session LinesGolden Hour 11:30–12:30 Session Lines
Overview :
Calculate the session high and low between 11:30 AM and 12:30 PM and mark the lines.
Trading Rule
Once the price breaks either side (high or low), it will continue to move further in that direction.
Session Time : 11:30 AM – 12:30 PM
Key Levels : Session High & Session Low
Strategy : Breakout continuation in the direction of the break
CODEX OB + BBMA V1CODEX OB + BBMA is a multi-purpose Smart Money Concepts (SMC) indicator that automatically detects and visualizes key institutional trading elements such as Order Blocks, Fair Value Gaps, Rejection Blocks, Break of Structure, Pivots, High Volume Bars, and several qualitative SMC signals.
In addition to SMC tools, this indicator also incorporates multi-timeframe BBMA logic, allowing traders to view higher-timeframe momentum, trend direction, and volatility envelopes directly from the current chart. This makes it easier to align SMC setups—like OB, FVG, and BOS—with BBMA structure such as MA touches, re-entry zones, extreme candles, and volatility expansions.
This combination helps traders identify institutional footprints, multi-timeframe confluence, and displacement-based setups with high clarity.
Daily contextThis indicator automatically marks the Previous Day’s High and Low, as well as the market’s midnight opening price.
These levels are updated at the start of each new trading day and remain visible throughout the entire session.
By providing key daily reference points, the indicator helps establish a clear market context and allows traders to immediately understand where price is positioned relative to the previous day’s range and the daily open.
Nooner's Heikin-Ashi/Bull-Bear CandlesCandles are colored red and green when Heikin-Ashi and Bull/Bear indicator agree. They are colored yellow when they disagree.






















