SMC Confluence SuiteOVERVIEW
SMC Confluence Suite — Structure, OB, FVG & OTE Score maps Smart Money Concepts structure across two timeframes and condenses nine separate confirmations into a single 0-100 score, so you can
tell a high-quality setup from a mediocre one at a glance.
WHAT IT DRAWS
Market structure - BOS and CHoCH on two independent higher timeframes, with optional "retro" confirmation for breaks that resolve late.
Order Blocks - anchored to the actual structural break rather than to an arbitrary displacement candle. Configurable mitigation (touch / 50% / full).
Fair Value Gaps - filtered by absolute size and/or ATR so micro-gaps are ignored.
Premium / Discount - dealing range from the current TF1 swing pair with an equilibrium line. Zones on the wrong side are dimmed or filtered out.
Liquidity - sweep detection with a minimum ATR penetration and an optional "close back inside" requirement, plus EQH / EQL clustering.
OTE - 0.62 / 0.705 / 0.79 retracement zone with entry, stop, TP1, TP2, R:R and a position size derived from your account balance and risk percentage.
THE CONFLUENCE SCORE
Nine weighted factors, each scored on a gradient rather than pass/fail:
Fresh BOS/CHoCH on TF1 in the bias direction
TF2 trend alignment
Order Blocks overlapping the OTE zone
Fair Value Gaps overlapping the OTE zone
Depth on the correct side of equilibrium
A liquidity sweep supporting the bias
Price located inside the OTE zone
Reward-to-risk versus your target
Untouched zones still available
Every weight is adjustable and setting one to zero removes that factor without
distorting the scale. The breakdown table shows exactly where points were lost,
so the number is auditable instead of being a black box. Grades: A+ 85, A 75,
B 60, C 45, D below.
ALERTS
Thirteen named alert conditions plus dynamic "Any alert() function call" messages
containing entry, stop, target, R:R and confluence details. Each event type can be
toggled individually and throttled with a per-type cooldown.
HOW TO USE
Set TF1 and TF2 to timeframes equal to or higher than your chart.
Wait for a BOS or CHoCH to project a new OTE zone.
Check the score panel - B or better means the supporting factors are present.
Enter inside the OTE zone, ideally where an OB or FVG overlaps it.
Size the position with the lot value shown on the dashboard.
NOTES ON REPAINTING
Higher-timeframe pivots are requested with lookahead enabled but referenced with a
one-bar offset, so only closed higher-timeframe values are used. Structure levels
themselves are confirmed on bar close. Live bars will still update until they close,
which is normal behaviour for any structure-based tool.
This script is a visualisation and analysis tool. It does not predict price and it
is not financial advice. Test any settings on your own instruments and timeframes
before risking capital.
Indicator

Gann Session Box - 6:00 PM Open, Auto-ExpandingGann Session Box — Auto-Expanding High/Low/50%
Marks the range of the current trading session as a live box that grows in real time. The box anchors at the session open (6:00 PM ET by default, the CME/COMEX electronic open), then stretches upward or downward the moment a new session high or low prints. The 50% line always sits at the midpoint of the current range and re-centers automatically as the box expands.
How the session anchor works
Rather than testing the clock hour on each bar, the script shifts every bar's timestamp back by the configured session offset and watches the calendar date flip in that shifted frame. This is date-based rather than hour-based, so it stays correct across DST changes, holiday sessions, data gaps, and chart types that would otherwise skip the exact opening bar.
Second-chart support
On sub-minute charts TradingView only loads a few hours of history, so a 6 PM anchor frequently falls outside the loaded data and the session would never be detected. The session high, low and midpoint are therefore computed on a higher calculation timeframe (1 minute by default) via request.security, which pulls its own history independently of the chart's bar count. The result is a correct session range on a 1-second chart. Leave the calculation timeframe at 1 minute for second-based charts; raise it if you're on a slower chart and want fewer resource units.
Internal divisions
Optional subdivisions of the range:
Quarters — 25% / 50% / 75%
Gann eighths — 1/8 through 7/8, giving the standard eighth-based retracement grid within the session range
Inputs
Session start hour, minute and timezone
Calculation timeframe
Division mode, colors for box fill/border, high, low, midpoint and division lines
Toggles for flat H/L/mid rays, price labels, and retaining previous sessions' boxes
Notes
Set the symbol's session to Extended/Electronic hours. With RTH-only data the 6 PM bars don't exist and the box will anchor to the first available bar of the day instead. The default 6:00 PM with America/New_York is the ETH open for CME and COMEX products; if you switch the timezone dropdown, adjust the hour to match. Indicator

Liquidity Sweep SequenceThis indicator marks stop-hunt sweeps and, more importantly, counts how many
consecutive sweeps have occurred on the same side.
WHAT A SWEEP IS
Traders cluster their stops in predictable places: longs put theirs below the
last swing low, shorts put theirs above the last swing high. Those clusters are
resting liquidity. A sweep happens when price spikes through one of those levels,
triggers the stops, and then closes back on the original side — a wick through,
not a break.
The distinction that matters:
• Close beyond the level = a real breakout, trend continuation
• Close back inside = a sweep, failed breakout, potential reversal
WHY THE SEQUENCE COUNT
A single sweep is often just noise. What I found more useful is when they stack:
the first sweep traps, price fails to reverse, then a second sweep takes out an
even lower low. The second one is where selling pressure is actually exhausted.
The indicator labels these SWEEP, SWEEP², SWEEP³ and so on. The count resets when
an opposite-side sweep appears or when too many bars pass. By default the second
sweep must take out a deeper low (or higher high) to continue the sequence —
otherwise the count restarts at 1.
HOW IT WORKS
1. Swing highs and lows are tracked as liquidity levels using pivots.
2. A level is dropped as soon as price CLOSES through it. Once price closes above
a swing high, that liquidity has already been taken and the level can no longer
produce a sweep signal. This is the single most important filter here — without
it, stale levels from far back generate false signals during trends.
3. A sweep requires: wick through an untouched level, close back inside, a minimum
wick ratio, a minimum reclaim distance, and the bar must be a genuine local
extreme (if the wick does not exceed recent bars, no stops were actually hit).
4. Next-bar confirmation requires the following candle to close in the reversal
direction before the label is drawn.
5. Significance tiering: a sweep is marked "major" only when the wick is the
extreme of the last N bars. Minor sweeps inside ranges are hidden by default.
All labels are drawn on confirmed bars only, so nothing repaints.
HOW I USE IT
My own preference is the 1H chart, entering on SWEEP² — the second sweep in a
sequence. The first sweep tells me the level is being attacked; the second one is
where I act.
This is built for short-term perpetual futures trading and works best there. The
reason is mechanical: perps run 24/7 with no gaps, they are heavily leveraged, and
liquidation clusters are dense and public. Stop hunts on perps are a real, visible
event rather than a metaphor. On instruments with overnight gaps, daily price
limits, or low leverage, a long wick often does not represent a genuine sweep at
all, and signal quality degrades noticeably.
Suggested timeframes: 15m to 4H. Lower is noisy; the daily compresses multi-hour
hunts into a single candle and loses the event.
LIMITATIONS — please read
• This is a mean-reversion tool, not a trend tool. A sweep is by definition a
FAILED breakout, while a trend start is a SUCCESSFUL one. The two are mutually
exclusive, so this indicator will not flag the beginning of a large trend, and
it is not designed to.
• It only detects double-top and double-bottom style reversals. A V-shaped top
that simply prints a new high and falls has no prior level above it to sweep,
so no signal can appear there.
• Signals occur more frequently in ranging conditions. That is inherent to the
concept, not a defect.
• Next-bar confirmation costs one bar of delay. Turn it off for immediacy at the
cost of more failed signals.
• Pivot detection needs bars on both sides, so levels are registered with a lag
equal to the swing sensitivity setting.
• Parameters need adjusting per market and timeframe. On 15m, the major-sweep
lookback should be lowered to roughly 40–60.
SETTINGS WORTH TOUCHING FIRST
• Swing sensitivity — the main tightness control
• Major sweep lookback — how significant a sweep must be to display
• Show 2nd sweep and beyond only — reduces the chart to sequence signals alone
• Show untouched liquidity levels — draws the levels currently being tracked so
you can verify the structure logic yourself
Alerts are included for major sweeps and for the second sweep in a sequence.
This indicator is a visualization and analysis tool. It does not generate buy or
sell recommendations and nothing here is financial advice. Test any approach on
your own before risking capital.
────────────────────────────────────────────────────────────────────
【繁體中文說明】
本指標標記獵殺止損的掃蕩訊號,並且會計算同方向連續掃蕩的次數。
什麼是掃蕩
交易者的停損放在可預測的位置:做多的放在前低下方,做空的放在前高上方。這些成堆
的停損就是「流動性」。當價格刺破那個價位、觸發停損,然後收盤又收回原本那一側,
就是一次掃蕩——是影線穿過,不是真正突破。
關鍵區別:
• 收盤站在價位外側 = 真突破,趨勢延續
• 收盤收回內側 = 掃蕩,假突破,可能反轉
為什麼要算連續次數
單一次掃蕩常常只是雜訊。比較有用的是它們接連出現:第一次掃蕩是陷阱,價格沒能反
轉,接著第二次掃蕩創了更低的低點——第二次才是賣壓真正耗盡的地方。
指標會標成 SWEEP、SWEEP²、SWEEP³。出現反向掃蕩或間隔過久就歸零重算。預設要求第
二次必須創更低低點(或更高高點)才算延續,否則計數從 1 重新開始。
運作方式
1. 用 pivot 追蹤前高前低作為流動性價位。
2. 價格一旦「收盤」穿過某個價位,該價位立刻作廢。收盤站上前高,代表那裡的流動性
已經被吃掉,不再是掃蕩目標。這是本指標最重要的過濾——沒有這一層,久遠以前的
死線會在趨勢中不斷產生假訊號。
3. 掃蕩成立條件:影線穿過未被吃掉的價位、收盤收回、影線佔比達標、收回幅度達標,
且該K棒必須創局部極值(影線若沒超過近期K棒,代表根本沒有停損被觸發)。
4. 隔根確認:要求下一根收盤朝反轉方向,才畫出標籤。
5. 重要度分級:影線必須是近 N 根的極值才標為「主要」。震盪區間的次要掃蕩預設隱藏。
所有標籤都在收K後才繪製,不會重繪。
我自己怎麼用
我個人偏好 1 小時線,在 SWEEP²(連續第二次掃蕩)進場。第一次告訴我這個價位正在被
攻擊,第二次才是我動手的地方。
這支是為短線永續合約設計的,在那裡效果最好。原因是機制上的:永續 24 小時不間斷、
沒有跳空、槓桿高,清算價位密集而且公開。永續上的獵殺止損是實際發生、看得見的事件,
不是比喻。在有隔夜跳空、漲跌幅限制、或低槓桿的商品上,一根長影線常常根本不代表真
正的掃蕩,訊號品質會明顯下降。
建議時框:15 分鐘到 4 小時。更低太雜;日線把數小時的獵殺壓縮成一根K棒,事件本身就
消失了。
限制(請務必閱讀)
• 這是均值回歸工具,不是趨勢工具。掃蕩的定義就是「突破失敗」,而趨勢起點是「突破
成功」,兩者互斥。所以它不會標出大趨勢的起點,也不是為此設計的。
• 只偵測得到雙頂/雙底型的反轉。直接創新高然後下跌的 V 型頂,上方根本沒有前高可
掃,不可能出現訊號。
• 震盪盤中訊號較密集。這是概念本身的性質,不是缺陷。
• 隔根確認會延遲一根。關掉可即時,但假訊號會變多。
• Pivot 需要左右兩側的K棒,所以價位登記會延遲,延遲根數等於靈敏度設定值。
• 參數需依市場與時框調整。15 分鐘線建議把主要掃蕩回看根數降到 40–60。
本指標為視覺化與分析工具,不產生買賣建議,內容不構成投資建議。任何做法請自行驗證
後再投入資金。 Indicator

SPMA Trend | NAL1. Overview
SPMA Trend | NAL is an adaptive trend and volatility framework built around the Shock Percentile Moving Average.
Unlike a conventional moving average that continuously follows price, the SPMA selectively updates when the current price change ranks above a configurable percentile of recent returns. This creates an event-driven baseline that places greater emphasis on stronger positive price shocks while holding its previous value during lower-ranked movement.
SPMA Trend expands this concept with adaptive volatility bands, asymmetric shock modeling, empirical quantile boundaries, and optional slope confirmation to form a complete directional regime model.
2. Core Calculation
The SPMA begins by ranking the current price change against its recent historical distribution.
Ret = close - close
Per = ta.percentrank(Ret, percentrank_lookback)
Gate = Per > percentile_gate
When the percentile gate is satisfied, the baseline updates to the current EMA value. Otherwise, it retains its previous level.
MA := na(MA ) ? emaValue : Gate ? emaValue : MA
This produces a persistent baseline whose movement is concentrated around stronger ranked price events rather than every fluctuation in price.
3. Adaptive Volatility Framework
SPMA Trend surrounds the baseline with a configurable volatility structure.
Five volatility models are available:
Standard Deviation — measures dispersion around the mean.
ATR — measures price-range volatility.
Mean Absolute Deviation — measures average absolute dispersion.
Median Absolute Deviation — provides a more robust measure of dispersion with reduced sensitivity to extreme observations.
Quantile — constructs the upper and lower boundaries from the empirical distribution of historical price deviations from the SPMA.
The Quantile model is inherently asymmetric. Positive and negative residuals are evaluated separately, allowing each side of the structure to reflect its own historical distribution.
residual = close - SPMA
= f_quantile_volatility(residual, VolLen, QuantilePct)
For the conventional volatility models, an optional asymmetric mode analyzes positive and negative log-return shocks independently. This allows upper and lower volatility expansion to respond differently when the distribution of market shocks becomes unbalanced.
The resulting volatility estimate is applied around the SPMA to create the final adaptive boundaries.
upperBand = SPMA + finalUpper * VolMul
lowerBand = SPMA - finalLower * VolMul
4. Signal Structure
The bullish regime is deliberately selective.
Price must break above the upper volatility boundary while the SPMA itself is rising. When enabled, the percentage slope of the SPMA must also exceed the configured slope threshold.
if SPMA > SPMA and close > upperBand and (UseSlope ? SlopeGate : true)
NAL := 1
A bearish regime is established when price moves below the lower adaptive boundary.
if close < lowerBand
NAL := -1
Between qualifying transitions, the previous directional state is retained. This converts individual volatility-band events into a persistent trend regime rather than a sequence of isolated crossover signals.
5. Key Features
Shock-percentile adaptive baseline.
Event-driven rather than continuously updating trend structure.
Five selectable volatility models.
Mean and median absolute-deviation volatility.
Empirical asymmetric residual quantiles.
Optional positive/negative shock-adjusted volatility bands.
Configurable SPMA slope confirmation.
Persistent bullish and bearish regime states.
Adaptive band, glow, fill, and candle visualization.
6. Use
SPMA Trend is designed as a specialized trend-regime component within a broader systematic framework.
The indicator combines three distinct layers of information: the significance of recent price movement determines when the baseline adapts, the volatility model determines how far price must expand from that structure, and the optional slope gate measures whether the underlying SPMA is developing with sufficient positive directional strength.
This creates a framework centered on identifying meaningful expansion away from an event-driven price structure rather than responding to every short-term movement.
Its primary value is as a distinct structural layer within a complete strategy architecture, where shock significance, volatility expansion, and directional development can be integrated with other independent forms of market information. Indicator

VWAP Z-Score Oscillator**VWAP Z-Score Oscillator — Complete Description**
**Overview**
The indicator is a single-pane oscillator that measures how far price has moved from a rolling, volume-weighted average price. It answers one question on every bar: how far is price from its recent volume-weighted fair value, and how significant is that gap. The output can be shown either as a normalized standard-deviation reading or as the raw price distance, selectable by the user.
**Core Calculation**
- **Moving VWAP.** A rolling volume-weighted mean of price is computed over a user-set lookback. Unlike a session VWAP, it slides forward continuously and never resets at the session boundary.
- **Volume-weighted standard deviation.** The dispersion of price around that Moving VWAP is calculated as a volume-weighted variance, then square-rooted. It expands when volatility rises and contracts when the market is quiet.
- **Oscillator value.** In Z-Score mode the plotted value is the price-to-VWAP gap divided by that standard deviation, so the reading is expressed in standard deviations. In Distance mode the plotted value is the raw gap in the instrument's own price units. Zero means price is resting on the Moving VWAP; positive means above, negative means below.
**Two Display Modes**
- **Z-Score (σ).** Normalized. The band levels are read directly as standard deviations, and reference lines sit at constant levels. Because the scale is unit-free, the same levels carry the same meaning on any symbol or timeframe.
- **Distance.** Raw. The oscillator shows the actual price gap, and each band is drawn at its level multiplied by the standard deviation, so the bands widen and tighten with volatility while the raw distance stays interpretable.
**Multi-Timeframe Calculation**
A calculation-timeframe selector runs the entire computation on a chosen timeframe rather than only the chart's. The default uses the chart timeframe. Choosing a higher timeframe recomputes the Moving VWAP, the standard deviation, and the oscillator on that timeframe's bars and pulls the result back through a single combined data request. The request runs without look-ahead, so no future higher-timeframe data leaks into historical bars; the current higher-timeframe value continues updating until that bar closes.
**Visual Output**
- The oscillator plots as a histogram, colored by which side of the Moving VWAP price is on.
- The histogram fades across a user-defined transparency range: faint near the VWAP, intensifying to full color as price stretches to a set distance, then holding solid beyond it.
- A solid zero line marks the Moving VWAP.
- Three standard-deviation bands are drawn above and below zero, each with its own toggle, level, and color.
**User Inputs**
*Calculation Timeframe*
- **Calculation Timeframe** — the timeframe the oscillator is computed on. Options are labeled in plain language across seconds, minutes, hours, days, weeks, and a month, plus Chart. Chart uses the current chart timeframe. Higher timeframes give a broader context; lower-than-chart selections are not recommended, and seconds-based options only work on charts that support second-level data.
*Settings*
- **Oscillator Mode** — switches between Z-Score (σ), the normalized standard-deviation reading, and Distance, the raw price gap with volatility-scaled bands.
- **Source** — the price series feeding both the Moving VWAP and the distance measurement. Defaults to the average of high, low, and close; a close-only source reacts faster.
- **Moving VWAP Length** — the number of bars in the rolling window for both the VWAP and its standard deviation. Larger values are smoother and slower; smaller values are more reactive.
- **Fallback to MA on no-volume symbols** — when enabled, symbols that report no volume use a simple moving average and plain standard deviation so the oscillator still functions; when disabled, such symbols show nothing.
*Standard Deviation Bands (three identical rows: Band 1, Band 2, Band 3)*
- **Toggle** — shows or hides that band's upper and lower lines independently.
- **Level (Σ)** — that band's distance from zero, in standard deviations, adjustable in fine steps. Defaults are 1, 2, and 3.
- **Color** — the color applied to both the upper and lower line of that band.
- Band 2's level additionally sets the threshold used by the two stretch alerts.
*Colors*
- **Above VWAP** — histogram color when the oscillator is positive.
- **Below VWAP** — histogram color when the oscillator is negative.
- **Transparency at VWAP** — histogram transparency when price sits on the Moving VWAP; the faint end of the color range.
- **Transparency at Full Color** — histogram transparency once price reaches the full-color distance; the solid end of the range.
- **Full-Color Distance (σ)** — the standard-deviation distance over which the histogram fades from faint to solid; beyond it, the color holds solid.
**Data Window Outputs**
Two values are exposed for inspection or use by other scripts: the Moving VWAP and the standard deviation. The oscillator value itself is also readable from the histogram plot. These do not draw on the chart pane.
**Alerts**
Four alert conditions are available: price crossing above the Moving VWAP, crossing below it, stretching beyond Band 2's upper level, and stretching beyond Band 2's lower level. The stretch alerts follow Band 2's configured level in both modes.
**Behavioral Notes**
- In Z-Score mode the oscillator is unbounded. During a violent move it can spike past four or five standard deviations, which reflects genuine dislocation rather than a display error.
- The Style tab is intentionally empty; all appearance and behavior controls live in the Inputs tab, so nothing there can override the code-driven output.
- The indicator's sole basis is price distance from the Moving VWAP; there is no market-structure logic in the calculation. Indicator

Indicator

Volatility of Returns | NickJoanVolatility of Returns | NickJoan
Core Idea
Volatility of Returns measures the standard deviation of logarithmic returns over a user-defined lookback window. This is the industry-standard approach to calculating historical volatility, widely used in finance for risk management, option pricing, and portfolio analysis.
The indicator displays volatility as an annualized percentage, making it easy to compare across different assets and timeframes. An optional moving average helps smooth the volatility series and identify trends in volatility itself.
Calculation Logic
The indicator follows a straightforward three-step process:
1. Log returns calculation
For each bar, the script calculates the logarithmic return:
• logRet = log(close / close )
2. Standard deviation calculation
The script calculates the standard deviation of log returns over the specified lookback period:
• stdevLogRet = stdev(logRet, length)
This measures how much returns typically deviate from their mean.
3. Annualization
The raw standard deviation is then annualized by multiplying by the square root of the annualization period:
• volatility = stdevLogRet × √annPeriod × 100
For daily crypto charts, the default is √365. This converts the per-bar volatility into an annualized percentage.
Chart Output
The indicator displays in a separate pane below the price chart:
Volatility line
• Shows the annualized volatility percentage
• Plotted in blue
Moving average line (optional)
• Shows the smoothed volatility trend
• User-selectable type: SMA, EMA, WMA, or RMA
• Plotted in gray with thicker linewidth
• Can be toggled off via input
Inputs
CALCULATION
• Volatility Lookback (bars): window for standard deviation calculation. Default: 90.
• Annualize: toggles annualization on/off. Default: true.
• Annualization Period: period used for annualization. Default: 365.
MOVING AVERAGE
• Show Moving Average: toggles MA overlay visibility. Default: true.
• MA Type: MA calculation method (SMA, EMA, WMA, RMA). Default: EMA.
• MA Length: MA lookback period. Default: 30.
How to Use It
Volatility level assessment
• Low volatility: calm, consolidating market
• Medium volatility: normal market conditions
• High volatility: turbulent, fast-moving market
Note: "Low" and "High" are relative to the asset class. Crypto naturally has higher volatility than stocks or forex.
Volatility trend identification
Use the moving average to identify whether volatility is rising or falling:
• Volatility above MA: elevated relative to recent trend
• Volatility below MA: suppressed relative to recent trend
• MA sloping up: volatility is increasing
• MA sloping down: volatility is decreasing
Risk management
Use volatility to adjust position sizing and risk parameters:
• High volatility: reduce position size, widen stop losses
• Low volatility: can increase position size, tighter stops
• Rising volatility: prepare for potential breakout or increased uncertainty
• Falling volatility: consolidation phase, wait for direction
Best Use Cases
• Historical volatility measurement
• Risk management and position sizing
• Volatility trend analysis
• Cross-asset volatility comparison
• Portfolio risk monitoring
Notes
The indicator is designed for daily crypto charts but works on any timeframe.
• Daily timeframe: use Annualization Period = 365
• 4H timeframe: use Annualization Period = 2190 (365 × 6)
• 1H timeframe: use Annualization Period = 8760 (365 × 24)
• Or disable annualization for raw per-bar volatility
The lookback period determines sensitivity:
• Shorter lookback (20-30 bars): more reactive to recent spikes
• Medium lookback (60-90 bars): balanced approach
• Longer lookback (180-365 bars): smooth, long-term trends Indicator

Institutional Swing Pressure Engine [ISPE]Description
Swing Pressure Engine is a multi-factor swing trading indicator designed to identify periods where directional pressure may be building before or during a larger price expansion.
Rather than relying on a single oscillator or breakout condition, ISPE evaluates several independent characteristics of market behavior and combines them into bullish and bearish pressure models.
The indicator analyzes five primary areas:
Compression — Measures whether volatility and price ranges are contracting relative to the instrument’s own historical behavior. It incorporates ATR, Bollinger Band width, realized volatility, rolling range contraction, candle-body compression, and Bollinger/Keltner squeeze conditions.
Flow — Estimates accumulation and distribution using price-and-volume proxies including closing location, relative volume, OBV behavior, directional volume, price response to volume, and absorption-style behavior. These calculations do not identify actual institutional orders; they infer buying and selling pressure from publicly available price and volume data.
Relative Strength — Measures the instrument against a broad-market benchmark and an optional sector benchmark. It evaluates relative performance, downside resilience, upside participation, and beta-adjusted relative behavior.
Structure — Evaluates the technical structure surrounding price, including proximity to support and resistance, moving-average alignment, higher-low/lower-high behavior, trend efficiency, and changes in rejection strength near important levels.
Multi-Timeframe Context — Uses higher-timeframe trend information to determine whether the current setup is aligned with the broader market structure.
These components are combined into separate Bull Pressure and Bear Pressure scores ranging from 0–100.
ISPE also calculates an Expansion score intended to represent the strength of conditions associated with a potential directional move. These values are composite heuristic scores and should not be interpreted as statistically calibrated probabilities.
Market States
The indicator classifies current conditions into states such as:
Dormant
Compressing
Accumulating
Distributing
Pressurized Bull
Pressurized Bear
Bull Pressure Divergence
Bear Pressure Divergence
Bull Expansion Imminent
Bear Expansion Imminent
Bull Expansion
Bear Expansion
Failed Breakout
Expansion Exhaustion
The purpose of these states is to make the underlying calculations easier to interpret at a glance.
Pressure Divergence
One of ISPE’s distinctive features is its Pressure Divergence model.
Pressure divergence occurs when price remains relatively compressed while the internal bullish or bearish pressure score changes significantly.
For example, price may remain nearly unchanged while accumulation, relative strength, structure, and compression increasingly favor the bullish side. ISPE can identify this as bullish pressure divergence before a traditional price breakout occurs.
The same logic is applied inversely to bearish setups.
How to Use
ISPE is primarily intended as a swing-trading research and confirmation tool.
A potentially favorable bullish setup may show:
Elevated compression
Strong accumulation
Strong relative strength
Favorable bullish structure
Positive higher-timeframe alignment
Bull pressure clearly exceeding bear pressure
A bearish setup uses the inverse conditions.
Higher pressure scores do not automatically represent trade signals. They are intended to identify environments that may deserve additional analysis.
The indicator also displays current structural support and resistance, along with potential entry, invalidation, and target reference levels when directional pressure becomes sufficiently elevated.
These levels are generated from current volatility and market structure and should be treated as analytical references rather than guaranteed entry or exit prices.
Adaptive Normalization
Many components of ISPE are normalized against the instrument’s own historical distribution using rolling percentile calculations.
This allows the indicator to adapt to securities with substantially different volatility characteristics.
For example, volatility that is unusually low for one stock may still be very high for another. ISPE therefore evaluates compression relative to the instrument itself rather than relying exclusively on fixed thresholds.
Relative Strength
By default, the indicator compares the current instrument with SPY and an optional sector ETF.
Users should change the sector benchmark where appropriate.
For example, a technology stock may reasonably be compared with XLK, while stocks from other industries should use a more appropriate sector benchmark.
Multi-Timeframe Data
ISPE incorporates higher-timeframe trend information into its pressure model.
Higher-timeframe calculations use confirmed historical higher-timeframe information to reduce repainting behavior from unfinished higher-timeframe bars.
Limitations
ISPE does not predict future prices and does not guarantee profitable trades.
The Bull Pressure, Bear Pressure, and Expansion readings are composite analytical scores rather than verified probabilities of future returns.
Accumulation and distribution calculations are based on price and volume proxies. The script cannot determine whether specific transactions originate from institutions, market makers, retail traders, or other market participants.
Support, resistance, entry, invalidation, and target levels change as market structure and volatility change.
Relative-strength calculations also depend on the selected benchmarks, so inappropriate benchmark selection can reduce their usefulness.
The indicator should therefore be used as one component of a broader trading process rather than as a standalone decision system.
Intended Use
ISPE was designed primarily for identifying and evaluating developing swing-trading environments where volatility compression, directional pressure, relative strength, and market structure begin aligning before or during price expansion.
Its primary purpose is not simply to identify completed breakouts, but to organize several underlying characteristics of a developing setup into a compact directional pressure model. Indicator

Monthly & Weekly Macro KeysMonthly & Weekly Macro Keys plots completed monthly and weekly High, Low, Open, and Close levels with composite IPDA-style premium/discount context.
Monthly macros default to the last three completed months. Each level is labeled by calendar month (for example, June 2026 Monthly High). Weekly macro key levels default to the prior completed week High and Low, with optional Open and Close. Lines begin on the day the print occurred and extend to a configurable right-side buffer next to the labels.
A composite range is built from the selected months or weeks. The indicator can draw the IPDA gradient through that range: 12.5%, 25%, 37.5%, equilibrium (50%), 62.5%, 75%, and 87.5%. High and Low of the composite are not duplicated on the gradient because they are already shown as the monthly or weekly macros.
An on-chart table reports Premium or Discount relative to equilibrium, percent location within the range, whether price is inside the 25–75% zone, and the key price levels for both the monthly and weekly composites.
Style controls include color, width, and line style (Solid, Dotted, Dashed) for monthly and weekly High, Low, and Open/Close, as well as for gradient quadrant and octant levels. Table position supports all nine chart anchors. Lookback counts are adjustable (up to six months and eight weeks). Indicator

CandelaCharts - RTH Gap📝 Overview
The CandelaCharts - RTH Gap indicator is a professional technical tool designed to automatically identify, track, and visualize Regular Trading Hours (RTH) gaps. By targeting the exact NY close (4:00 PM for equities/ETFs like SPY, or 4:15 PM for futures) and open (9:30 AM), this indicator precisely maps out the untraded price voids between sessions, providing crucial intraday support and resistance levels.
Unlike standard gap indicators that fail on RTH-only charts, this script uses robust day-change logic to detect session transitions flawlessly. Unfilled gaps extend indefinitely across the chart, while filled gaps can be kept on the chart to serve as historical support/resistance.
📦 Features
Exact RTH Logic: Automatically anchors session closings (16:00/16:15 NY time) and openings (09:30 NY time) to measure the exact RTH gap size, regardless of whether you have Extended Trading Hours (ETH) turned on or off.
Customizable Inner Levels: Break down gap zones into mathematically significant price levels:
Midline (50% Mean): Plots the exact middle of the gap, a highly respected level for intraday rejections.
Quadrants: Divides the gap into 25%, 50%, and 75% retracement levels.
OTE (Optimal Trade Entry): Plots the 0.618, 0.705, and 0.786 Fibonacci levels to find high-probability reversal zones.
Dynamic Labels: Displays dynamic price labels on the chart axis. When Inner Levels (OTE or Quadrants) are enabled, the top, bottom, and midline labels automatically update to show percentages/ratios (e.g. 100%, 50%, 0% or 0.0, 0.5, 1.0) rather than raw prices to keep the charts clean.
Post-Fill Extensions: When a gap is filled, the main box stops extending to mark where the mitigation happened. However, if enabled, the levels (Top, Bottom, Midline, and Inner Levels) will convert to dashed lines and continue to extend to the current candle as historical support/resistance.
Filter by Bias: Clean up your chart layout by choosing to display only Bullish gaps, Bearish gaps, or Both.
Historical Tracking: Keep the last N gaps visible on the chart for history and context.
⚙️ Settings
Session: Define the exact RTH Session hours (default is 09:30-16:00).
History: Define how many historical gaps to keep on the chart.
Gap Up / Gap Down: Toggle visibility and customize colors, fill transparency, and border styles.
Midline: Toggle the visibility of the gap's 50% midline, and customize its style and color.
Inner Levels: Toggle Quadrants or OTE subdivisions, and customize their styles and colors.
Show Labels: Toggle price/ratio axis labels.
Show Filled Gaps: When enabled, filled gaps turn gray and extend as dashed lines to the current candle. When disabled, filled gaps are completely removed from the chart.
Alerts: Toggle the ability for the indicator to fire programmatic alerts.
⚡️ Showcase
RTH Gap - Default View
RTH Gap - OTE Levels
RTH Gap - Quadrant Levels
🚨 Alerts
This indicator includes built-in alert conditions ensuring you never miss a critical gap test. Once "Enable Alerts" is checked in the settings, you can configure TradingView to notify you when:
An RTH Gap Up is fully filled.
An RTH Gap Down is fully filled.
⚠️ Disclaimer
Trading involves significant risk, and many participants may incur losses. The content on this site is not intended as financial advice and should not be interpreted as such. Decisions to buy, sell, hold, or trade securities, commodities, or other financial instruments carry inherent risks and are best made with guidance from qualified financial professionals. Past performance is not indicative of future results.
Indicator

Bias Detector Terminal [The Quant Science]Bias Detector Terminal is a quantitative analysis tool designed to identify day-of-week statistical bias and seasonality. By calculating the historical frequency of bullish closes for each trading day, the terminal provides a clear picture of directional market probabilities.
🔷 What it does
The indicator analyzes daily price history to calculate:
Bullish Ratio: The number of bullish sessions (close > open) relative to total historical bars for each day of the week (Monday to Sunday).
Session Win Rate: The exact percentage of positive closes for every trading day.
Smart Bias Signals: Categorizes each session based on statistical thresholds:
🟢 : Win Rate >= 55%
🔴 : Win Rate <= 45%
⚪ : Win Rate between 45% and 55%
Visual Flow Profile: An inline progress bar for instant visual assessment of buy/sell pressure.
Composite Metrics: A summary row showing the cumulative baseline for all historical data analyzed.
🔷 How to use it
Chart Application: Add the script to the chart of your chosen asset (Stocks, Crypto, Forex, Indices).
Timeframe Setting: Make sure the chart is set to the Daily (1D/Daily) timeframe. The script includes a built-in check that will trigger an error if applied to lower timeframes.
🔷 Interface Customization
Through the indicator settings you can:
Change the console position on screen (Top Right, Top Left, Bottom Right, Bottom Left, Center).
Modify the terminal font size (Small, Normal, Large).
🔷 Use Cases
Weekly Operational Planning: Identify in advance which days of the week historically favor buyers or sellers from a statistical standpoint.
Confluence Filter: Avoid opening short positions on days with a historically high bullish win rate (and vice versa), raising the overall quality of your trade setups.
Seasonality Analysis: Determine if a specific asset exhibits recurring statistical patterns (e.g., Turnaround Tuesday or Friday weakness).
🔷 Target Audience
Quant & Systematic Traders: For those who base their decisions on statistical data rather than gut feeling.
Day Traders & Swing Traders: Useful for aligning intraday operations with the statistical trend of the current day.
Market Analysts: For those who want to integrate high-level visual reporting and quantitative metrics into their TradingView analysis.
Indicator

Breakout Radar (TechnoBlooms)Breakout Radar (TechnoBlooms)
Compression • Pressure • Bias • Breakout Confirmation
A structure-first breakout analysis tool designed to identify when quiet price action is building toward a directional move.
Overview
Breakout Radar is a price-compression and breakout-pressure indicator developed by TechnoBlooms. Instead of simply marking every new high or low as a breakout, it first looks for a compressed market structure, measures the pressure developing inside that structure, identifies directional bias, and then waits for price to confirm a break beyond the locked range.
The objective is simple: help traders distinguish between ordinary sideways movement and a consolidation that may be preparing for expansion. The indicator is designed as a decision-support tool, not as an automatic buy/sell system.
What Makes Breakout Radar Different?
Compression first: The system searches for contraction in volatility and price structure before considering a breakout.
Locked structure boxes: Once a qualifying compression is detected, its boundaries are locked instead of continuously following price like a conventional range filter.
Bull vs Bear Pressure: The indicator evaluates how price is behaving near the upper and lower boundaries and converts that behaviour into separate Bull Pressure and Bear Pressure readings.
Pressure Delta and Bias: The difference between bullish and bearish pressure helps identify whether the structure is leaning BULLISH, BEARISH or remains NEUTRAL.
Progressive radar states: The setup develops through SCANNING, BUILDING, WATCH and ARMED states rather than jumping immediately to a signal.
Confirmed breakout: A breakout requires price to close beyond the locked structure with an ATR-based confirmation buffer.
Signal validity buffer: After confirmation, the latest breakout signal can remain valid through a normal retest and is removed only when its stored invalidation level is breached or a newer breakout replaces it.
Clean historical context: Completed compression structures remain faintly visible so traders can study how earlier consolidations resolved, while overlap filtering reduces unnecessary nested boxes.
How to Read the Dashboard
Dashboard Item Interpretation
Compression Measures how strongly the current market is contracting. Higher values indicate tighter compression relative to recent conditions.
Bull Pressure Measures bullish pressure developing inside the active structure.
Bear Pressure Measures bearish pressure developing inside the active structure.
Pressure Delta Bull Pressure minus Bear Pressure. A positive value favours bulls; a negative value favours bears.
Bias Summarises the current directional pressure as BULLISH, BEARISH or NEUTRAL.
Radar State SCANNING = no active setup; BUILDING = compression found; WATCH = pressure is becoming meaningful; ARMED = pressure and compression have reached stronger conditions.
Understanding the Radar States
SCANNING — The indicator is monitoring the market, but no qualifying compression structure is currently active.
BUILDING — A compression structure has been identified. Pressure is developing, but the setup is not yet strong enough to demand close attention.
WATCH — Pressure has strengthened. Traders may begin watching the box boundaries and directional bias more closely.
ARMED — Compression and directional pressure have reached stronger conditions. This does not mean a breakout has already happened; it means the structure deserves heightened attention.
How the Breakout Signal Works
A bullish breakout is considered confirmed when price closes above the locked upper boundary plus the configured ATR confirmation buffer and bullish pressure is stronger than bearish pressure. A bearish breakout uses the opposite logic below the lower boundary.
Only the latest relevant breakout arrow is retained. The arrow is intentionally small so the chart remains focused on structure rather than becoming filled with historical signal markers.
The signal is not automatically removed after a fixed number of candles. At the moment of confirmation, Breakout Radar stores an ATR-based invalidation level. This allows price to perform a normal retest without immediately cancelling the breakout. The signal disappears when the breakout is invalidated or when a newer confirmed breakout replaces it.
Example 1 — Bullish Compression Breakout
Assume a stock trades sideways between ₹980 and ₹1,000 while volatility contracts. Breakout Radar identifies the compression and locks a box around the structure. As price repeatedly tests the upper portion of the box, Bull Pressure rises from 48 to 64 and then to 78, while Bear Pressure remains near 42.
The dashboard may progress from BUILDING → WATCH → ARMED with a BULLISH bias. If price subsequently closes above the upper boundary plus the breakout confirmation buffer, a small bullish arrow appears. A minor pullback toward the breakout area does not automatically remove the signal; it remains valid until the stored bullish invalidation level is breached.
Example 2 — Bearish Compression Breakout
Imagine an index consolidating between 24,800 and 25,000. During the consolidation, repeated pressure develops near the lower boundary. Bear Pressure increases to 81 while Bull Pressure falls to 51, producing a negative Pressure Delta and a BEARISH bias.
Once price closes below the locked lower boundary with the required ATR buffer, the bearish breakout is confirmed and a small downward arrow appears. The completed compression box remains on the chart as historical context while the Radar is free to scan independently for the next compression structure.
Example 3 — Why ARMED Is Not the Same as BUY or SELL
Suppose Compression is 76, Bull Pressure is 80 and Bear Pressure is 49. The Radar can show ARMED with a BULLISH bias even though price is still inside the box. This is an early-warning condition, not a trade confirmation. If price fails to break the upper boundary and pressure weakens, the setup can remain inside the structure or change bias. The breakout arrow appears only after the actual confirmation condition is met.
Reading the Boxes
The rectangles represent detected compression structures. The active structure is used for live pressure and breakout analysis. After a breakout, the completed box can remain lightly visible to show where the expansion originated. An overlap filter is used to reduce repeated boxes representing substantially the same price structure.
How Breakout Radar Compares with Other Popular Tools
Breakout Radar shares some visual ideas with range filters, order blocks, and support/resistance tools because all of them study how price behaves around important areas. The similarity, however, is mainly in the chart structure. Breakout Radar is built for a different question: is the market compressing, which side is applying more pressure, and has that compression actually expanded into a confirmed breakout?
Tool Main Purpose Similarity Key Difference
Range Filter Smooth price noise and identify directional movement or a filtered trading range. Both may show boundaries around price and can help traders recognise a transition from sideways movement to expansion. A range filter usually moves or recalculates with price. Breakout Radar first detects compression, locks the structure, measures Bull/Bear Pressure inside it, and waits for a buffered close outside the box.
Order Block Mark price areas associated with prior institutional-style supply/demand concepts or displacement. Both can leave historical zones on the chart and both may become areas traders watch during later price interaction. Breakout Radar does not claim to identify institutional orders or actual order flow. Its boxes represent measured compression structures, not order blocks. Direction is assessed from price behaviour and pressure within the compression.
Support & Resistance Identify levels or zones where price has previously reacted, stalled, reversed, or broken. The top and bottom of a Breakout Radar box naturally act as temporary resistance and support while the compression remains active. Traditional S&R starts with reaction levels. Breakout Radar starts with volatility/structure compression and then adds pressure, bias, state progression and breakout confirmation.
Breakout Radar Identify compressed structures, measure directional pressure, and confirm expansion beyond a locked range. Uses price boundaries just as many classical technical tools do. Combines compression scoring, locked boxes, Bull/Bear Pressure, Pressure Delta, Bias, BUILDING/WATCH/ARMED states, ATR breakout confirmation and signal invalidation in one workflow.
1. Breakout Radar vs Range Filter
The closest visual comparison is a range filter because both can make consolidation and directional movement easy to see. But Breakout Radar is not designed to continuously filter price. Once a qualifying compression is found, the box is locked. The indicator then studies what is happening inside that fixed structure. A trader can therefore see whether pressure is building toward the upper boundary, the lower boundary, or neither.
Example: price may remain inside a ₹500-₹510 box while Bull Pressure rises from 52 to 79. A conventional range filter may simply continue tracking the range or trend. Breakout Radar can move from BUILDING to WATCH to ARMED while the price is still inside the box, and only confirms the bullish breakout after a close above the upper boundary plus the ATR confirmation buffer.
2. Breakout Radar vs Order Blocks
An order-block indicator normally attempts to identify a zone associated with an earlier impulsive move and treats that area as a possible future supply or demand zone. Breakout Radar does something different: the rectangle is created because the current market has compressed, not because the script is labelling an institutional order area.
The historical boxes may therefore look superficially similar to order-block zones, but their meaning is different. A green completed Breakout Radar box means a compression structure eventually resolved upward; a red completed box means it resolved downward. It should not be interpreted as proof that institutional buying or selling occurred inside that box.
3. Breakout Radar vs Support & Resistance
Support and resistance are still relevant to Breakout Radar. In fact, the lower and upper boundaries of an active compression naturally behave like short-term support and resistance. The difference is that those boundaries are only one layer of the analysis.
Breakout Radar also asks whether volatility is compressed, how frequently price is pressuring each boundary, where price is persisting inside the structure, whether the internal structure is squeezing in one direction, and whether the final candle behaviour supports that direction. These components feed the Bull Pressure, Bear Pressure, Pressure Delta and Bias readings.
Where They Can Be Used Together
These tools do not have to compete with one another. A trader may use higher-timeframe support/resistance or a separately identified order-block area for context, then use Breakout Radar on the execution timeframe to see whether price is compressing near that area and whether directional pressure is developing. Likewise, a range or trend tool can provide broader directional context while Breakout Radar focuses specifically on the compression-to-expansion phase.
A Simple Way to Remember the Difference
• Range Filter asks: Where is filtered price/trend moving?
• Order Block asks: Where is a previously significant supply/demand-style zone?
• Support & Resistance asks: Where has price reacted or may react again?
• Breakout Radar asks: Is price compressing now, which side is building pressure, and has expansion been confirmed?
This distinction is central to the TechnoBlooms concept: the box itself is not the signal. The information comes from the evolution of compression, pressure, bias and eventual breakout confirmation.
Suggested Workflow
1. Look for an active compression box rather than chasing price after an extended move.
2. Check whether the Radar is BUILDING, WATCH or ARMED.
3. Compare Bull Pressure and Bear Pressure, then confirm the Pressure Delta and Bias.
4. Treat ARMED as preparation, not confirmation.
5. Wait for a confirmed close beyond the relevant box boundary and confirmation buffer.
6. Use the breakout invalidation level together with your own risk-management process.
7. Confirm higher-timeframe structure, liquidity, market context and event risk before acting.
Important Notes
Breakout Radar does not predict that every compression will produce a successful breakout. Markets can generate false breaks, gaps, news-driven moves and rapid reversals. Pressure readings are analytical measurements derived from price behaviour; they are not exchange order-flow data.
The indicator does not provide profit targets or broker execution. This is intentional: Breakout Radar focuses on identifying compression, directional pressure, breakout confirmation and subsequent validity.
Recommended Markets & Timeframes
The concept can be applied to liquid equities, indices, futures, forex, commodities and crypto. Because volatility characteristics differ by instrument and timeframe, users should validate the default settings on the market they trade. Lower timeframes generally produce more setups and more noise; higher timeframes generally produce fewer but broader structures.
Alerts
Breakout Radar supports alert conditions for bullish ARMED, bearish ARMED, bullish breakout confirmation and bearish breakout confirmation. For live use, traders should configure TradingView alerts according to their preferred symbol, timeframe and confirmation workflow.
TradingView-Ready Short Description
Breakout Radar (TechnoBlooms) is a structure-first compression and breakout-pressure indicator designed to identify when a quiet market may be preparing for expansion. It combines volatility compression, locked price structures, Bull/Bear Pressure, Pressure Delta and directional Bias with progressive SCANNING → BUILDING → WATCH → ARMED states. Breakouts are confirmed only after price closes beyond the locked structure with an ATR-based buffer. The latest breakout signal remains visible while structurally valid, while completed compression boxes provide clean historical context. Breakout Radar is designed as a decision-support and market-structure tool rather than a standalone buy/sell system.
Disclaimer
For educational and analytical purposes only. This indicator does not constitute investment advice, a recommendation, or a guarantee of future performance. Trading and investing involve risk. Users should perform their own analysis and apply appropriate risk management before making trading decisions.
Indicator

Level Watch & Touch Ledger [MQLSoftware]OVERVIEW
Level Watch & Touch Ledger keeps an audit trail of what price actually did at the levels you draw yourself. You type in up to eight prices and the script records every time price came to each one, what happened next, and how far past the line it ran before turning. It discovers nothing on its own: it never scans, clusters or ranks levels, and it produces no entries, stops, targets or position sizing. It answers one question about levels you already care about — has this one actually been respected on this chart, or does it only look important?
CONCEPTS
A plain touch counter is close to useless, because price grinding sideways on a level logs a touch every bar and the count becomes noise. The engine here is a re-arm gate: after an event resolves, a level goes quiet until price has closed a configurable ATR distance away and a cooldown has passed. Only then can it register another touch. That turns an ordinary consolidation into a small number of events instead of forty.
Each event resolves exactly once, on a closed bar, and is frozen. REJECTED means price closed back on the side it approached from by the outcome margin; BROKEN means it closed through by that margin; CHOP means neither happened inside the outcome window. A latched outcome is never rewritten, so the table cannot quietly improve as new bars arrive.
Overshoot is measured on rejections only. A break is declared once price closes beyond the level by the outcome margin, so a broken event's overshoot is floored by your own setting and would describe the input rather than the market. A bar that gaps clean over a level never touches the zone, so gaps are detected separately and recorded as breaks — otherwise a level's failures go uncounted and gap-prone symbols look more reliable than they are.
FEATURES
Eight independent level slots, each with its own ledger. A state readout per level, from OUT OF RANGE and WARMING UP through ARMED, PENDING and COOLDOWN. Touch count and bars since the last one. The rejected / broken / chop split. A rejection rate whose denominator includes chop. Median and 75th-percentile rejection overshoot in ATR. Shaded touch zones, level lines, and a marker on every recorded touch. Alerts on touch and outcome, plus a proximity ladder that fires only as price closes in, never as it walks away.
HOW TO USE
Type a price into Level 1 and read the row. Zone half-width sets how close counts as a touch; re-arm distance is the main lever on how many events you get; outcome window and margin decide how decisively price must move. Rates and overshoot both stay behind one minimum-sample input and read "collecting" until the level has enough resolved events — four touches give you an audit trail, not a statistic. A median overshoot of zero is a real answer, not a missing one: half the rejections turned before price reached your line.
Counts, rates, outcomes and markers are closed-bar figures and are never revised. The DIST column, the shaded zone width and the proximity alerts are live and update inside the forming bar; they are visual context, not signals.
CONCLUSION
This is a measurement tool for levels you supply, not a level finder and not a signal generator. Samples on a hand-drawn level are small by nature, and nothing here is a probability, an expectancy or a forecast — the figures describe what this chart's loaded bars did at your lines, shown with the sample size that produced them. Indicator

IQR Risk-to-Reward & Dynamic Targets [MantisAlgo]IQR Risk-to-Reward & Dynamic Targets combines empirical quartile statistics with structural liquidity analysis to identify setups with favorable market-derived risk-to-reward. Instead of assigning arbitrary profit targets such as fixed 2× risk multiples, the indicator divides recent price action into Q1 (25th percentile), Q2 (Median), and Q3 (75th percentile), together with 1.5×IQR statistical outlier boundaries.
These statistical value zones are combined with opposing swing liquidity to calculate the available True Risk-to-Reward Ratio before a setup is displayed. Each qualified setup automatically projects Entry, Structural Stop Loss, Take Profit 1, Take Profit 2, and the resulting True R:R directly on the chart.
🟢 IQR FAIR VALUE STRUCTURE
The Interquartile Range represents the middle 50% of the recent price distribution:
IQR = Q3 − Q1
Q1 = 25th Percentile
Q2 = 50th Percentile (Median)
Q3 = 75th Percentile
When price remains primarily between Q1 and Q3, the market is trading inside its recent statistical value region and tends to rotate around the Median. When price extends beyond an outer quartile or IQR outlier region and subsequently reclaims the Median Wave, the indicator evaluates whether sufficient structural space exists for a move toward opposing liquidity.
This creates two broad market conditions:
• Equilibrium / Mean-Reversion — Price remains within the Q1–Q3 value region and rotates around the Median.
• Expansion / Reclaim — Price extends outside statistical value, then reclaims the Median with sufficient space toward opposing liquidity.
🟢 SIGNALS & TRUE R:R GATE
The core trigger follows a simple sweep-and-reclaim sequence.
For a Long setup, price must first sweep or touch the Lower IQR Band within the recent bars. The signal is then evaluated when price crosses back above the Median Wave and the reclaim candle closes above it.
For a Short setup, price must first sweep or touch the Upper IQR Band. The signal is evaluated when price subsequently crosses back below the Median Wave and the reclaim candle closes below it.
Long: Lower Band Sweep → Median Reclaim → Confirmed Close
Short: Upper Band Sweep → Median Reclaim → Confirmed Close
The reclaim candle becomes the Entry only when volume is sufficiently active, the signal cooldown has been satisfied, and the available True R:R meets or exceeds the selected minimum threshold.
True R:R = Target Distance / Invalidation Distance
Target Distance = |TP2 − Entry|
Invalidation Distance = |Entry − SL|
If True R:R is below the selected threshold, the setup is suppressed. If it meets or exceeds the threshold, the trigger triangle and complete Entry / SL / TP1 / TP2 structure are displayed.
🟢 DYNAMIC TARGET STRUCTURE
Each qualified setup contains four objective levels:
Entry — The exact closing price of the confirmed trigger candle.
Stop Loss — The structural extreme associated with the preceding sweep. For Long setups, the relevant sweep low is used; for Short setups, the relevant sweep high is used. A break beyond this level invalidates the setup structure.
Take Profit 1 — TP1 is based on the opposing quartile boundary: Q3 for Long setups and Q1 for Short setups. It represents the first statistical mean-reversion objective.
Take Profit 2 — TP2 is based on opposing structural liquidity: swing-high liquidity for Long setups and swing-low liquidity for Short setups. Because TP2 is derived from actual chart structure rather than a predetermined fixed multiple, the resulting True R:R changes naturally from setup to setup.
🟢 IQR OUTLIER FENCES
The indicator also calculates traditional Box Plot outlier boundaries:
Lower Fence = Q1 − (1.5 × IQR)
Upper Fence = Q3 + (1.5 × IQR)
These boundaries identify price observations that are unusually extended relative to the recent rolling distribution and provide additional context for statistical sweeps.
🟢 DYNAMIC MEDIAN WAVE
The central Median Wave is based on Q2 and smoothed using a two-pole SuperSmoother-style digital filter. Its purpose is to reduce short-term noise while remaining responsive to directional changes. The wave changes visual state according to its directional slope and acts as the primary reclaim reference for potential setups.
🟢 STATISTICAL BOX-PLOT PIVOTS
Confirmed structural swing pivots can display compact Box Plot brackets directly on the chart. Each bracket visualizes the local Q1 Lower Quartile, Q2 Median, Q3 Upper Quartile, and IQR outlier boundaries, making it easier to compare structural turning points with the surrounding statistical distribution.
🟢 STATISTICAL HUD
The optional top-right HUD provides a compact summary of the current statistical and structural state, allowing users to review the active distribution, directional context, and setup information without manually inspecting every plotted level.
🟢 SETTINGS
Quartile Sample Window — 34: Controls the rolling observation window used to calculate Q1, Q2, and Q3.
Outlier Whisker Multiplier — 1.5: Controls the IQR multiplier used to define the statistical outlier fences.
Structural Liquidity Lookback — 20: Controls the search window used to identify opposing swing liquidity for TP2.
Minimum True R:R Ratio — 2.0: Defines the minimum required target distance relative to structural risk. Higher values produce fewer but more selective setups.
Signal Cooldown — 6: Controls the minimum separation between consecutive signals.
Visual Settings: Show IQR Fair Value Cloud, Show Statistical Box-Plot Pins, Show Signal Trigger Triangles, Show Target Projection Rays, Max Historical Setups to Display, and Show Statistical HUD Dashboard.
🟢 INTERPRETATION
The indicator combines three elements: Statistical Location, Structural Invalidation, and Available Target Space. It does not assume that every statistical extreme will reverse or that every liquidity target will be reached.
Instead, it evaluates whether a confirmed statistical reclaim has enough remaining structural space relative to its invalidation risk to satisfy the selected True R:R requirement. The goal is to make signal timing, structural risk, and available market space directly visible on the chart rather than attaching arbitrary target multiples after a signal appears.
🟢 DISCLAIMER
This indicator is designed for technical analysis, quantitative research, and educational purposes only. It does not constitute financial advice. Historical statistical relationships do not guarantee future outcomes. Always apply appropriate risk management and position sizing. Indicator

Portfolio Open Risk and Position Heat Tracker - India [SMC]WHAT THIS DOES
Position sizing tells you how much to buy on one trade. It says nothing about what happens when you are holding eight of them at once.
This tracks all your open positions together. Pick up to twenty symbols, give each one a quantity, an entry and a stop, and it prices what you are carrying: what you lose if every stop fills, which sectors that loss is concentrated in, and how much room is left before you reach the total loss you are willing to take.
TWO NUMBERS THAT ARE NOT THE SAME
Most risk calculators quietly conflate these. They answer different questions and both are worth knowing.
OPEN LOSS
what you give back from today's price down to your stops. Money currently on the table.
LOSS VS COST
what you lose measured from your entries. On a position whose stop has been trailed above cost this is zero, no matter how much open loss it still carries. A trader running trailed stops can be carrying a large open loss and no loss at all against cost. One number says exposed, the other says protected. Both are true, so the dashboard prints both.
The sample position in WIPRO shows it: stop at 172 against a 170 entry. Real open loss, zero loss against cost.
THE ARITHMETIC
Open loss = Qty x (Last - Stop)
Loss vs cost = Qty x max(0, Entry - Stop)
P&L = Qty x (Last - Entry)
Deployed = sum of Qty x Last
Room left = Max total open loss - Open loss
A position trading below its stop is counted as zero open loss and flagged "past stop", because that loss is already realised. Counting it again would flatter the total.
YOUR LIMIT, NOT MINE
You set the maximum total open loss in rupees. The default of thirty thousand is six percent of the default capital, being six trades at one percent each. That is a common starting point, not a rule from this script. Set it to what you actually run.
The bar fills toward your number. Room left translates whatever remains into a rough count of further trades at your standard risk per trade.
SECTOR CLUSTERING
Open loss is grouped by sector, taken automatically from exchange data. This exists because five positions in one sector is not five independent risks.
Total risk can look comfortable while sitting almost entirely in one group. In the sample portfolio three of five positions are Technology Services and carry half the open loss. The headline number never shows that. The sector block does.
THE POSITION TABLE
Rows sort by open loss, heaviest first, so the position you would feel most is not buried at the bottom. Note that this ordering is not P&L ordering. A stock up five percent with a trailed stop can sit last, because it has the least left on the table.
Entry, stop and last are reference prices and are shown muted. P&L and open loss are the numbers you act on and stay at full strength. A stop above cost is shown in the up colour, which is a fact about the position, not a view on the trade.
GETTING STARTED
The first five rows arrive filled with sample positions so the dashboard shows something useful before you type anything. Replace them with your own. A row counts once it has a symbol, a quantity and a stop. Entry is optional, though without it P&L and loss vs cost cannot be worked out.
Pine cannot add input rows on demand, so all twenty exist from the start and empty ones are ignored.
WHAT THIS DOES NOT DO
It does not know your real broker positions, so what you type is what it believes. It does not tell you whether any position is worth holding, whether your stops are sensible, or whether you are too concentrated. It measures. The judgement stays with you.
LIMITATIONS
Long positions only. Figures exclude brokerage, exchange and statutory charges, taxes, slippage, partial fills, and gap risk. Gap risk matters most here: if several positions gap below their stops at once, the total loss will exceed every figure shown, and no dashboard can prevent that. Open loss assumes each stop fills at its exact price. Treat it as a floor. Prices are daily closes for each symbol and update while the session is open. Positions whose symbol cannot be priced are excluded from every total and
flagged.
Educational and decision-support only. Not investment advice, and not a recommendation to buy or sell any security. Indicator

Risk/Reward Visualizer - Trade Management [Dots3Red]🎯 RISK/REWARD VISUALIZER — POSITION SIZER & OUTCOME TRACKER
A risk/reward calculator answers one question and then forgets it existed. Click three prices on your chart — entry, stop, target — and this tool draws the zones, sizes the position from your account risk, and shows the ratio plainly. But it also remembers. Every plan you set is tracked to its actual outcome, building a real record of how your own planning has played out over time.
✨ WHY THIS MATTERS
This script treats every set of levels you draw as a real plan worth remembering — not just a static suggestion.
📊 Plans Resolved: 14W / 6L Hit Rate: 70% Total R: +9.2R
That's not a backtest of a strategy. It's a running record of the actual entry/stop/target combinations you personally set on this chart and what genuinely happened to each one afterward.
⚙️ HOW IT WORKS
🖱️ Click-to-place levels — Entry, Stop Loss, and Target are set by clicking directly on the chart rather than typing numbers into a settings box. Direction is detected automatically: if your stop sits below entry, it's read as long; above entry, short.
💰 Position sizing from account risk — enter your account size and how much of it you're willing to risk per trade (as a percentage), and the script calculates exactly how large a position keeps that risk fixed regardless of how wide your stop is. The result is rounded to whatever step size fits your instrument — whole shares, or fractional units for crypto.
📏 Risk and reward zones — the space between entry and stop is shaded as your risk; the space between entry and target as your reward. Seeing both zones side by side on the chart makes a lopsided plan (all risk, little reward) visually obvious in a way a bare number doesn't.
🧾 Plan tracking — every distinct entry/stop/target combination is treated as its own plan. When price later reaches either level, the plan resolves:
• Target hit — counted as a win, and the actual R multiple achieved is added to your running total
• Stop hit — counted as a loss (–1R)
• Same-bar ambiguity (a single bar's range touches both stop and target) always resolves as a loss — the conservative, honest call when intrabar order can't be known
• Neither hit within the tracking window — dropped from the record entirely, counted as neither a win nor a loss
Setting new levels automatically starts a new plan; the previous one, if still unresolved, is simply dropped from active tracking without being force-graded.
🔒 Non-repainting — all outcome grading happens strictly on confirmed bars.
🧭 HOW TO USE
1️⃣ Set your account size and risk % first , before placing levels — this is what turns a simple price plan into an actual position size you can act on.
2️⃣ Click Entry, then Stop, then Target on the chart. The dashboard updates immediately with direction, R:R ratio, position size, and dollar risk/reward.
3️⃣ Use the zones to sanity-check the plan visually before committing — a reward zone that looks tiny next to a wide risk zone is worth reconsidering even if the calculated ratio technically clears your minimum.
4️⃣ Check your plan history periodically , not just the current plan. A single setup can look great in isolation; the accumulated hit rate and total R tell you whether your actual level-picking has been working over time.
5️⃣ Adjust the tracking window to match your typical hold time — a scalper and a swing trader need very different values for how many bars a plan should be given before it's dropped as inconclusive.
🛠️ SETTINGS
🎯 Trade Levels — Entry, Stop Loss, Target — each set by clicking on the chart
💰 Account & Risk
• Account Size, Risk per Trade (%) — drive the position size calculation
• Position Size Rounding — match this to your instrument's minimum tradable increment
🎨 Visualization
• Risk/Reward Zones, Level Labels — toggle independently
• Max Bars to Track a Plan — how long an unresolved plan stays active before being dropped
🖥️ Dashboard — show/hide, position — direction, R:R ratio, position size, dollar risk/reward, and the full plan history in one place
📝 NOTES
Only one plan is actively tracked for outcome purposes at a time — setting new levels while a previous plan is still pending drops that previous plan from the record without grading it, rather than running two plans in parallel. This is a planning and tracking tool: it does not know your actual fills, slippage, or whether you genuinely took the trade — it measures what price did relative to the levels you set, not your live trading result.
⚠️ DISCLAIMER
This is an analytical and visualization tool. It does not generate trade signals, does not execute trades, and does not constitute financial advice. Historical plan outcomes do not guarantee how any future plan will resolve. Indicator

Indicator

ICT Liquidity HunterICT Liquidity Hunter
OVERVIEW
ICT Liquidity Hunter is not another "trade the CHoCH" indicator. It is built on the same Inner Circle Trader (ICT) / Smart Money Concepts structure that most ICT traders use to enter a trade, but it uses that structure for the opposite purpose: to locate where those traders end up placing their stop-loss orders, so that level can be marked as a probable liquidity target instead of an entry signal.
CONCEPT
The vast majority of retail ICT traders execute the same textbook sequence: wait for a Change of Character (CHoCH), wait for price to return to the Order Block (OB) or Fair Value Gap (FVG) left behind by that break, and enter when price shows a clean, obvious rejection at that zone. Because this sequence is taught everywhere and followed by a huge number of traders in exactly the same way, the stop-loss orders from all those entries cluster tightly just beyond the extreme of that rejection candle - a very predictable, crowded pool of resting liquidity.
This script does not stop at marking the OB/FVG zone the way a conventional ICT indicator would. It goes one step further: it waits for the same rejection the crowd is trading, then marks the exact high or low left by that rejection candle as a "Liquidity Level" - the level where the stops of everyone who just entered on that textbook retest are most likely resting. That level, not the zone itself, is the actual point of interest: it is a probable target for a subsequent liquidity run/stop hunt, either before price resumes in the "expected" direction or as the setup for a reversal against the crowd that just entered.
In short: conventional ICT tools show you where to copy the crowd's entry. This one shows you where the crowd's stops are sitting once they've already entered - so you can plan around that liquidity instead of trading the same obvious retest everyone else is watching.
WHAT IT'S MADE OF
1. Market structure / CHoCH
The script builds an alternating (zig-zag) sequence of swing highs and lows from pivot points, filtered by a minimum size (in ATR) so minor internal noise doesn't count as real structure. A CHoCH is flagged the first time price closes back through the currently active opposite swing level since the trend last flipped - the same first break of structure a traditional ICT trader would use as their starting signal.
2. Order Blocks and Fair Value Gaps
Once a CHoCH fires, the script looks back over a configurable number of bars for:
- Order Block: the last candle of the opposite color before the impulse that caused the break.
- Fair Value Gap: a 3-candle imbalance (a gap between candle 1 and candle 3) formed during that same impulse.
Both are drawn as shaded zones - above the breakout candle for a bearish CHoCH, below it for a bullish CHoCH - exactly where a conventional ICT trader would be watching for their own entry. Only a small number of zones are kept on the chart at once, and each one expires automatically if price never returns to it within a set number of bars.
3. Rejection detection
When price returns and touches an active OB/FVG zone, the script checks the candle that touches it (or the one immediately after) for a strong, obvious rejection: a candle whose range is a multiple of the recent average range, closing decisively away from the zone - the exact kind of clean reaction that convinces the crowd to enter and place stops just beyond it.
4. Liquidity Level
A valid rejection prints a solid horizontal line - the Liquidity Level - starting at the exact high (bearish rejection) or low (bullish rejection) of that candle, extending forward in time. This is not the entry the crowd took; it is the resting-stop level just beyond it, and therefore the level most likely to get run before or instead of continuation in the "obvious" direction. Liquidity lines expire automatically after a set number of bars if price never reaches them.
5. Alerts
Two alert conditions are built in: one for a bullish rejection (liquidity marked below) and one for a bearish rejection (liquidity marked above), so alerts can be set directly from the TradingView alert dialog the moment a new Liquidity Level appears.
HOW TO USE IT
- Structure group: controls how strict the swing/CHoCH detection is (pivot lookback, minimum swing size in ATR) and how long an OB/FVG zone stays valid before it expires unused.
- Order Block / FVG group: toggle Order Blocks and/or FVGs independently, set how far back to search for them after a CHoCH, and optionally require a minimum FVG size.
- Rejection candle group: controls what counts as a "strong" rejection candle (size relative to average range, how close the close must be to the extreme of the candle) and how many liquidity lines/zones stay visible at once.
- Style group: colors for bullish/bearish OB, FVG and liquidity lines, and an optional display of the raw swing pivot points.
A typical read: let the CHoCH and the OB/FVG zone form exactly as a conventional ICT trader would expect. Once a rejection candle prints and a "Liquidity Level" line appears, treat that line - not the zone - as the point of interest: the resting liquidity from everyone who just entered on the retest. Whether you plan a position through that level, tighten risk ahead of it, or simply use it as a warning that the "obvious" move may get run first, always combine it with your own higher-timeframe context, confirmation and risk management.
NOTES
This is an educational tool for visualizing where ICT-style retest liquidity is likely to build up, based on standard market structure, order blocks and FVGs. It does not constitute financial advice and does not guarantee any outcome. Like any structure-based tool, back-test it on the instrument and timeframe you intend to trade before using it live. Indicator

3 EMA + HH/LL Structure Break [ Trend and Structure combined] v23EMA PRO V2 is a structured EMA + market-structure indicator designed for intraday trading on instruments such as XAUUSD and BTCUSD.
The system combines 20 EMA, 50 EMA and 100 EMA with 10/10 pivot-based market structure to identify trend-following and reversal opportunities.
🔹 Core EMA Logic
Trend Following BUY
100 EMA is below both 20 EMA and 50 EMA.
20 EMA crosses above 50 EMA.
The system looks for confirmation through market structure.
Trend Following SELL
100 EMA is above both 20 EMA and 50 EMA.
20 EMA crosses below 50 EMA.
The system looks for bearish structure confirmation.
Reversal BUY
Fast and middle EMA move/cross above the 100 EMA.
Used to identify potential bullish reversal conditions.
Reversal SELL
Fast and middle EMA move/cross below the 100 EMA.
Used to identify potential bearish reversal conditions.
🔹 Market Structure Confirmation
The indicator uses 10 Left / 10 Right pivots to identify:
HH — Higher High
HL — Higher Low
LH — Lower High
LL — Lower Low
The important concept is EMA signal + structure confirmation, rather than taking every EMA crossover immediately.
If the EMA signal appears before the structure break, the system waits for the corresponding HH/LL breakout candle to close.
If the structure break happens before the EMA signal, the system waits for the EMA confirmation and then looks for a neckline retest before entry.
🔹 Entry
The indicator provides:
🟢 BUY labels
🔴 SELL labels
Entry price
SL
TP1
TP2
TP3
Reversal / Trend classification
🔹 Risk Management
TP and SL are fully configurable in dollar values.
You can independently adjust:
TP1 ($)
TP2 ($)
TP3 ($)
SL ($)
Position size
🔹 Backtest Statistics
The indicator includes an internal last 500 signals performance table, displaying:
Total signals
Win rate
Wins / losses
Break-even trades
Net P/L
Profit Factor
Maximum drawdown
BUY / SELL count
Reversal / Trend count
TP1 / TP2 / TP3 hits
SL hits
Current EMA and pivot settings
⚠️ Important
This indicator is intended as a technical analysis and decision-support tool, not a guarantee of profitable trading. Backtest results can vary significantly depending on the symbol, timeframe, spread, commission, slippage and execution conditions.
Suggested starting configuration:
EMA: 20 / 50 / 100
Pivot: 10 / 10
Markets: XAUUSD / BTCUSD
Timeframes: 1M / 5M Indicator

Multi-Timeframe MA ForecastMulti-Timeframe MA Forecast
This indicator combines two things that other MA tools don't: it plots a moving average from any timeframe onto your chart using proper multi-timeframe handling, and it projects that average forward under a simple assumption, that price holds at the current value while the calculation window rolls ahead. The result is a forward view of where the MA is headed if price goes nowhere, which is a different and useful question from where the MA has been.
Why forecast a moving average
An MA's slope isn't entirely driven by "recent price action" in the vague sense traders usually mean. At any given bar, the slope is set by one comparison: the price entering the average versus the price leaving it. A rising 50-day SMA can flatten or roll over not because anything new happened today, but because the price from 50 days ago, now dropping out of the window, was unusually high or low. That effect is knowable in advance since it depends on price action that already happened.
This matters because many systematic and algorithmic strategies key off MA slope and MA crossovers as regime filters. If you can see that a large gap is about to roll out of a 200-period window, you can anticipate a slope change before it shows up on the indicator itself, rather than reacting to it after the fact.
The forecast is not a price prediction. It answers a narrower, mechanical question: given the prices already in the pipeline, what does this average do next if price simply holds still.
Why MA slope matters for support and resistance
Slope changes the character of an MA:
- Price above a rising MA: the MA tends to act as support
- Price below a rising MA: the MA tends to act as a magnet , pulling price back up toward it
- Price below a falling MA: the MA tends to act as resistance
- Price above a falling MA: the MA tends to act as a magnet , pulling price back down toward it
A forecasted slope flip is an early signal that the MA's role relative to price may be about to change.
How the timeframe handling works
Set the Timeframe higher, lower, or equal to your chart's. The average is calculated on that timeframe using TradingView's multi-timeframe request functions, so the current bar always reflects the true live value of the higher-timeframe average, including the period still forming.
When the Timeframe is higher than the chart, history is drawn as a stairstep: once a higher-timeframe period closes, its final value is drawn back across the bars of that period. This is retroactive, the value shown mid-period was not knowable until that period actually closed, and it gives the clean, stepped look most MTF overlays use. When the Timeframe is the same as or lower than the chart, there's no period to wait for, so the line simply reflects the true value on every bar as it happens.
Either way, the forecast always starts from the current, fully up-to-date value of the average.
Forecast styling is separate from the MA's
The moving average uses its own Line Thickness and MA Line Style inputs, and the forecast has a matching, independently-set Forecast Line Style. These are exposed as inputs rather than through the native Style tab because the forecast is built from a drawing object rather than a plotted series, and drawing objects can't be styled from that tab. Giving the MA its own matching inputs, rather than mixing native Style-tab controls with input-based ones, keeps both fully and consistently customizable.
Supported MA types
SMA (simple), EMA (exponential), WMA (weighted), and HMA (Hull) are supported, each forecast using that type's own real recurrence rather than a shared approximation. EMA and SMA are the cheapest to compute; WMA and HMA require tracking the full calculation window at every forecast step.
Memory limitations on extreme timeframe ratios
Pulling multi-timeframe history through TradingView's request functions has a memory cost that scales with the ratio between the chart timeframe and MA timeframe, particularly when the MA timeframe is much lower than the chart's. In practice:
- EMA has no meaningful limit, since it doesn't require historical window data
- SMA can handle roughly double the timeframe ratio or MA length that WMA and HMA can, before hitting TradingView's memory ceiling
- Very extreme combinations, for example a 1-hour MA on a weekly chart with a long length, can hit a runtime memory error
If you see a memory error, try a coarser MA timeframe, a shorter MA length, switching to EMA or SMA, or lowering the Forecast % input, all of which reduce the amount of historical data the script needs to hold.
---
Every request.security() call in this script that uses barmerge.lookahead_on does so only on a history-offset expression, per TradingView's documented pattern for retrieving higher-timeframe data without lookahead bias. No un-offset higher-timeframe value is ever requested with lookahead_on. Indicator

Geometrics - Elliott Wave Auto Counter (Impulse, ABC, Triangles)Overview
The Geometrics - Elliott Wave Auto Counter is an advanced, fully automated technical analysis tool designed to identify and plot Elliott Wave structures directly on your chart. Built strictly around the three cardinal rules of Elliott Wave Theory, this indicator takes the heavy lifting out of wave counting by dynamically tracking pivot points and projecting geometric structures in real-time.
Whether you are tracking standard motive waves, complex diagonals, or corrective structures, this script provides a clear, visual roadmap of potential market cycles.
Key Features
Impulse Waves (1-2-3-4-5): Automatically identifies valid 5-wave impulse structures. It ensures that Wave 2 does not retrace 100% of Wave 1, Wave 3 is never the shortest, and Wave 4 does not enter the price territory of Wave 1. It also calculates and displays the exact Fibonacci retracement and extension percentages on the chart.
Leading & Ending Diagonals: Detects diagonal wedge structures where Wave 4 is permitted to overlap Wave 1. The script even dives into the inner wave structures to classify whether the diagonal follows a 5-3-5-3-5 or 3-3-3-3-3 pattern.
Corrective Waves (A-B-C): Once a 5-wave sequence is completed, the script actively looks for and plots the subsequent A-B-C corrective structure.
Triangle Detection: Identifies both Contracting and Expanding triangles (A-B-C-D-E). It automatically draws the upper and lower boundary lines and projects geometric breakout targets based on the width of the initial A-B leg.
Dynamic Target Projections: Takes the guesswork out of taking profits. The script projects forward-looking target boxes for:
Wave 3 (161.8% - 261.8% of Wave 1)
Wave 5 (61.8% - 100% of Waves 0-3)
A-B-C Corrections (38.2% - 61.8% retracement of the entire 1-5 structure)
Smart Invalidation & Automatic Alt-Counts: This is a standout feature. The script plots a strict invalidation line at the start of the wave (Point 0). If the price action breaks this level, the current count is instantly marked as invalid. The script will then automatically scan historical pivot windows to find and plot a valid Alternative Count (Alt Count) and its new targets.
Customization & Settings
The indicator is highly modular. Via the settings panel, users can:
Adjust the Timeframe and Pivot Length to fine-tune the sensitivity of the ZigZag tracking.
Toggle specific structures on or off (e.g., hide Triangles if you only want to see Impulses).
Fully customize the colors and styling of lines, labels, and target boxes to fit your personal chart theme.
⚠️ Important Disclaimer
This script is a geometric counting tool based strictly on the three rigid, textbook rules of Elliott Wave. As seasoned practitioners know, real-world wave counting is highly subjective and context-dependent. Multiple valid interpretations of a chart can exist simultaneously. This indicator does not cover every possible sub-classification (like expanded/running flats or complex WXYXZ combinations) and should be used as an analytical aid alongside your own market analysis, not as a standalone buy/sell signal. Indicator

[Chrona] Opening Range Breakout Opening Range Breakout
An opening-range tool for instruments that have an opening auction. It draws the
first 15 and 30 minutes of a session as a range, marks the candle that broke it,
and projects targets measured from the broken level.
WHAT IT DRAWS
- The 15-minute and 30-minute opening range of each enabled session, as a box
whose high and low freeze when the range closes. The right edge keeps
following the last printed bar until the session ends, so the box grows with
price and never extends past it.
- An optional midline through the range.
- A tag on the candle that confirmed the break — above it on an upside break,
below it on a downside one, so the side carries the direction.
- 1R and 2R targets for the 30-minute range, measured from the broken level.
- Right-axis price tags for the levels and targets of whichever session is open.
- Optional pre-market ranges: the same opening-range construction run on the
lead minutes before a session opens.
Four sessions run independently — Asia, London, New York and COMEX — each
evaluated in its own timezone.
ORIGINALITY AND UTILITY
Multi-session opening ranges are common. These are the parts that are not, and
they are the reason this exists rather than a settings preset of something else:
- The range is built from one-minute intrabars, not from chart bars. On a
15-minute chart a chart-bar implementation cannot see inside the first bar, so
its "15-minute range" is whatever the first candle happened to be. This one
requests 1-minute data and measures the real first 15 and 30 minutes, so the
box is the same box on a 1-minute chart and on an hourly one.
- Three break-confirm modes — touch, chart close, and a 5-minute close — and the
5-minute close is computed natively from time("5") buckets rather than
requested from a higher timeframe. A higher-timeframe request returns the
developing value while the bar is still forming, which is how a break appears
and then un-appears. Nothing here repaints.
- Targets are anchored to the broken level, not to the range. A level-anchored
1R sits one range-width from the level price; a range-anchored one drifts with
whichever edge is used to measure it. The two disagree on every trade, and the
level is the price actually broken.
- Each session carries its own timezone, so daylight saving is resolved per
region rather than by one global offset. London shifting a week before New
York does not move the New York range.
- Nothing is hardcoded to 09:30. Instruments with no equity open work by typing
their real hours: XAUUSD has no cash open at all, and COMEX gold's pit open is
08:20 New York time.
- The pre-market range is derived from its parent session's own window rather
than configured separately, so the two cannot drift apart when either is
edited, and its levels stay live through the parent session — the range forms
before the open and the break lands after it.
- The break tag exists because of a specific blind spot: on a 1- or 2-minute
chart you cannot see where the 5-minute bar closed. The tag marks the candle
that carried that close.
METHOD
For each enabled session the script takes the session window you set, in that
session's timezone, and masks it to weekdays. It collects one-minute highs and
lows from the session open and freezes the extremes at 15 and 30 minutes. A
break is tested against the frozen level in the confirm mode you choose. Once
broken, targets are placed at one and two range-widths from the level, and a
retest is reported when price returns to within a tenth of a range-width of it.
Everything is evaluated on confirmed bars.
ALERTS
Break up, break down, both-sides-broken, and level retest, per session and per
range. Alerts are armed in the settings, but the script's alert calls do nothing
until TradingView has an alert of its own on this indicator with the condition
"Any alert() function call".
Two things about TradingView alerts worth knowing: they fire on the realtime bar
only, never on bars that already printed, so a break that happened before the
alert existed leaves no alert behind; and TradingView saves a copy of the script
when the alert is created, so an alert keeps running the version it was made
from. Re-create alerts after updating.
REPAINT
Nothing repaints. Every value is read on confirmed bars, higher-timeframe
requests are not used, and the 5-minute confirm lands one chart bar after the
5-minute close by construction rather than being back-dated.
LIMITATIONS
- The range needs one-minute data. How far back that data is available varies by
timeframe and by your TradingView plan, so on a lower plan the historical
boxes stop earlier than they do on a higher one. "Prior days to keep" defaults
to 1, which keeps this within the recent sessions most of the time.
- On a 1-minute chart and below there is no lower timeframe to request, so the
script falls back to the chart bars themselves — which at those timeframes are
already at or finer than 1-minute resolution.
- Sessions are only as correct as the hours you give them. The defaults are
reasonable for index futures; other instruments need their real hours typed in.
- An opening range assumes an opening. On instruments that trade continuously
with no auction, the pre-market range in particular is a borrowed idea rather
than a measured one.
This is an analysis tool, not financial advice.
Indicator

Global Cash Market Open Close Handoff SequenceGlobal Cash Market Open Close Handoff Sequence is a schedule-state transition study for configurable cash-market reference hours.
The vertical line is only the presentation layer. At each unique boundary timestamp, the script generates and consolidates scheduled OPEN, BREAK, RESUME, and CLOSE events, evaluates the configured active-market state immediately before and after that timestamp, and classifies how the tracked market schedule changes.
Instead of displaying every market event as an unrelated line, the script treats the enabled markets as one chronological system. It shows how that system activates, gains overlap, changes market identity, releases overlap, and deactivates through the trading day.
The classification engine uses schedule state only. It does not use price direction, session highs or lows, volume, volatility, external symbols, higher-timeframe data, or future price assumptions.
Core transition model
Every consolidated boundary is assigned one of the following descriptive roles:
- ACTIVATE: No configured market is active before the boundary, and one or more markets are active after it.
- OVERLAP +: The number of configured active markets increases across the boundary.
- HANDOFF: The active-market count remains unchanged, but the composition of the active-market set changes.
- OVERLAP -: The number of configured active markets decreases, while at least one tracked market remains active.
- DEACTIVATE: One or more configured markets are active before the boundary, and none are active after it.
- INTERNAL: A scheduled boundary occurs, but the configured active-market set does not materially change.
HANDOFF is intentionally separate from a normal open, close, or overlap count.
For example, if one market closes while another market opens or resumes at the same timestamp, the number of active markets can remain unchanged even though the identity of the active markets changes. The script detects that composition change and classifies it as a HANDOFF rather than treating the two events as unrelated markers.
Simultaneous-event consolidation
Events that share the same absolute timestamp are merged before they are drawn.
If two or more configured markets open, close, break, or resume at the same time, the script creates one structural boundary instead of stacking multiple vertical lines and overlapping labels at the same chart position.
The merged label lists the events that occurred at that timestamp. The transition role is then calculated from the complete configured state before and after the consolidated boundary.
This makes simultaneous events readable while preserving their individual market identities.
Split-session handling
Each market can contain one or two independently editable trading segments.
When two enabled segments are separated, the script models the market day as:
OPEN
BREAK
RESUME
CLOSE
When the two segments touch or overlap, they are automatically treated as one continuous interval:
OPEN
CLOSE
This allows split cash-market schedules, such as morning and afternoon continuous-trading periods, to be represented without creating a false break when the configured intervals are actually continuous.
Default reference schedules
The default configuration contains six editable cash-market reference schedules:
- Sydney Cash
10:00-16:00
Australia/Sydney
- Tokyo Cash
09:00-11:30 and 12:30-15:30
Asia/Tokyo
- Hong Kong Cash
09:30-12:00 and 13:00-16:00
Asia/Hong_Kong
- Xetra Main Cash
09:00-17:30
Europe/Berlin
- London Cash
08:00-16:30
Europe/London
- New York Cash
09:30-16:00
America/New_York
The default weekday setting is Monday through Friday.
Every market can be enabled or disabled independently. The displayed name, short code, IANA time zone, weekdays, first segment, optional second segment, and color are all editable.
The defaults are reference schedules rather than locked assumptions. Users can adjust them for another market, venue, research convention, or historical schedule.
Time-zone and DST handling
Each market uses its own IANA time-zone identifier.
This allows regional daylight-saving changes to be applied independently. Sydney, London, Xetra, and New York do not rely on one fixed UTC offset, and Asian markets can remain on their configured local schedules.
The chart time zone does not define the market calculations. Market boundaries are generated from each market's configured IANA time zone and placed on the chart using absolute timestamps.
The Boundary Strip has a separate readout time-zone input. Changing that input changes the displayed date and time in the panel without changing the underlying boundary timestamps.
Historical research modes
Visible range is the default research mode.
In this mode, the script rebuilds its boundary sequence around the section of the chart currently being studied. Panning or zooming the chart can therefore change the processed time window and the subset of boundaries retained for display.
The right visible bar acts as the effective anchor. This makes it possible to move to a historical period and inspect the market schedule, active-market state, previous boundary, next boundary, and handoff sequence for that period rather than only for the latest bar.
A configurable visible-span cap prevents an extremely wide chart range from creating an unnecessarily large calculation window. If the displayed range exceeds the cap, the script processes the most recent permitted portion ending at the right visible bar.
Recent days is available as an alternative mode.
Its anchor can follow:
- The right visible bar
- The latest chart bar
- The real clock
This allows the same engine to support historical inspection, dataset-relative inspection, or a clock-relative schedule view.
Future schedule projection
The script can project recurring configured boundaries beyond the effective anchor.
These projected objects represent repetitions of the selected reference schedule. They are not price forecasts, volatility forecasts, liquidity predictions, or claims that an exchange will operate normally on the projected date.
Future projection can be disabled or limited through the settings. The immediate next boundary can be emphasized with a separate color and width so that it remains identifiable without turning every future boundary into a dominant chart object.
Adaptive spread
A complete multi-market schedule can generate many boundaries across a long visible range. Drawing all of them at once would reduce the readability of both the indicator and the underlying price chart.
Adaptive spread is therefore the default line-retention mode.
When the generated boundary count exceeds the selected visual budget, Adaptive spread distributes a capped subset of already generated and classified boundaries across the displayed research span. It attempts to preserve structural variety across the global market sequence and retains the immediate next boundary when one is available.
Adaptive spread changes presentation only.
It does not change:
- The configured market schedules
- The generated event timestamps
- Simultaneous-event consolidation
- The active-market state
- The transition classification
- The Last and Next calculations
The default visible line budget is seven, providing a sparse publication-ready view while leaving price visible.
Users who need a denser local study can increase the line and label budgets or select Nearest anchor. Nearest anchor favors boundaries closest to the effective anchor rather than distributing them across the complete displayed span.
Boundary lines and labels
Lines are drawn behind the chart so that candles and price remain visually dominant.
Users can control:
- Historical and projected boundaries
- Visible line budget
- Line width
- Historical and future transparency
- Directional or uniform line styles
- Market-identity or transition-role colors
- Next-boundary emphasis
- Label visibility
- Label content
- Label placement
- Label lanes
- Minimum spacing
- Maximum label count
- Text size
- Text emphasis
- Label transparency
- Native local time in tooltips
Directional line style distinguishes single-event boundary types:
- OPEN and RESUME use a solid line
- BREAK uses a dotted line
- CLOSE uses a dashed line
- Consolidated multi-event timestamps use a solid structural line
Transition-role color mode emphasizes the change in the configured active-market state.
Market-identity color mode instead preserves the market color associated with the event. Consolidated timestamps can use a dedicated simultaneous-event color.
Labels can show:
- Transition role and event list
- Event list only
- Transition role only
Lane allocation and minimum time spacing reduce label collisions without moving the actual boundary timestamp.
Boundary Strip
The fixed Boundary Strip summarizes the effective research state.
It displays:
- ANCHOR: The timestamp at which the current state is evaluated
- ACTIVE: The configured markets active at the anchor and their count
- LAST: The most recent generated boundary at or before the anchor
- NEXT: The first generated boundary after the anchor
- COUNTDOWN: The time remaining from the anchor to the next boundary
- VIEW: The active schedule scope, retention mode, and any display-cap status
The Active row refers to the effective anchor shown in the panel. Under the default configuration, this is the right visible bar and is not necessarily the current real-world time.
The panel defaults to the lower-left area and includes adjustable bottom clearance to avoid permanent chart furniture. It can also be moved to another left or right chart position, and its text size and emphasis can be changed.
Suggested use
1. Add the indicator to an intraday chart.
2. Begin with the default settings so that the published chart and the user's first view remain consistent.
3. Read the transition role first to understand whether the configured market system is activating, gaining overlap, handing off, releasing overlap, or deactivating.
4. Read the event line below the role to identify the market-specific OPEN, BREAK, RESUME, or CLOSE events that produced that transition.
5. Use the Boundary Strip to confirm the effective anchor, active markets, previous boundary, next boundary, and remaining time.
6. Pan to an earlier period when studying historical market transitions. Visible range mode will rebuild around the displayed chart section.
7. Increase the visual budgets or switch to Nearest anchor only when a more detailed local sequence is required.
8. Edit market schedules, time zones, weekdays, and segments when researching another venue or schedule convention.
This indicator can be placed on any intraday symbol. However, its boundaries remain the configured cash-market references and do not automatically become the native trading session of the charted instrument.
Why this is a separate study
This script is not a continuous session highlighter.
A conventional session highlighter answers:
"Which session interval contains this bar?"
This script instead answers:
"What scheduled events occurred at this timestamp, and how did the configured active-market state change across that boundary?"
It intentionally does not draw session backgrounds, session boxes, opening ranges, session highs or lows, price levels, volume statistics, volatility measures, directional bias, entry signals, exit signals, targets, or strategy results.
It is also different from a generic recurring time marker.
A generic time marker places independent objects at selected times. This script constructs linked market schedules, models separated trading segments, consolidates simultaneous events, evaluates the configured state immediately before and after every unique timestamp, classifies the resulting transition, and presents the result as a chronological handoff sequence.
The focus is deliberately narrow: scheduled cash-market boundary structure and active-market identity changes.
Limitations and interpretation
This is a configurable reference-schedule study, not a live exchange-status service or an official exchange calendar.
The script does not automatically model:
- Exchange holidays
- Early closes
- Delayed openings
- Unscheduled closures
- Security-specific halts
- Historical changes to exchange schedules
- Opening or closing auction phases
- Instrument-specific pre-market or post-market sessions
The Sydney 10:00 and 16:00 defaults are rounded regular-market reference boundaries. Security-level opening sequencing and the later closing auction are outside the model.
The Hong Kong defaults represent the morning and afternoon continuous-trading intervals ending at 16:00. The subsequent closing auction is outside the model.
The remaining schedules likewise represent editable main cash-session references rather than every auction, extended-hours period, or product-specific rule.
Users should verify and edit the reference hours when exact exchange-calendar treatment is required.
Market codes should remain unique. The HANDOFF comparison uses the configured active-market codes to identify changes in composition. Assigning the same code to different enabled markets can make an identity change ambiguous.
The script requires an intraday chart. On a daily or higher timeframe, the Boundary Strip reports that an intraday timeframe is required.
Projected boundaries are recurring schedule references only. They do not predict price direction or confirm that a market will open on a holiday or exceptional date.
ACTIVATE, OVERLAP +, HANDOFF, OVERLAP -, DEACTIVATE, and INTERNAL are descriptive schedule classifications. They are not buy signals, sell signals, entry instructions, exit instructions, or assessments of future market behavior.
The script does not contain strategy orders, backtesting logic, performance statistics, or alert conditions.
The source code is published openly so users can inspect, verify, study, and modify the schedule and visualization logic. Indicator
