Index Lead Lag [BMT]Index Lead Lag
Which of NQ, ES, YM and RTY is leading, and specifically whether NQ is. All four are measured from one shared anchor so the differences between them are relative strength, not four unrelated returns; vertical order in the pane is the ranking and a crossover is a change of leadership. Beta-adjust vs ES answers the harder question: is NQ leading by more than its beta to ES already implies?
What it draws
One line per index: its percent change from the anchor bar, on the chart's own timeframe. The gap between NQ and ES is filled, cyan while NQ is ahead and neutral while it is not, so the pane lights up on the state you are watching for. A dashed zero line, a vertical line at the anchor bar, and faint bands on the bars that were earlier anchors, so a reset is visible as it happens.
The anchor
Measure picks the bar every index is measured from. All four always share it.
Auto (default) chooses from the chart timeframe: session open under an hour, week open intraday above that, month open on a daily chart, quarter open above. The table's Ref cell shows what it resolved to.
Session open , Prior close , Week open , Month open , Quarter open . Each resets on its boundary, so the pane reads as leadership within the period to date. The gap between Prior close and Session open is the overnight move.
N sessions : the close N daily sessions ago. Rolling, and the same thing on every chart timeframe.
ES swing low / ES swing high : the lowest low or highest high ES has printed in the range on screen, so it reads as "since the market turned, who led?". Pan or zoom and it re-resolves to the new view.
Fixed date : by default the current session's open, rolling forward each day; turn that off to pin a date with the date picker.
The period anchors are read as prices (the open of the current day, week, month or quarter, from a higher-timeframe request) rather than counted back as bars, so there is no history-buffer limit on how far back an anchor can sit.
Beta-adjust vs ES
NQ's beta to ES has run about 1.67, so NQ beats ES on nearly every up day whether or not it is leading, and zero is the wrong threshold on a plain difference. With Beta-adjust on, each index has beta times the ES move subtracted, leaving a residual: zero means it moved exactly as its beta implies, above zero is genuine leadership, below zero is a quiet failure even on a green day. ES sits flat on zero by construction, and the NQ-ES fill becomes the residual itself.
Beta is the ordinary least squares slope of each index against ES over a settable window (90 bars by default) of the chart's own timeframe, fitted on the bars before the one being scored so a bar cannot explain itself away. The window applies with Beta-adjust off as well, because the markers, ribbon and chart tint are built from the residual either way.
Divergence markers
A small triangle at the top of the pane on any bar where NQ sits beyond a threshold above (green, leading) or below (red, lagging) the path its beta implies. Hover one for its sigma and a one-line reading. The threshold is in standard deviations of where the residual could have drifted by now under chance, per-bar noise times the square root of bars since the anchor, so early in a period it takes less and late in a period it takes more, rather than one yardstick set by the period's average. The sigma value is also in the data window.
Ribbon
With the index lines off, the pane collapses to a strip of dots and the table: green while NQ beats its beta, red while it misses it, grey between, or coloured by the current leader instead, which is gated on the leader-to-laggard spread being wider than its recent average so it does not flicker while the four are bunched. The same message at a fraction of the weight, in a pane you can shrink to a strip.
The chart symbol
Whatever symbol the chart is on gets its own column, run through the same machinery but against NQ rather than ES, so it reads as "is this name adding something of its own beyond how much more it moves than the Nasdaq". Its lead is marked confirmed only when the name is also at a period high NQ has not made: beating a beta while quiet is a read that inverts by regime, and the upside leg is the half that holds. A conditional profile shows what the name has averaged while NQ was leading its own beta versus while NQ was lagging, so a wide gap says it rides megacap leadership and two similar numbers say the index regime tells you nothing about it. An optional tint paints the price chart green or red by the symbol's state. Turn the column off on an index chart, where it restates one you already have.
Status table
Columns sort strongest first, so the table reads left to right as a ranking and a change of column order is the signal. Each column shows the value and, under Beta-adjust, the beta it was measured against. Held counts bars since the leader last changed; Ref names the anchor in force. The leader-to-laggard spread is on the status line. Location and font size are inputs. RTY can be excluded, since its correlation to ES is lower and it reaches the extremes on idiosyncratic moves rather than leadership.
Colors
Red and green are avoided for the lines on purpose, since on a chart they already mean down and up and a red leader reads as a falling index. The four hues are held close in brightness so no index visually outweighs another, ES the neutral one because it is the benchmark, and the set flips with the chart background.
Notes
Each index is a handful of requests: its close on the chart timeframe; its session open, prior close and N-sessions-ago close in one daily request; and the week, month and quarter opens. The higher-timeframe requests use lookahead on, which is safe for an open or for the close of a session that has already ended. Everything else, beta included, is computed on the chart's own bars. Индикатор

ICone buy and sell with smc# ICone v2.6 — Complete Trading System (Investment Circle)
ICone turns your chart into a full decision-making system: quality-filtered signals, automatic risk/reward visualization, smart money concepts, volume analysis and macro context — all in one tool, designed so that even beginners instantly understand what to do.
**🎯 One clear instruction — never guess again**
The engine trades three setup types: trend continuations (pullback-to-MA20 with momentum, volume and multi-timeframe confirmation), breakout-retest patterns from compression, and liquidity sweeps (confirmed false breakouts traded as reversals). Every setup is scored 0–100 and gated by the daily trend. The chart stays clean — you only see **ENTRY LONG / ENTRY SHORT** where a position is actually taken. When flat, a **WATCHING label** tells you exactly what the engine is waiting for.
**🟥🟩 Risk/Reward painted on the chart**
The moment a trade opens, the entire plan is drawn automatically: a **red zone** from entry to stop-loss (your risk) and **green stepped zones** up through TP1–TP4 (your reward) — like TradingView's position tool, but automatic on every signal. Lines carry R-multiples (−1R, +1R… +4.5R) and sell percentages ("TP1 – SELL 25%"). The stop moves to break-even after TP1 and trails after TP2. An optional **ADD-ON level** at −0.5R marks where to scale in. All graphics are cleaned up when the trade closes. Colors and opacity are fully customizable.
**💳 Trade Card in real money**
A compact card shows the trade in currency, not just percent: stake, risk to SL, potential at TP4, risk/reward ratio and live P/L — updating in real time. A gold **NEXT TARGET flag** points at the current objective and counts down the distance.
**🧭 Live Position Guide**
While in a trade, the guide reads the chart and escalates plain-language advice — *"Sell 25% now" → "Sell 75%" → "Close everything"* — with the reason (momentum fading, false breakout against you, macro turning). It patiently waits until TP1 is reached before advising exits, letting winners breathe.
**🌍 Gold Macro Score (−100 to +100)**
Fourteen weighted drivers — real yields, DXY, Fed liquidity, ETF flows, miners, silver, credit, VIX — compressed into one verdict from STRONG BULL to STRONG BEAR, vetoing trades that fight the macro tide.
**📊 Full smart-money context**
Market structure (HH/HL, BOS/CHoCH), buy/sell zones (order blocks), iFVG, PDH/PDL/PWH/PWL, session highs/lows, liquidity pools, yesterday's POC and a side volume profile with the highest-volume node highlighted.
**🖥️ Beginner-friendly dashboard**
A wide panel that opens with the answer everyone wants: **"WHAT TO DO RIGHT NOW"** — followed by market regime, signal strength, all timeframes in %, the macro score and a multi-asset overview. Every row explains itself on hover.
**⚙️ One-click profiles & alerts:** "Gold optimized" and "Index optimized" apply the full tested configuration instantly. A single alert covers entries, take-profits, warnings and advisor actions.
*Past performance never guarantees future results. Always forward-test on your own instrument and timeframe before trading live. Not financial advice.*
Стратегия

Forward P/E Rolling Z-ScoreThe Forward P/E Rolling Z-Score is an advanced fundamental-technical hybrid indicator designed to evaluate equity valuation extremes. By standardizing forward price-to-earnings (P/E) ratios into a rolling statistical Z-score, this tool helps investors identify when a stock or index is statistically overvalued or undervalued relative to its own historical baseline. Unlike traditional static P/E multiples that fail to account for shifting market regimes, this indicator dynamically measures standard deviation shifts over a rolling lookback period. Furthermore, it features a built-in historical performance tracker that automatically measures forward returns, win rates, and trigger counts across multiple time horizons (1-Month, 3-Month, 6-Month, and 1-Year) based on user-defined threshold crossings.
Key Features
Dynamic Valuation Z-Score : Calculates a rolling mean and standard deviation of forward P/E ratios to measure statistical deviation from the norm.
Optional Smoothing: Apply a moving average (SMA or EMA) to the raw Z-score to filter out high-frequency noise and reduce false signal whipsaws.
Automated Performance Table: Displays a real-time analytics matrix on the chart tracking historical forward returns, win percentages, and total sample triggers since a customizable start date.
Multi-Horizon Tracking: Evaluates signal efficacy across 4 distinct forward windows: 1 Month (21 bars), 3 Months (63 bars), 6 Months (126 bars), and 1 Year (252 bars).
[* ]Visual Extremes Shading : Automatically highlights expensive and cheap valuation zones on the chart background for quick visual identification.
Flexible Signal Triggers: Customize your directional bias with selectable cross modes (Cross Over or Cross Under) and adjustable standard deviation thresholds.
Inputs & Customization
Performance Tracking Start Date: Set the historical anchor date to begin tracking backtested signal performance.
Z-Score Settings : Lookback Period (Bars) defines the historical window for mean and standard deviation calculations (default: 60); Signal Threshold & Direction defines the standard deviation trigger levels and whether to track crosses above or below the threshold; Annualize EPS automatically projects quarterly estimates into annualized figures.
Moving Average Smoothing: Allows you to select between EMA or SMA, and adjust the length.
Visuals: Toggle extreme zone background shading and select whether shading/signals rely on raw or smoothed Z-scores.
Performance Table: Customize table placement (Top Right, Top Left, Bottom Right, Bottom Left) or toggle it entirely.
How to Use
Valuation Assessment: Monitor the lower pane oscillator. Values above +/- 2 indicate statistically expensive conditions, while values below your set threshold indicate attractive, cheap valuations.
Strategy Optimization: Use the on-chart performance table to inspect how historical signals have performed over various forward horizons to gauge the predictive edge of your chosen threshold.Disclaimer: This indicator is for educational and informational purposes only and does not constitute financial advice. Индикатор

5-Minute Bias + Level + Reaction Breakout Scalp5-Minute Reaction Breakout Scalp
A mechanical, single-timeframe trend-continuation tool: bias → key level → reaction candle → breakout entry, with a built-in daily trade cap.
Overview
This indicator automates a simple, rules-based day-trading approach: trade only in the direction of the current 5-minute structure, wait for price to react at the most recent key swing level, and enter on a confirmed breakout of that reaction candle with a fixed risk/reward target. It is intentionally minimal by design — one setup, one direction at a time, and a configurable cap on how many new trades it will flag per day.
It is built for fast intraday charts (5-minute is the intended timeframe, though it will run on any timeframe) and works on futures, forex, or any liquid instrument with clean intraday structure.
How It Works
1. Bias — The script tracks confirmed swing highs and swing lows. Bias flips to bullish when price closes above the most recent swing high, and to bearish when price closes below the most recent swing low. No trades are considered while bias is neutral.
2. Key Level — In an uptrend, the script watches the most recent swing low (support). In a downtrend, it watches the most recent swing high (resistance). This level is plotted directly on the chart.
3. Reaction — When price trades within a configurable ATR-based tolerance of the key level and prints a candle that closes back in the direction of the bias, the setup "arms." An optional filter can require a genuine rejection wick before a candle counts as a valid reaction.
4. Breakout Entry — Once armed, the script waits for price to break the high (long) or low (short) of that reaction candle. You can choose whether this triggers immediately on a wick, or only on a confirmed bar close.
5. Risk Management — A stop is placed beyond the reaction candle/key level (with a small ATR buffer), and a target is calculated as a configurable multiple of that risk (default 1.5R). The script tracks the trade to its stop or target and keeps a running daily win/loss count.
6. Daily Cap — A configurable maximum number of new trades per day (default: 1) keeps the tool aligned with a "one setup, done" mindset rather than encouraging overtrading.
Key Features
Automatic bias detection from swing structure
Dynamic key level plotted on the chart
Reaction-candle detection with optional wick-rejection filter
Configurable breakout confirmation (wick vs. close)
Auto-calculated stop and target lines drawn on the chart
Daily trade cap with live win/loss tracking
On-chart status dashboard (bias, setup status, active trade, trades today, wins/losses)
Alerts for both the reaction event (setup armed) and the confirmed breakout entry (BUY/SELL)
Inputs
Swing Pivot Length — sensitivity of the swing-high/low detection that drives bias and the key level
ATR Length / Level Proximity Tolerance — how close price must come to the key level to count as a reaction
Require Rejection Wick — optional stricter reaction filter
Breakout Confirmation — wick break (immediate) or close break (confirmed)
Max Bars to Wait for Breakout — how long an armed setup stays valid before being discarded
Reward Multiple (R) and Extra Stop Buffer — risk/reward configuration
Max New Trades per Day — daily trade cap
Full display controls for levels, reaction markers, trade lines, labels, and the dashboard
Alerts
Bullish Reaction at Support / Bearish Reaction at Resistance — fires the moment a setup arms, before any breakout
Any Reaction (Long or Short) — combined version of the above
Reaction Breakout BUY / Reaction Breakout SELL — fires only once the breakout is confirmed and a trade is actually signaled
How to Use It
Wait for the dashboard to show a clear bias. When a "Reaction" label appears at the plotted key level, the setup is armed — this is your cue to start paying attention, not an entry itself. An entry is only signaled once the breakout triangle/label appears, at which point the stop and target lines show the trade's risk/reward. Once the daily trade cap is reached, the script will not flag further entries until the next session.
Important Notes
This script is a mechanical translation of a discretionary trading concept into a fixed rule set. It does not predict the market, and past behavior of any rule-based system is not a guarantee of future results. Markets can chop, gap, or trend in ways that produce false signals, and no combination of settings eliminates that risk. This is provided for educational purposes only and is not financial advice — always test on a demo account or with a replay tool, and manage your own risk before trading live. Индикатор

PRO TREND BOX
PRO SMC 2 MACD is a multi-confirmation market analysis indicator designed to analyze price action candle by candle. Instead of relying on a single indicator, it combines two MACD systems, EMA trend structure, trend path, market structure, Break of Structure (BOS), support/resistance and supply/demand areas to identify potential bullish and bearish opportunities.
The purpose of the indicator is not simply to display BUY and SELL labels. Every signal is generated from a combination of market conditions, allowing traders to understand why a particular candle receives a bullish, bearish, or neutral interpretation.
---
🟢 BUY SIGNAL — Complete Reason
When a BUY signal appears, the indicator looks for several bullish confirmations.
1. MACD 1 — Short-Term Momentum
The first MACD analyzes shorter-term momentum.
When MACD 1 becomes bullish, it suggests that buying momentum is increasing and buyers are beginning to gain control over the short-term price movement.
2. MACD 2 — Larger Momentum Confirmation
The second MACD uses slower settings and therefore provides a broader momentum confirmation.
When both MACDs point upward at the same time, the probability of the bullish setup being stronger increases compared with relying on only one MACD.
3. EMA 20 Above EMA 50
When the 20 EMA is above the 50 EMA, short-term price momentum is stronger than the medium-term trend.
This supports the idea that the market is developing a bullish structure.
4. EMA 50 Above EMA 200
The 50 EMA and 200 EMA are used as a major trend filter.
When:
EMA 20 > EMA 50 > EMA 200
the overall market structure is considered strongly bullish.
5. Trend Path
The Trend Path follows the underlying price direction and helps visually identify whether the market is moving upward or downward.
A rising Trend Path supports bullish conditions, while a falling Trend Path supports bearish conditions.
6. Market Structure
The indicator observes important swing highs and swing lows.
When price begins creating:
Higher Highs + Higher Lows
it indicates that buyers are gaining structural control.
7. Bullish BOS
A Bullish Break of Structure (BOS) occurs when price breaks above an important previous swing high.
This can indicate that buyers have overcome a previous resistance level and that the market structure may be continuing upward.
8. Support / Demand Area
If bullish momentum develops near an important support or demand area, the setup receives additional structural support.
This is important because the indicator is not only looking at momentum—it is also considering where the price is trading.
9. Final BUY Confirmation
When multiple conditions align:
Bullish Momentum + Bullish Trend + Bullish Structure + Support/Demand + BOS
the candle can receive a BUY confirmation.
---
🔴 SELL SIGNAL — Complete Reason
When a SELL signal appears, the indicator looks for the opposite conditions.
1. MACD 1 — Bearish Momentum
MACD 1 moves below its signal line, indicating that short-term selling momentum is increasing.
2. MACD 2 — Bearish Confirmation
MACD 2 also confirms bearish momentum.
When both MACDs agree, the bearish setup receives stronger momentum confirmation.
3. EMA 20 Below EMA 50
When the 20 EMA moves below the 50 EMA, short-term momentum is weaker than the medium-term trend.
This supports a bearish environment.
4. EMA 50 Below EMA 200
When:
EMA 20 < EMA 50 < EMA 200
the broader trend is considered bearish.
5. Falling Trend Path
A declining Trend Path supports the idea that sellers are controlling the current market direction.
6. Bearish Market Structure
The indicator observes whether price is forming:
Lower Highs + Lower Lows
This structure suggests that sellers are gaining control.
7. Bearish BOS
A Bearish Break of Structure occurs when price breaks below an important previous swing low.
This can indicate that sellers have successfully broken a structural support level.
8. Resistance / Supply Area
When price reaches an important resistance or supply area and bearish momentum develops, the setup receives additional confirmation.
9. Final SELL Confirmation
When multiple bearish conditions align:
Bearish Momentum + Bearish Trend + Bearish Structure + Resistance/Supply + BOS
the candle can receive a SELL confirmation.
---
⚪ NO TRADE — Why Some Candles Have No Signal
A professional system should not force a BUY or SELL signal on every candle.
A candle may remain neutral when:
MACD 1 is bullish but MACD 2 is bearish
MACD 1 and MACD 2 are conflicting
EMA 20 and EMA 50 are moving sideways
Price is trapped between support and resistance
Market structure is unclear
No valid BOS has occurred
Price is moving sideways/choppy
Buyers and sellers have similar strength
The trend is not sufficiently confirmed
In these situations, the safest interpretation is:
NO CLEAR CONFIRMATION → WAIT
---
🧠 Candle-by-Candle Decision Process
The indicator follows a structured process:
1. Price Candle
↓
2. Momentum Analysis
↓
3. MACD 1 Confirmation
↓
4. MACD 2 Confirmation
↓
5. EMA Trend Analysis
↓
6. Trend Path
↓
7. Market Structure
↓
8. BOS / Structural Break
↓
9. Support, Resistance & Zones
↓
10. Final BUY / SELL / NO TRADE Decision
This makes the indicator more than a simple crossover system. It attempts to combine momentum + trend + structure + location into one trading framework.
---
⭐ Signal Strength Concept
🟢 Strong Bullish Environment
2 MACD Bullish + EMA Bullish + Higher High/Higher Low + Bullish BOS + Demand/Support
🔴 Strong Bearish Environment
2 MACD Bearish + EMA Bearish + Lower High/Lower Low + Bearish BOS + Supply/Resistance
🟡 Weak / Uncertain Environment
MACD Conflict + Sideways EMA + No Clear Structure
➡️ Wait for confirmation.
---
⚠️ Important
This indicator provides technical-analysis signals, not guaranteed predictions. A BUY or SELL signal represents a combination of programmed conditions and does not guarantee that price will move in the expected direction. Proper risk management, confirmation and independent analysis are still important. Индикатор

Impulse Candle Acceptance GuardA large candle is easy to spot. The harder question is whether the market accepts it.
Impulse Candle Acceptance Guard follows unusually forceful candles through a defined sequence: detection, continued holding, efficient extension, rejection, full reversal, or an unresolved timeout. It freezes the original candle’s range and ATR reference so later price action is judged against the event that started the observation.
VISUAL GUIDE
• I+ / I− — A bullish or bearish impulse candle entered observation.
• Teal or red zone — The frozen high-low range of the impulse candle.
• Orange line — The acceptance and rejection boundary inside the frozen range.
• Blue line — The minimum extension required beyond the impulse candle.
• A+ / A− — The move satisfied the hold, extension, and path-efficiency rules.
• R — A confirmed close crossed the acceptance line against the impulse.
• X — A confirmed close crossed the opposite edge of the entire impulse candle.
• T — The observation window ended without another terminal result.
The script is intentionally chart-first: it uses no table and has no dependency on another indicator.
1 — DETECT THE IMPULSE
The default setup requires the candle’s range to reach at least 1.5 times the ATR measured on the previous completed bar. Its real body must occupy at least 60% of the candle’s range, and the close must finish within the outer 20% in the direction of the move. Zero-range candles cannot qualify.
An optional volume filter requires current volume to exceed a configurable multiple of its moving average. It is disabled by default so the script also remains usable on symbols without meaningful volume data.
2 — FREEZE THE EVENT
At the confirmed close of a qualifying candle, the script freezes the impulse high, low and close; ATR from the bar immediately before the impulse; the acceptance line inside the impulse range; and the required extension beyond the impulse extreme. These levels remain fixed throughout the observation. Only one episode can be active at a time.
3 — MEASURE ACCEPTANCE
Acceptance requires all three default conditions:
1. Two consecutive closes remain beyond the orange acceptance line in the impulse direction.
2. Price reaches at least 0.25 frozen ATR beyond the impulse high or low.
3. Follow-through efficiency is at least 45%.
Follow-through efficiency compares directional progress from the impulse close with the cumulative close-to-close path traveled after it:
efficiency = max(0, directional progress) ÷ cumulative path × 100
A direct continuation produces a high value. Repeated back-and-forth movement increases the path without producing equal progress and lowers the value. The efficiency value is available in TradingView’s Data Window while an episode is active.
WORKED EXAMPLE
Assume a bullish impulse has a low of 100, a high of 110, a close of 109, and a frozen ATR of 4.
• Acceptance line: 100 + 50% × (110 − 100) = 105
• Required extension: 110 + 0.25 × 4 = 111
If the next two candles close above 105, price reaches 111, and directional progress represents at least 45% of the traveled path, A+ is printed. A close below 105 produces R. A close below 100 produces X and takes priority over the ordinary rejection label.
EVENT PRIORITY AND CONFIRMED-BAR BEHAVIOR
Full reversal has first priority, followed by acceptance-line rejection, acceptance, and timeout. An otherwise valid acceptance on the final permitted bar is recorded before timeout. Wicks alone do not reject or fully reverse an episode; those outcomes require confirmed closes.
Markers and state transitions update only after a candle closes. The script uses no future bars, pivot backdating, or lookahead requests.
USAGE AND LIMITATIONS
The mirrored rules operate on bullish and bearish candles across stocks, cryptocurrencies, futures, and forex. Use standard candles when interpreting the price-based rules. Thresholds describe a rule set rather than probabilities, and their meaning changes with symbol and timeframe.
Acceptance means that the specified conditions were observed; it does not guarantee continued movement or establish a profitable strategy. The indicator does not place trades, calculate position sizes, or model fees, slippage, gaps, liquidity, or execution. Historical results can change when settings, available history, or source data change.
BotTradeLab — Human judgment, AI-assisted analysis. Индикатор

Pivot Rays [BMT]Pivot Rays
Horizontal rays from every pivot high and low that price has not yet taken out, on the chart timeframe and up to three higher ones, tagged by timeframe, plus the all-time high. Only the levels inside the price range on screen are drawn, so the rays never stretch the chart's auto-scale, and a level disappears the moment price trades through it.
What it draws
A pivot high is a bar whose high is not exceeded by any of the N bars to its left or right (N is the Bars left / right input, 5 by default); a pivot low is the mirror. Each confirmed pivot becomes a horizontal ray from the bar that made it to the right edge of the chart.
The rays are rebuilt on every tick of the last bar from a stored list of pivots, so what you see is always the current set: rays appear as price approaches a level or as you scroll it into view, and leave when the level is broken or scrolls out.
Timeframes
Four rows: the chart timeframe and three higher ones, preset to 4H, D and W. Each row has its own on/off switch, timeframe, tag and line width. A row whose timeframe is not above the chart's is ignored; a row equal to the chart's lends its tag to the chart pivots instead, so a daily chart still prints D on its own pivots. Chart-timeframe pivots carry no tag by default; give the row a tag if you want one.
Pivots at the same price on several timeframes are one level, not three: they merge into a single ray whose tag lists every timeframe it belongs to, for example "D 4H". The merged ray starts at the bar of the lowest timeframe in the group, because that is the exact bar: a daily pivot is only known to the resolution of the daily bar, and on a 5-minute chart that is the day's open, hours before the candle that actually made the high. A merge tolerance in ticks (0 by default) widens what counts as the same price.
Which pivots are drawn
Three modes.
Visible price range (default): only levels between the lowest low and highest high of the bars currently on screen. The range is measured from the bars alone, never from the drawings, so nothing is ever drawn outside the candles' own span and Reset chart view fits the candles rather than a distant level. The set follows every scroll and zoom.
Within N ATR : levels within N chart-timeframe ATRs of the current close (ATR(14) x 5 by default), whether on screen or not. Higher-timeframe pivots are measured against the same chart ATR.
Both : on screen and near price.
A cap on the number of rays keeps the nearest to price when more than that pass the filter.
Broken pivots
A pivot is broken when price trades through it: a wick beyond the level by default, or a close beyond it by input (the close test runs on bar close only, so a live bar does not flicker). A broken pivot is removed. Because every break removes a level, the stored set holds only the pivots price has never taken out, the staircase of highs above and lows below, and stays small however long the chart is.
The most recent break stays on as a dashed, fainter ray so the level just lost or reclaimed is still in view, and is dropped at the close of the period it happened in, daily by default: a level taken out during Tuesday's session shows dashed through Tuesday and is gone at the daily close. On a chart at or above that timeframe it lasts for the break bar only. The count is of break events, not pivots, so every pivot broken by the same bar stays or goes together. Both the expiry timeframe and how many recent breaks to keep are inputs; the dashed ray can be turned off.
All-time high
Its own dotted, heavier ray tagged ATH. The value comes from the symbol's monthly series, which TradingView serves back to the first bar it has for the symbol whatever the chart timeframe, combined with the loaded bars for the open month, so it is the real all-time high on a 5-minute chart, not the high of the bars loaded. On a continuous futures symbol it is the high of that continuous series, adjusted or not as the chart is set. Loaded bars is available as an alternative source. The ATH obeys the same filter as the pivots by default, so it shows when you scroll or zoom out far enough to include it; an input draws it always. A pivot high at the ATH price is left to the ATH ray rather than drawn twice.
Labels
A tag at the pivot bar by default, above a high or below a low (the empty side, by definition of a pivot), so it lands in the same place at any zoom. Right edge hangs the tag from an anchor a settable number of bars past the last bar; that number has to match the chart's right margin, which is a pixel width and so a different number of bars at every zoom. Text size, and whether the price is appended, are inputs. Each tag's tooltip gives the timeframes and the pivot's date.
Theme
Auto reads the chart background and picks the muted text gray of the light or dark theme for the rays, at a default 30% transparency so they sit behind the candles, with the theme's primary text color for the tags. The dashed broken ray is fainter by a settable amount. Custom exposes the ray, ATH and label colors.
Notes
Higher-timeframe pivots are one request.security call per row, asking for the previous higher-timeframe bar's pivot with lookahead on. That is the standard non-repainting form: a pivot is stored once the higher-timeframe bar that confirms it has closed, and never changes afterwards. Chart-timeframe pivots confirm N bars after the pivot bar, as pivots do. The ATH is one more request on the monthly series.
Because the chart timeframe's pivots are stored from the bars loaded on the chart, a higher-timeframe pivot older than the chart's first bar is drawn from the left edge, with its true date in the tooltip. Индикатор

GEX Levels v3 [Barrett]GEX Levels v3 draws options gamma exposure (GEX) levels for SPY and QQQ as labeled horizontal lines, across three time horizons from a single input.
WHAT IT SHOWS
- Flip: the price where dealer gamma changes sign. Above it, moves tend to be dampened; below it, moves tend to be amplified.
- CW / PW: call wall (heaviest call strike, overhead ceiling) and put wall (heaviest put strike, floor).
- P1 / P2: positive-gamma resistance strikes above price. PS1 / PS2: support strikes below price.
- N1 / N2: negative-gamma strikes where moves tend to accelerate.
- AG1 / AG2: high absolute-gamma strikes that price tends to stick to.
- MP: max pain. EM+ / EM-: the expected-move band.
- HVL: highest-volume strike. FC: full-chain gamma flip.
HOW IT WORKS
The levels are calculated outside TradingView from the full options chain and entered as one comma-separated string. The indicator parses that string and draws each level with its label. A 0 in any slot means that level is not present and is skipped.
String format: 0DTE (16 values) | WEEKLY (10 values) | MONTHLY (10 values)
0DTE order: P1,P2,PS1,PS2,N1,N2,AG1,AG2,Flip,MP,EM+,EM-,CW,PW,HVL,FC
WEEKLY / MONTHLY order: P1,P2,N1,N2,AG1,AG2,Flip,MP,EM+,EM-
HOW TO USE
1. Add the indicator to a SPY or QQQ chart.
2. Open settings (gear) and paste the level string into "All Levels (String)".
3. Use "Active View" to show 0DTE, WEEKLY, MONTHLY, or ALL.
4. Use the SPY string on SPY and the QQQ string on QQQ. The levels change daily.
WHY IT IS DIFFERENT
One input loads three expiry horizons at once. A level that appears on 0DTE, weekly, and monthly together is being defended across expirations, and those stacked levels are usually the most significant of the day.
These levels are for reference only and are not trade signals. Индикатор

Индикатор

Trend Target Ribbon [BOSWaves]Trend Target Ribbon - ALMA Conviction Trend Detection with Integrated Structure-Based Position Planning and R-Multiple Target Tracking
Overview
Trend Target Ribbon is an ALMA-based trend identification system that combines slope-normalized momentum confirmation with standard deviation band validation to determine trend state, and automatically generates a complete position planning framework on each trend flip including a structure-derived stop loss, up to four R-multiple take profit targets with proximity highlighting, and a risk zone visualization that tracks target hits and stop events throughout the position's active lifecycle.
Instead of simply marking trend direction, each trend flip immediately produces a fully structured trade plan anchored to the current bar's close as entry and the recent swing structure as stop loss. Risk is calculated dynamically from the swing extreme within the configured lookback, clamped between ATR-based minimum and maximum bounds, and used to project equally-spaced R-multiple targets that extend forward for the configured projection length. As price develops, targets glow brighter as price approaches them, mark with a checkmark when reached, and the entire position freezes with a historical record when the next trend flip occurs.
This creates a trend system that bridges signal generation and trade planning within a single indicator. The ALMA gradient ribbon communicates conviction intensity through its width and opacity, adapting continuously to the strength of the slope and the distance of price from the baseline. The candle gradient reinforces conviction on every bar. And the position framework provides an immediate, fully calculated trade structure from entry through all targets without requiring manual level calculation on each new trend signal.
Price is therefore evaluated not just for its directional trend state but for its position within a dynamically constructed risk-reward framework that updates automatically with each new trend confirmation.
Conceptual Framework
Trend Target Ribbon is founded on the principle that a trend system should do more than identify direction — it should translate each directional signal into a complete, immediately actionable trade framework where entry, risk, and target levels are derived from measurable market characteristics rather than arbitrary fixed distances.
Traditional trend indicators produce a signal that the trader must then manually convert into a trade plan by selecting entry price, calculating stop placement, and choosing target distances. This framework eliminates that gap by automating the complete transition from signal to trade plan on each flip, using swing structure for stop placement and the resulting risk distance as the universal unit for all target projections. Every parameter of the trade plan is therefore grounded in the instrument's actual price behavior rather than fixed indicator values.
Three core principles guide the design:
Trend confirmation should require simultaneous slope significance and price displacement beyond a standard deviation band, ensuring signals reflect genuine directional momentum rather than minor price oscillations around the ALMA baseline.
The gradient ribbon width and opacity should scale continuously with trend conviction derived from slope magnitude and distance from the ALMA, communicating the strength of the current trend visually rather than switching between binary active and inactive states.
Each trend flip should immediately generate a complete position framework with structure-derived stop loss, R-multiple targets, and active tracking of target proximity and hit status, translating the directional signal into a fully structured trade plan without manual intervention.
This shifts trend analysis from directional signal generation into an integrated signal-to-plan system where every trend confirmation produces both visual conviction context and a calculable trade framework simultaneously.
Theoretical Foundation
The indicator combines Arnaud Legoux Moving Average calculation for trend baseline, standard deviation band construction for displacement confirmation, ATR-normalized slope scoring for momentum significance, conviction scoring from slope and distance for gradient scaling, swing structure lookback for stop loss derivation with ATR clamping, and a multi-array position management system that tracks active and historical positions with target proximity gradients and hit state tracking.
The ALMA provides a low-lag weighted baseline with configurable offset and sigma parameters that control the balance between responsiveness and smoothness. Slope is measured as the ALMA change over the configured bar count normalized by ATR, producing a dimensionless score that reflects momentum strength independently of the instrument's price scale. The trend flip requires slope to exceed the minimum threshold in the signal direction while price simultaneously closes beyond the ALMA plus deviation band, ensuring both momentum and displacement conditions are satisfied. The conviction score combines double-weighted slope with distance-weighted separation, mapping to the gradient transparency of all ribbon fill layers simultaneously.
Four internal systems operate in tandem:
ALMA Trend Engine : Calculates the ALMA with configurable length, offset, and sigma, measures the normalized slope over the configured lookback, derives deviation bands for displacement confirmation, and flips trend state when both slope and displacement conditions are simultaneously satisfied.
Gradient Ribbon System : Constructs a four-layer ribbon between the ALMA and a deviation-scaled edge line, computing conviction from slope magnitude and price distance, and mapping that conviction to the transparency of each ribbon layer so width and brightness reflect trend momentum quality continuously.
Position Planning Engine : On each trend flip, derives stop price from swing structure within the lookback clamped by ATR multipliers, calculates risk distance, projects up to four equidistant R-multiple targets, and creates the complete set of glow-and-core dual-layer lines, risk box, target zones, inter-target bands, and R-multiple labels as a unified position framework.
Active Position Tracking System : Monitors each bar for target proximity to apply approach highlighting gradients, records target hit status when price reaches each level, detects stop events from bar extremes, freezes the position visually with historical styling on the next flip, and enforces the maximum visible position count by removing the oldest complete position objects.
This design ensures the trend ribbon communicates conviction quality continuously while the position planning and tracking layers translate each trend event into a fully managed trade framework with real-time progress monitoring.
How It Works
Trend Target Ribbon evaluates price through a sequence of confirmation and planning processes:
ALMA Calculation : The Arnaud Legoux Moving Average is calculated from the selected source over the configured length with the configured offset and sigma parameters, providing a smoothed low-lag baseline.
Slope Measurement : The ALMA change over the configured slope lookback bars is divided by ATR, producing a normalized slope score that measures directional momentum independently of price scale.
Deviation Band Construction : Standard deviation over the deviation length multiplied by the confirmation multiplier produces the upper and lower confirmation bands around the ALMA.
Trend Flip Detection : A bullish flip requires slope above the minimum threshold and close above the upper confirmation band simultaneously. A bearish flip requires slope below the negative threshold and close below the lower confirmation band. Flips are only registered when the new state differs from the current state.
Conviction Scoring : The conviction score combines doubled slope magnitude with distance-weighted separation between price and ALMA, normalized to a 0-1 range that drives ribbon transparency and candle gradient intensity.
Ribbon Rendering : Four ribbon layers render between the ALMA and the deviation-scaled edge, with glow, edge, mid, and ALMA plots filled at conviction-scaled transparencies and broken across flip bars to prevent visual carryover between trend states.
Position Freeze on Flip : When a flip occurs with an active position, all position objects are frozen at the flip bar with faded historical styling, preserving the completed position record on the chart.
Stop Loss Derivation : The swing low over the stop lookback for long positions and swing high for short positions provides the structural stop reference, with the raw risk distance clamped between ATR minimum and ATR maximum bounds.
Target Projection : Up to four targets are placed at equidistant R-multiples above entry for long positions and below for short positions, with inter-target band boxes filling the reward zones between consecutive levels.
Active Tracking : Each bar, target proximity gradients are computed from price distance relative to the approach radius, driving glow and zone transparency. Target hit status is set when price reaches each level and persists with checkmark label addition. Stop hits terminate the position with darkened stop styling.
Position Count Management : When the visible position limit is exceeded on a new flip, the oldest complete position's lines, boxes, and labels are removed from all storage arrays and deleted before the new position objects are created.
Together, these elements form a continuously updating trend conviction visualization with an integrated automated trade planning and tracking system that maintains a rolling history of the most recent positions.
Interpretation
Trend Target Ribbon should be interpreted as a conviction-weighted trend system with an attached automated position management overlay:
Bullish Trend State (Green) : Active when slope exceeds the minimum threshold upward and close is above the upper deviation band, with the gradient ribbon rendering below the ALMA and candles coloring green with intensity proportional to conviction.
Bearish Trend State (Red/Pink) : Active when slope exceeds the minimum threshold downward and close is below the lower deviation band, with the gradient ribbon rendering above the ALMA and candles coloring in the bearish color with conviction-scaled intensity.
Gradient Ribbon : The filled zone between the ALMA and the deviation-scaled edge communicates conviction through its visual depth. Strong slope and distant price produce a wide, opaque ribbon. Weakening slope or price compressing toward the ALMA produces a narrower, more transparent ribbon.
Candle Gradient : Price candles color from a muted version of the trend color at low conviction to full saturation at high conviction, providing a bar-level momentum intensity reading directly on the chart.
Entry Line : White core line with trend-colored glow at the flip bar close marks the position entry level, extending forward for the configured projection length.
Stop Loss Line : Red glow and core lines below entry for longs and above for shorts mark the structure-derived stop level. The risk box fills the zone between entry and stop.
Target Lines (T1 to T4) : Green glow and core lines at successive R-multiples from entry mark the sequential take profit levels. Labels display the target number and R multiple.
Target Approach Highlighting : As price approaches each target within the configured approach radius, the glow and zone transparency increases progressively, creating a visual brightening effect that draws attention as price nears each level.
Target Hit Markers : When price reaches a target level, the line brightens fully, the zone shading intensifies, and the label gains a checkmark suffix, providing a persistent record of which targets were reached during the position.
Stop Hit Styling : When price reaches the stop level, the position freezes with stop-specific styling and the stop label receives a checkmark, indicating the position was closed at the stop.
Historical Positions : Frozen completed positions remain on the chart with faded styling for the configured number of past positions, providing a visual history of recent trend-triggered trade setups and their outcomes.
Ribbon conviction width, candle gradient, and target hit progression collectively communicate more trend and trade plan context than any element in isolation.
Signal Logic & Visual Cues
Trend Target Ribbon presents two primary trend transition signals that simultaneously trigger complete position framework generation:
Bullish Trend Signal (◆) : Green diamond below the bar when both slope and displacement conditions flip bullish, triggering a long position framework with structure-derived stop below entry and up to four equidistant R-multiple targets above.
Bearish Trend Signal (◆) : Red diamond above the bar when both slope and displacement conditions flip bearish, triggering a short position framework with structure-derived stop above entry and up to four equidistant R-multiple targets below.
Target proximity highlighting and hit tracking provide continuous secondary context throughout the active position lifecycle, with approach brightening identifying when price is near each target and checkmarks confirming reached levels.
Alert generation covers bullish and bearish trend flip events for systematic monitoring workflows.
Strategy Integration
Trend Target Ribbon fits within ALMA momentum-confirmed trend-following and integrated position management approaches:
Conviction-Filtered Entries : Use the ribbon width and candle gradient at the flip bar as a conviction filter. Flips accompanied by a wide, opaque ribbon and bright candles indicate strong slope and displacement conditions. Flips producing a thin, subtle ribbon suggest borderline confirmation warranting greater caution.
R-Multiple Target Sequencing : Use the automatically generated target sequence as a staged exit framework, planning partial position reductions at each successive target rather than holding for a single fixed level, allowing systematic profit capture while maintaining exposure to larger directional moves.
Structure Stop Awareness : Monitor the stop distance relative to ATR on each new position. Positions where the structural stop requires maximum ATR clamping carry greater uncertainty about the structural validity of the stop level than positions where the structural stop falls naturally within the ATR bounds.
Target Proximity Trading : Use the approach highlighting as a real-time proximity alert for active management decisions, using the brightening glow as a visual cue to prepare for partial exit or tightened stop management as price approaches each target level.
Historical Position Review : Use the retained historical positions as a visual record of the indicator's recent signal behavior on the current instrument and timeframe, assessing whether the configured parameters are producing appropriately sized stops and reachable targets in recent market conditions.
Multi-Timeframe Conviction Alignment : Apply higher-timeframe trend state as a directional bias filter, engaging with lower-timeframe flip signals only when they align with the established higher-timeframe ALMA direction and ribbon state.
Technical Implementation Details
Trend Engine : ALMA with configurable length, offset, and sigma; ATR-normalized slope over configurable lookback; standard deviation band displacement confirmation
Conviction System : Composite score from doubled slope magnitude and distance-weighted price separation mapped to multi-layer ribbon transparency and candle gradient
Position Engine : Swing structure stop derivation with ATR minimum and maximum clamping; equidistant R-multiple target projection; dual-layer glow-and-core line and zone construction
Tracking System : Per-bar target proximity gradient computation; hit state persistence with checkmark labels; stop detection from bar extremes; flip-triggered position freeze with historical styling
History Management : Three independent arrays for lines, boxes, and labels with configurable maximum position count enforced by oldest-first bulk removal
Visualization : Four-layer gradient ribbon with fill and plot combination; conviction-scaled candle gradient; signal diamonds at flip bars
Performance Profile : Real-time execution with object extension and state updates on every bar for the active position, position creation and freeze on flip bars, and bulk cleanup on position count overflow
Optimal Application Parameters
Timeframe Guidance:
1 - 5 min : Intraday trend position planning for scalping with shorter ALMA length and tighter slope minimum for faster trend confirmation and responsive stop placement
15 - 60 min : Session-level trend-following with balanced ALMA length and moderate deviation confirmation for meaningful trend state separation across typical session moves
4H - Daily : Swing-level trend position management with longer ALMA length and higher slope minimum for sustained trend confirmation before position frameworks are generated
Suggested Baseline Configuration:
ALMA Length : 34
Trend Confirmation : 0.65
Minimum Slope : 0.08
Stop Structure Lookback : 12
Minimum Stop ATR : 0.75
Maximum Stop ATR : 3.0
Profit Targets : 4
Positions On Chart : 4
Show Trend Gradient : Enabled
Color Candles : Enabled (requires disabling original chart candles in chart settings)
Show Position Labels : Enabled
These suggested parameters should be used as a baseline; their effectiveness depends on the instrument's volatility characteristics, swing structure frequency, and preferred signal sensitivity, so fine-tuning is expected for optimal performance.
Parameter Calibration Notes
Use the following adjustments to refine behavior without altering the core logic:
Too many trend flips : Increase Minimum Slope to demand stronger directional momentum before a flip registers, or increase Trend Confirmation to require greater price displacement beyond the ALMA before the signal fires.
Trend flips too infrequent : Decrease Minimum Slope toward 0.02 for more inclusive momentum qualification, or decrease Trend Confirmation toward 0.2 to allow trend flips on smaller deviations from the ALMA.
Stop loss too tight : Increase Minimum Stop ATR to enforce a larger minimum risk distance regardless of structural stop location, providing more breathing room around the entry price.
Stop loss too wide : Decrease Maximum Stop ATR to cap the risk distance at a tighter ATR multiple, preventing the structural stop from placing the position at an impractical risk size.
Targets too close together : The target spacing is determined by the risk distance. A wider stop produces more widely spaced targets. Reduce Minimum Stop ATR to produce tighter stops and therefore closer-spaced targets on instruments with small typical ranges.
Ribbon too wide or narrow : The ribbon width is driven by conviction from slope and distance. On instruments with consistently strong slope the ribbon may appear uniformly wide. Increase Minimum Slope to restrict confirmation to only the strongest momentum conditions, producing more variable ribbon widths.
ALMA too laggy or reactive : Increase ALMA Sigma toward 15 for a smoother less reactive baseline, or decrease toward 1 for a more reactive baseline. Adjust ALMA Offset toward 1.0 for greater recent-price weighting or toward 0.0 for more uniform weighting across the length.
Adjustments should be incremental and evaluated across multiple session types rather than isolated market conditions.
Performance Characteristics
High Effectiveness:
Trending markets where ALMA slope sustains above the minimum threshold for extended periods, producing well-spaced flip signals with wide conviction ribbons and providing sufficient price extension to reach multiple R-multiple targets
Instruments with consistent swing structure where the lookback-derived stop lands at structurally meaningful levels within the ATR bounds rather than being clamped to the minimum or maximum
Systematic position management approaches that benefit from automatically generated, consistently structured trade plans rather than manual level calculation on each signal
Historical analysis workflows where the retained position history provides a visual record of the indicator's recent signal behavior and target achievement rate on the current instrument
Reduced Effectiveness:
Choppy, range-bound markets where slope and displacement conditions flip frequently in alternating directions, generating position frameworks that are immediately frozen by the next flip before targets can be approached
Instruments with highly irregular swing structure where the stop lookback consistently finds extremes that place the stop at the ATR maximum, indicating structural stop placement is not meaningful on the instrument
Very low volatility environments where the ATR minimum stop dominates, producing artificially tight stops that bear no relationship to actual structural support or resistance levels
News-driven or gap-heavy instruments where instantaneous price movements trigger trend flips before the ALMA has developed sufficient slope, producing borderline-conviction signals with thin ribbons
Mean-reversion dominant conditions where sustained ALMA slope is rare and the slope requirement suppresses signal frequency to a level that makes the position history sparse and statistically insufficient for pattern assessment
Integration Guidelines
Confluence : Combine with BOSWaves structural tools, order flow analysis, or volume indicators to validate trend flip signals and assess whether the position framework aligns with broader market context before managing positions to the automated targets
Conviction Assessment : Evaluate ribbon width and candle gradient at each flip bar before committing to the generated position framework. Thin ribbons on borderline signals warrant reduced position sizing relative to the standard risk distance.
Stop Clamping Awareness : Note whether the stop loss is at the structural level or at an ATR boundary. ATR-clamped stops indicate the structural extreme was outside the acceptable range and the stop may be placed at a less meaningful price, warranting additional monitoring.
Target Achievement Review : Periodically review the historical position records retained on the chart to assess whether the configured target count and projection length are realistic for the instrument and timeframe, adjusting target count or extending projection bars if targets consistently remain unreached within the position lifecycle.
State Discipline : Maintain directional bias aligned with the current trend state until the next confirmed flip. Ribbon narrowing and candle gradient dimming within an established trend suggest conviction is weakening but do not constitute a flip signal until both slope and displacement conditions simultaneously satisfy the opposing direction requirements.
Disclaimer
Trend Target Ribbon is a professional-grade ALMA trend conviction visualization and integrated position planning tool. It uses slope-normalized momentum confirmation with structure-derived risk management but does not predict future price movements. Results depend on market conditions, instrument trend characteristics, parameter selection, and disciplined execution. BOSWaves recommends deploying this indicator within a broader analytical framework that incorporates order flow context, structural analysis, and comprehensive risk management. Индикатор

Индикатор

Volatility Shock Half-Life MonitorHow long does a volatility shock actually stay elevated?
The Volatility Shock Half-Life Monitor turns that question into an event-based measurement. Instead of only labeling volatility as “high” or “low,” it detects a fresh shock, freezes the pre-shock baseline, follows subsequent volatility peaks, and counts the bars until the excess volatility has decayed to a chosen fraction.
WHAT THE INDICATOR SHOWS
🟠 Shock detected — Fast realized volatility crosses above the selected multiple of baseline volatility.
🟣 Reheat — Volatility makes a meaningfully higher peak. The decay target is recalculated and the half-life clock restarts from that peak.
🟢 Half-life reached — Excess volatility falls to the selected remaining fraction. With the default 50% setting, half of the excess above the frozen baseline has dissipated.
⬜ Window ended — The episode did not reach its decay target within the maximum observation window.
The aqua curve is fast volatility as a percentage of baseline volatility. The yellow segment is the active decay target. A compact dashboard reports the current state, excess volatility remaining, bars since the latest peak, the most recently observed half-life, and completed versus timed-out episodes.
EXAMPLE
Suppose baseline volatility is 1.0 and a shock peaks at 2.0. With “excess volatility remaining” set to 50%, the target is 1.5:
1.0 + 50% × (2.0 − 1.0) = 1.5
If volatility later reheats to 2.4, the new target becomes 1.7 and the clock restarts from that new peak. This prevents an early measurement from understating a renewed shock.
SUGGESTED USES
• Compare how quickly different assets absorb volatility shocks.
• Delay mean-reversion entries until excess volatility has materially cooled.
• Identify persistent stress when an episode repeatedly reheats or times out.
• Build confirmed-bar alerts for shock, reheat, recovery, timeout, and data-gap events.
METHOD AND LIMITATIONS
Volatility is the rolling standard deviation of logarithmic returns by default. The baseline is frozen on the initial shock bar. “Half-life” here means the observed number of chart bars from the latest volatility peak to the first target crossing; it is not an estimated exponential-decay parameter. Results depend on timeframe, symbol, lookback lengths, and threshold settings. The indicator is a research and risk-context tool, not a forecast or trading strategy.
AI-assisted disclosure: The concept, Pine implementation, validation model, and documentation were developed with AI assistance and reviewed by BotTradeLab. Индикатор

HTF 3-Candle System (Zeiierman)█ Overview
HTF 3-Candle System (Zeiierman) is a higher-timeframe market structure indicator designed to analyze the relationship between three consecutive HTF candles and identify the price pattern that currently best describes the developing structure.
Instead of looking for a single fixed candlestick formation, the indicator evaluates multiple bullish and bearish three-candle structures simultaneously. Each pattern receives a dynamic quality score based on factors such as candle direction, range, body strength, liquidity sweeps, displacement, imbalance, compression, expansion, and the developing behavior of the live third candle.
The three higher-timeframe candles are defined as:
• C1 = the completed HTF candle two periods back
• C2 = the previous completed HTF candle
• C3 = the current live HTF candle
C3 updates continuously while the higher-timeframe candle is forming, allowing the pattern ranking and projected levels to evolve with current price action.
The System evaluates 12 three-candle structures:
• Bullish Sweep Reversal
• Bearish Sweep Reversal
• Bullish FVG Displacement
• Bearish FVG Displacement
• Bullish PO3 Sequence
• Bearish PO3 Sequence
• Bullish Expansion
• Bearish Expansion
• Bullish Compression Break
• Bearish Compression Break
• Morning Star Reversal
• Evening Star Reversal
The three highest-ranked structures are displayed in the 3-CANDLE SYSTEM table together with their current scores. The highest-ranked pattern also controls the live state message and the projected structural levels.
█ How It Works
⚪ 3-Candle HTF Structure
The indicator analyzes three candles from the selected higher timeframe:
• C1 = two HTF candles back
• C2 = previous HTF candle
• C3 = current live HTF candle
C1 = HTF
C2 = HTF
C3 = current HTF
C1 and C2 are completed candles, while C3 updates live until the current higher-timeframe candle closes.
⚪ Pattern Quality Scoring
The System evaluates 12 bullish and bearish three-candle structures and assigns each one a quality score.
The score combines structural conditions with softer proximity measurements, so a setup can begin ranking before every condition is fully completed.
Factors include liquidity sweeps, candle direction, body strength, range, displacement, FVGs, compression, expansion, and recovery or rejection around key levels.
score = structure + proximity + candle strength
⚪ Top 3 Pattern Ranking
All pattern scores are ranked from highest to lowest.
The strongest structure becomes the active pattern, while the second and third highest scores remain visible for additional context.
patterns.sort(order.descending, sort_field="qualityScore")
⚪ Live Pattern State
The top-ranked structure also shows its current stage, such as:
• sweep or reclaim developing
• FVG live
• breakout or breakdown developing
• compression
• PO3 distribution
• reversal developing
⚪ Projected Pattern Levels
The active pattern projects the levels most relevant to that structure, including sweep levels, breakout levels, FVG boundaries, CE 50%, equilibrium, recovery levels, and invalidation.
Nearby levels can automatically merge to reduce visual clutter.
⚪ Projected HTF Candles
C1, C2 and C3 are reconstructed to the right of price using their actual higher-timeframe OHLC values. C3 updates live as the current HTF candle develops.
⚪ HTF Mapping
The System can map C1, C2 and C3 directly over the lower-timeframe candles that formed them.
High and low dots identify the exact lower-timeframe candles that created each HTF extreme. Completed C1 and C2 levels can also change from Active to Mitigated after being traded through.
█ How to Use
The examples below show how the System behaves across different three-candle structures. The table identifies the highest-ranked pattern, while the bottom row shows the pattern's current live state.
⚪ Bearish Expansion
Here, Bearish Expansion is the highest-ranked pattern at 85.0%, and the state reads BEARISH EXPANSION LIVE.
C1, C2, and C3 progressively shift lower, with C3 extending strongly through the previous structure. The projected levels identify the Breakdown, the level price should Hold Below, and the Invalidation level above.
⚪ Bearish FVG Displacement
In this example, Bearish FVG Displacement reaches a 100.0% score and the state reads BEARISH FVG LIVE.
The strong downside movement leaves C3 separated below C1, creating the bearish imbalance. The System projects the FVG Upper, CE 50%, C3 High, and Invalidation levels around the active structure.
⚪ Bearish FVG With Merged Levels
This is another Bearish FVG Displacement, ranked at 98.1%.
Here, the FVG Upper and CE 50% are close enough to be merged into a single projected level. This demonstrates how the System combines nearby structural references when they overlap.
⚪ Bullish FVG Displacement
This example shows a Bullish FVG Displacement with a 100.0% score and BULLISH FVG LIVE state.
Strong upside displacement leaves the C3 low above the earlier C1 structure. The projected FVG Lower, CE 50%, C3 Low, and Invalidation levels define the active bullish imbalance.
⚪ Bearish Compression Setup
Here, Bearish Compression Break ranks first at 91.2%, but the state still reads COMPRESSION - WATCH RANGE LOW.
This is important because the bearish break has not yet confirmed. C2 is contained within the C1 range and C3 is pressing toward the lower boundary. The Range Low / Breakdown level shows where bearish confirmation would occur, while Equilibrium and Range High define the rest of the compression structure.
⚪ Bullish Power of 3
In this example, Bullish PO3 Sequence ranks first at 85.0%, with the state PO3 DISTRIBUTION LIVE.
The sequence shows a downside manipulation followed by a strong bullish C3 expansion. The System highlights the Manipulation Low, the Distribution level above, and the structural Invalidation level.
⚪ Bearish Sweep Reversal
Here, Bearish Sweep Reversal is ranked first, but the state reads HIGH SWEPT - NEED RECLAIM.
Price has already swept above the C1 high, but the reversal is not yet fully confirmed. The next requirement is for C3 to move back below the projected C3 Close < level. The swept high and invalidation have merged into one structural level.
⚪ Bullish Sweep Reversal
This example shows Bullish Sweep Reversal ranked first at 82.0%, but the state is still WATCHING C1 LOW.
This is an earlier-stage setup. The System is identifying the bullish sweep structure as the best current match, but the C1 low has not yet been swept. The projected Sweep Low + Invalidation level shows the liquidity area being watched, while C3 Close > marks the bullish confirmation level.
⚪ Evening Star Reversal
Here, Evening Star Reversal ranks first at 80.6%, with the state AWAITING REJECTION BELOW C1 MID.
The reversal structure is developing, but C3 has not yet moved far enough below the C1 midpoint to confirm stronger rejection. The projected levels show 50% Rejection, Full Rejection, and Invalidation.
⚪ Bullish Compression Setup
In the final example, Bullish Compression Break ranks first at 84.3%, while the live state reads COMPRESSION - WATCH RANGE HIGH.
C2 remains compressed inside the C1 structure and C3 is moving toward the upper boundary. The bullish breakout is not confirmed until price pushes through the projected Range High / Breakout level. Equilibrium and Range Low provide the remaining structural references.
█ Settings
Higher Timeframe: Selects the higher timeframe used to construct C1, C2 and live C3. The selected timeframe must be higher than the chart timeframe.
Strong Match Threshold: Sets the minimum quality score required for the highest-ranked pattern to be treated as a strong match.
Show Projected HTF Candles: Shows or hides the reconstructed C1, C2 and C3 candles to the right of current price.
Offset: Controls how far the projected candle structure appears from current price.
Candle Spacing: Controls the horizontal spacing between projected C1, C2 and C3.
Merge: Controls how close two projected levels can be before they are combined.
Spacing: Controls horizontal spacing between pattern level labels.
-----------------
Disclaimer
The content provided in my scripts, indicators, ideas, algorithms, and systems is for educational and informational purposes only. It does not constitute financial advice, investment recommendations, or a solicitation to buy or sell any financial instruments. I will not accept liability for any loss or damage, including without limitation any loss of profit, which may arise directly or indirectly from the use of or reliance on such information.
All investments involve risk, and the past performance of a security, industry, sector, market, financial product, trading strategy, backtest, or individual's trading does not guarantee future results or returns. Investors are fully responsible for any investment decisions they make. Such decisions should be based solely on an evaluation of their financial circumstances, investment objectives, risk tolerance, and liquidity needs.
Индикатор

Sessions, Opening Levels and Day Separators=====================================================================
⚠️⚠️ PLEASE READ BEFORE USING ⚠️⚠️
⚠️ This is an EDUCATIONAL AND ANALYTICAL tool. It is not financial
advice, it is not a trading system, and it is not a signal service.
It produces no buy or sell signals of any kind.
⚠️ Every number and level this script draws is a HISTORICAL
MEASUREMENT of where price has already been. None of it is a
probability, a forecast, a prediction, or an expectation. A line at
yesterday's high tells you where yesterday's high was. It tells you
nothing whatsoever about whether price will reach it, respect it, or
reverse at it.
⚠️ Past market behaviour does not guarantee, imply or suggest future
market behaviour. Levels that held ten times can fail on the eleventh.
⚠️ You are solely responsible for every trading decision you make and
for every loss you incur. Trading leveraged instruments carries a real
risk of losing more than your deposit. If you are unsure, seek advice
from a licensed professional. Nothing here is a recommendation to buy
or sell anything.
---------------------------------------------------------------------
WHAT THIS IS
Most intraday traders end up running four or five separate indicators
just to answer four simple questions: where does today start, which
session are we in, where was yesterday's high and low, and where did
this week open? Each of those scripts adds its own indicator slot, its
own settings panel, and its own idea of when a "day" begins.
This is those four tools in one script. It draws vertical lines where
each trading day and week begins, shades the four major trading
sessions, marks the high and low of previous days, weeks and months,
and draws horizontal lines at reference opening prices. It does not
interpret any of that for you. It draws context and stops.
It is open source. Every calculation below is in the code, and you are
encouraged to read it.
---------------------------------------------------------------------
WHAT IT DRAWS
1. DAY AND WEEK VERTICAL LINES
A thin vertical line where each trading day begins and a thicker one
where each trading week begins. Where a week line is drawn, the day
line for that same moment is left out, so the two never sit on top of
each other. The weekday name is written at the TOP of the pane,
positioned midway between two consecutive day lines rather than beside
one, so it labels the day rather than the boundary. There is an
alternative "Background" mode that tints the whole bar instead of
drawing a line.
2. SESSIONS
Four shaded boxes: Asia, London, New York AM and New York PM. Each box
opens when its session opens and then grows, bar by bar, to contain
every high and low the session has made so far. The box you see is the
literal price range of that session up to that point. A large letter
is written faintly inside each box so you can tell them apart at a
glance. Default times, in New York time, are Asia 20:00-02:00, London
02:00-08:30, NY AM 08:30-11:30, NY PM 13:30-16:00. All four are fully
editable.
3. PREVIOUS HIGHS AND LOWS
Two horizontal lines per period, at the highest and lowest price
reached during a previous COMPLETED day, week or month. The line is
anchored at the start of the period it measures and extends to the
right. You can show more than one previous period, and older ones can
be faded so the most recent stands out.
4. OPENING LEVELS
Horizontal lines at reference opening prices, each with a short text
label written at the right-hand end: the 00:00 open, the 10:00 open,
today's open, this week's open, this month's open, this year's open,
and the all-time high. When two or more of these land on exactly the
same price, their labels merge into one line of text instead of
printing on top of each other.
5. WARNING BANNER
A small amber note in the bottom-right corner when something is
switched on but not being drawn. It exists because this script has
twelve independent timeframe filters, and "why is my chart empty?" is
by far the most likely thing to go wrong. Each note names the cause and
what to change. It can be switched off under General once you no longer
need it. Nothing is drawn at all when there is nothing to report.
---------------------------------------------------------------------
HOW IT IS CALCULATED
Nothing here is hidden. This is the actual method.
DAY BOUNDARY — five modes
A "trading day" is not midnight for most instruments. CME futures roll
over at 17:00 Chicago. Stocks start at the opening bell. Crypto starts
at midnight UTC. Rather than guess this from the asset type, which
gets stocks, Euronext, CBOT grains, ICE, VIX and CFD indices wrong,
the script reads it from TradingView's own session data for the
symbol.
Auto (exchange session)
timeframe.change("D") — fires exactly where TradingView starts a
new daily bar for this symbol.
Market open only
session.ismarket and (not session.ismarket or timeframe.change("D"))
then kept only on the FIRST such bar of each calendar day.
That is the transition out of the pre-market where the chart
carries one, and the trading day's own boundary where it does not.
The once-per-day rule matters: on an extended-hours chart the two
halves of that test do not always land on the same bar, and it also
stops a lunch-break reopen counting as a second trading day.
See limitation 2 below — on most symbols this mode legitimately
produces the same lines as Auto.
Midnight (exchange time) / Midnight (New York) / Custom time
For each bar, build the target instant for THAT BAR'S OWN
calendar date:
timestamp(tz, year(time,tz), month(time,tz),
dayofmonth(time,tz), HH, MM)
and fire when all three of these are true:
time >= that instant
time < that instant
time - that instant < (chart timeframe in seconds x 1000)
timestamp() is timezone- and daylight-saving-aware, so the
boundary does not slide by an hour on the two DST changeover
days each year. The third condition — the boundary must fall
INSIDE the bar that just opened — is what stops the Sunday
evening double-line: CME reopens Sunday 18:00 New York, and the
weekend gap technically straddles Sunday midnight, so without it
you would get both an 18:00 line and a midnight line the same
night.
WEEK BOUNDARY — three modes
Exchange Week timeframe.change("W")
Specific Day a day boundary whose session weekday matches the
day you choose
Follow Day Start the script watches for timeframe.change("W"),
records WHICH weekday the exchange's week opens
on, then fires on the day boundary that lands on
that weekday
The session weekday is taken from the MIDPOINT of the daily bar:
mid = time("D") + (time_close("D") - time("D")) / 2
dow = dayofweek(mid, exchange timezone)
The midpoint always falls inside the session, so a CME Wednesday
session that opens on Tuesday evening correctly counts as Wednesday.
All three modes are then de-duplicated against time("W"), so you get
at most one week line per exchange week even when a day boundary and a
daily-bar boundary disagree.
DAY NAME POSITION
The name goes midway between the separator that opens its day and the
one that closes it. The closing separator has not happened yet when the
name must be plotted, so the midpoint is predicted, and the prediction
differs by mode.
Auto mode — the separators ARE the daily-bar edges, so the daily bar
hands over both ends:
sessionMid = time("D") + (time_close("D") - time("D")) / 2
name drawn on the first bar of the day where
time + chart timeframe > sessionMid
Both values come from the session schedule, carry no lookahead, and read
the same on every bar inside the day. Written as one comparison rather
than a pair so that a midpoint landing in a gap — a lunch break, or the
hours a holiday session sits closed — is claimed by the first bar after
the gap instead of by no bar at all; a latch, reset at each day boundary,
keeps the rest of the day from claiming it too.
Every other mode — the boundary is a clock time or the opening bell, not
a daily-bar edge, so there is no end to read and the day is measured:
barsPerDay = bar_index(this separator) - bar_index(previous one)
name drawn where bar_index - lastSeparator == floor(barsPerDay / 2)
floor() rather than a plain division: an odd bar count would land on x.5
and match no bar at all, silently dropping that day's name. This estimate
still mis-centres the day after an unusually long or short one, but those
modes are immune to the merged-session case that motivated the Auto-mode
anchor, because a clock boundary falls inside a merged session and splits
it into two named days anyway.
On an ordinary day the two anchors pick the SAME bar — a 23-hour CME
session at 1 hour puts both on bar 11, a 6.5-hour equity session at 15
minutes puts both on bar 13 — so the change is visible only on the
irregular days it exists for.
SESSIONS
inSession = not na(time(chart timeframe, "HHMM-HHMM", timezone))
isNew = inSession and not inSession
On isNew, create a box with top = high, bottom = low. On every later
bar in the session:
top = max(top, high)
bottom = min(bottom, low)
right = current bar
PREVIOUS HIGHS AND LOWS
= request.security(symbol, "D" / "W" / "M",
,
lookahead = barmerge.lookahead_on)
periodChanged = t != t
When a period changes, the line pair belonging to the period that just
ENDED is given its length and its final price, taken from h and
l — the settled values of the period that has now closed. The new
period's own line pair is created zero-length, which makes it
invisible, and stays that way until that period in turn closes.
ON LOOKAHEAD, STATED PLAINLY: this script does use
barmerge.lookahead_on with a plain high and low. On historical bars
that returns the containing period's FINISHED value, which is
information from that period's own future. Nothing is ever drawn
from it. Every visible line takes its price from the offset
above, which is settled history by the time it is read, and no line
becomes visible before its period has closed. The Data Window values
use the same settled offsets. If you would rather verify this than
take my word for it, the code is open — look for the block commented
"LOOKAHEAD, stated plainly".
The consequence you WILL see: because a period's line is anchored at
the START of the period it measures, on historical bars the line
runs back across the period it summarises. That is intentional and
is how period range lines are conventionally drawn. It is not a
prediction, and the line did not exist on your chart while that
period was still forming.
FADE
color.from_gradient(i, 0, n-1, fully transparent, fully opaque)
where i is the line's position in the history, so the oldest is the
faintest.
OPENING LEVELS
00:00 level time("1", "0000-0001", timezone) becomes non-na
-> level = that bar's open
10:00 level time("1", "1000-1001", timezone) becomes non-na
-> level = that bar's open
Daily timeframe.change("D") -> open
Weekly timeframe.change("W") -> open
Monthly timeframe.change("M") -> open
Yearly timeframe.change("12M") -> open
ALL-TIME HIGH
Tracked incrementally as a running maximum of the chart's own highs,
never by scanning backwards through history. One additional request
(with lookahead OFF) runs the same running maximum on the daily
timeframe, purely to catch a peak that occurred before the chart's
loaded history begins. If that beats the chart-native high, the peak
is off screen to the left and the line simply starts as far left as
TradingView allows a drawing to anchor.
LABEL MERGE
Levels are held in a fixed array whose ORDER is the merge priority.
Every level compares its price against every lower-priority level; on
an exact match the higher-priority label absorbs the lower one's text
("00:00 + W.O") and the lower one renders an empty label. Its line is
still there, at the identical price.
---------------------------------------------------------------------
HOW IT COMPARES TO THE CLOSEST ALTERNATIVE
The closest well-known free alternative is ICT Killzones + Pivots,
which covers the same broad ground: session boxes, previous
day/week/month levels, opening prices and separators. TradingView also
ships a built-in "Session breaks" option in Chart Settings that draws
vertical session dividers for free, without using an indicator slot.
WHERE THIS SCRIPT GOES FURTHER
1. THE DAY BOUNDARY IS A REAL SETTING, NOT AN ASSUMPTION.
Five modes: the exchange's own session, the market open only,
midnight in exchange time, midnight in New York, or any clock time
in any of eleven timezones. Most session tools fix the separator to
the exchange session or to a single hardcoded hour.
2. THE WEEK LINE CAN FOLLOW THE DAY LINE.
If you set your day to start at midnight New York on a CME symbol,
most tools still put the week line at the Sunday 18:00 exchange
open, leaving it stranded between two of your day lines. "Follow
Day Start" learns which weekday opens the exchange's week and puts
the week line on the day boundary that lands on it.
3. TWELVE INDEPENDENT TIMEFRAME FILTERS, NOT ONE.
Each element has its own "Apply Below" cutoff. You can have week
lines on the 4-hour, previous-day levels down to the 12-hour,
session boxes only at 15 minutes and below, and the 00:00 level
only at 45 minutes and below — all in one saved profile, with no
switching. Comparable tools use a single global cutoff that hides
everything at once.
4. DAY NAMES ARE CENTRED ON THE DAY, NOT PINNED TO A CLOCK.
In Auto mode the position comes from the session's own midpoint, so
it is right on a half day, and right on a holiday that TradingView
folds into the neighbouring session and prints as one trading day —
the 47-hour block gets its name in the middle of 47 hours, and the
day after it is unaffected. The other modes measure the previous
day's width in bars, which is what spacing on screen actually is.
5. IT TELLS YOU WHY YOUR CHART IS EMPTY.
With twelve filters, an empty chart is the most likely failure. A
note appears bottom-right naming the cause.
6. IT HAS AN ALL-TIME HIGH LEVEL, tracked without a backward scan.
7. IT REPORTS NO STATISTICS, DELIBERATELY.
See the next section — this is a genuine trade-off, not only a
feature.
WHERE THE ALTERNATIVE IS BETTER, OR THIS ONE IS WEAKER
Read this section as carefully as the one above. If any of these
matter to you, use the other tool.
1. NO SESSION HIGH AND LOW LEVELS. ICT Killzones + Pivots stores each
session's high and low as horizontal lines and extends them
forward until price trades through them. That is the single most
used feature of that script and this one has no equivalent at all.
Here the box is the whole record, and it stops at the session end.
2. NO ALERTS. None. The alternative can alert you on session highs and
lows and on daily, weekly and monthly levels. If you need to be
notified rather than to watch, this script cannot do it.
3. ONLY TWO FIXED CLOCK LEVELS. You get 00:00 and 10:00 and you cannot
move them or add a third. The alternative lets you type in eight or
more opening times at any hour you like, with your own labels and
colours.
4. ONLY FOUR SESSIONS. Asia, London, NY AM, NY PM, and you cannot add
a fifth. The alternative has five or six configurable slots
including London Close and a regular-trading-hours slot.
5. NO STANDARD DEVIATION OR RANGE PROJECTION LEVELS. The alternative
can plot levels at multiples of a session's average, median or
standard deviation range. This script has nothing comparable.
6. NO STATISTICS TABLE AND NO HIT RATES. The alternative shows how
often each level was reached, with sample sizes. That is
information this script deliberately does not give you. I left it
out because a hit rate presented on a chart reads as a probability
and it is not one — but if you specifically want measured
historical frequencies, this script cannot provide them and the
alternative can.
7. NO SESSION MIDPOINTS.
8. CAPPED HISTORY. Previous-level counts are limited to 50 each, and
day and week separators are capped at 250 with the oldest dropped.
The alternative offers an unlimited history mode.
9. IF ALL YOU WANT IS SEPARATORS, YOU DO NOT NEED THIS SCRIPT.
TradingView's built-in "Session breaks" setting is free, uses no
indicator slot, and costs no computation. This script is only worth
a slot if you want two or more of its four modules.
---------------------------------------------------------------------
HOW TO USE IT
None of the following are recommendations, and none of them are
strategies. They are simply the ways context tools of this kind are
commonly read. Test anything you take from here yourself.
TREND AND CONTINUATION
The previous day's high and low, and the week's opening price, are the
levels most often referenced when describing whether a market is
extending or retracing. A market trading and holding above the prior
day's high is described differently from one that reached it and fell
back. Watch what happens AT the level, not the fact that price arrived
there. Suggested setup: previous day and week levels on, sessions off,
day and week lines on, on the 1-hour or 4-hour.
RANGE AND MEAN REVERSION
The session boxes give you a visible container. When the London box
and the NY AM box overlap heavily in price, the market has not gone
anywhere, and the box edges are the boundaries other participants can
see too. The 00:00 open and the daily open are frequently used as the
"middle" that a rangebound day oscillates around. Suggested setup:
all four sessions on, 00:00 and daily open on, previous-day levels on,
on the 15-minute.
SCALPING
Use the session boxes as a filter on WHEN rather than as a signal on
what. The boundary between one session box ending and the next
beginning is where participation changes hands, and thin periods
between boxes are visibly thin. Turn the day and week vertical lines
off — at 1 to 5 minutes they add clutter without adding information.
Suggested setup: sessions on, previous day on, everything else off,
on the 1-, 2- or 5-minute.
SWING
Switch to the weekly and monthly side. Previous week and previous
month highs and lows, plus the monthly and yearly opens and the
all-time high, give you the small set of levels that a multi-week
position is measured against. Set Previous Week and Previous Month
counts to 3 or 4 and turn on "Fade Older Lines" so the most recent
reads clearly. Suggested setup: previous week and month on, weekly,
monthly and yearly opens on, sessions off, on the 4-hour or daily.
MULTI-TIMEFRAME WORKFLOW
Because every element has its own "Apply Below" cutoff, you can set
this up once so that scrolling from a daily chart down to a 1-minute
chart progressively reveals more detail without you touching a
setting. That is what the twelve filters are for.
---------------------------------------------------------------------
KNOWN BEHAVIOURS AND LIMITATIONS
These are expected. They are listed so they do not look like bugs.
1. "MARKET OPEN ONLY" MATCHES "AUTO" ON MOST SYMBOLS. This mode exists to
skip the pre-market and post-market. All futures, all forex and all
crypto trade one continuous session and have neither, and a stock
chart has neither unless you switch Extended Hours on. Where there is
nothing to skip, the mode falls back to the trading day's own boundary
— which on a regular-hours stock chart is the opening bell anyway —
and a note bottom-right tells you that is what happened. To see the
mode do something different from Auto, put it on a US stock with
Extended Hours enabled: the line lands on the 09:30 open rather than
the 04:00 pre-market start.
2. THE 00:00 AND 10:00 LEVELS DO NOT APPEAR ON STOCKS. They need a
candle that OPENS at exactly that clock time, and that fails for
two separate reasons. First, the market may be shut then — every
stock is closed at midnight, so the 00:00 level can never be drawn
on one, whatever timeframe you use. These two levels are built for
markets that trade around the clock: futures, forex and crypto.
Second, the market may be open but the timeframe's bar grid steps
over the exact minute, which happens on 45-minute and 3-hour charts.
The bottom-right note distinguishes the two, because only the second
one is fixed by changing timeframe.
3. PREVIOUS-PERIOD LINES RUN BACK ACROSS THEIR OWN PERIOD. A line is
anchored at the start of the day, week or month whose high or low
it marks. On historical bars this means the line crosses the period
it summarises. It is not a prediction: the line was invisible while
that period was still forming, and only gained its length and its
final price when the period closed.
4. THE CURRENT PERIOD HAS NO LINE. Today's high and low are not drawn
until today ends. That is the point of the tool.
5. LOOKAHEAD IS USED. See the calculation section above. It is used
for period detection and for reading settled values; nothing
visible is derived from unsettled future data.
6. SATURDAY AND SUNDAY NAMES APPEAR ONLY ON CRYPTO SYMBOLS. On
weekday markets a Sunday evening reopen belongs to Monday's trading
session, so labelling it "Sunday" would be wrong. On crypto every
day is a real day and all seven names appear.
7. THE FIRST DAY ON THE CHART GETS NO NAME. Both anchors only speak for
a day whose opening separator was actually seen, and the chart's
first day is usually a partial one that began before the data did.
8. A LARGE GAP CAN SWALLOW A DAY BOUNDARY. If a holiday or weekend gap
contains the boundary instant entirely, no day line is drawn for
that day. This is deliberate: the alternative is a line at an
arbitrary point inside the gap.
9. BACKGROUND MODE IGNORES YOUR TRANSPARENCY. In "Background" draw
mode the colour swatch supplies the hue but the transparency is
forced to a fixed value. A swatch tuned to look right on a
1-pixel line renders almost opaque when it fills a whole bar.
10. DRAWINGS ARE CAPPED. TradingView allows a script 500 lines, 500
boxes and 500 labels. Day and week separators are capped at 250,
oldest dropped first, so they cannot starve the level lines. If you
request more previous levels than the remaining budget allows, a
note appears and the oldest are dropped.
11. VERY DEEP HISTORY IS TRIMMED. A drawing anchored to a bar index
can only reach about 10,000 bars back. A month is roughly 28,000
bars on a 1-minute chart, so the oldest levels are clamped rather
than allowed to throw an error, and a note says so.
12. SESSION BOXES DISAPPEAR ON VERY LONG CHARTS. TradingView deletes
the oldest box once 500 exist. On a 1-minute chart with four
sessions that is about 125 days.
13. NON-TIME-BASED CHARTS. On Renko, Range, Kagi, Point and Figure or
Line Break charts the "Apply Below" filters cannot work reliably,
because those chart types have no fixed bar duration. A note
appears. The script does not stop you.
14. DELAYED DATA. The script reads only bar data, so on a delayed feed
everything is drawn correctly but arrives late by the length of
the delay. Nothing recalculates differently and nothing breaks.
The only visible effect is that the currently-forming session box
lags real time.
15. THE SETTINGS PANEL USES INVISIBLE SPACING CHARACTERS to line the
dropdowns up into columns. This is purely cosmetic and affects
nothing the script calculates.
16. SOME LABELS USE NON-ASCII CHARACTERS by default: the yen, pound
and dollar signs on the session boxes, and bold letters on the
opening-level labels (D.O = daily open, W.O = weekly open, M.O =
monthly open, Y.O = yearly open, A.T.H = all-time high). If any
render as empty boxes on your system, type over them — every one
of those is a free-text field.
---------------------------------------------------------------------
SETTINGS REFERENCE
GENERAL
Timezone Used by the session times and the 00:00 and
10:00 levels. Handles daylight saving
automatically. Day and week lines read their own
timing from the market instead.
Show Warning The amber notes in the bottom-right corner. On by
Messages default. Turn them off once the behaviour is
familiar; turn them back on first if the chart
ever looks wrong.
DAY AND WEEK VERTICAL LINES
Enable Master switch for this section.
Apply Below Highest chart timeframe this section appears on.
Day Line On/off, plus line style, thickness and colour.
Week Line Same, for the week line. Where a week line is
drawn, that moment's day line is omitted.
Day Starts At Auto (exchange session) / Market open only /
Midnight - exchange time / Midnight - New York /
Custom time. Market open only skips the pre-market
and post-market; on markets that have neither it
matches Auto and says so on the chart.
Custom Time Hour and minute, used only in Custom time mode.
Custom Zone Which timezone that clock time is read in.
Week Starts Follow Day Start / Exchange Week / Specific Day,
plus the weekday for Specific Day.
Day Names Off / Short (Mon) / Full (Monday), plus text
colour and a manual horizontal nudge.
Draw As Lines, or Background tint of the whole bar.
SESSIONS
Enable Master switch.
Apply Below Highest chart timeframe this section appears on.
Asia / London / Each row: on/off, session times as HHMM-HHMM,
NY AM / NY PM box colour, and the letter written inside it.
Label Size Text size, and opacity of the letter (higher is
more visible).
PREVIOUS HIGHS & LOWS
Enable Master switch.
Extend Lines Right On/off, plus how many bars past the last bar.
Previous Day / Each row: on/off, colour, and how many previous
Week / Month periods to show (1 to 50).
Apply Below One per period type - three independent filters.
Line Style Style and thickness for every level here.
Fade Older Lines Older levels fade so the newest stands out.
OPENING LEVELS
Enable Master switch.
00:00 AM / 10:00 AM Each row: on/off, colour, the text written on
Daily / Weekly / the chart, and its own "apply below" timeframe.
Monthly / Yearly /
All-Time High
Line Style Style and thickness for every level here.
Text Colour Colour and size of all the labels.
Line Length How far past the last bar the lines and their
labels sit.
---------------------------------------------------------------------
ALERTS
This version has NO built-in alerts. That is a deliberate scope
decision, not an oversight: everything this script draws is context,
and context is not an event. An alert saying "a session started" fires
at a time you already knew in advance.
If you want to be notified when price reaches one of these levels, the
practical method today is a manual TradingView price alert:
1. Read the price off the level you care about - hover the line, or
open the Data Window (the icon on the right toolbar, or Alt+D on
Windows / Option+D on Mac) and read DH, DL, WH, WL, MH or ML.
2. Press Alt+A (Windows) or Option+A (Mac) to open the alert dialog.
3. In the first Condition dropdown, choose the SYMBOL, not the
indicator.
4. Set the second dropdown to Crossing.
5. Type the price you read in step 1.
6. Set Trigger to Only Once, choose your notification method, and
click Create.
This alert is on the price, not on the script, so it will not move
when the level moves. Re-create it each session.
Built-in alerts are the most requested thing this script does not
have, and they are the most likely addition to a future version.
---------------------------------------------------------------------
⚠️ FINAL REMINDER: this tool measures the past. It does not forecast
the future. Nothing it draws is a signal, a recommendation, or a
statement about what price will do next. Every trading decision, and
every consequence of it, is yours alone.
===================================================================== Индикатор

SMT Divergence ICT, Smart Money Technique & Correlation [LunqFX]Two instruments that normally move together stop agreeing. One makes a higher high, the other fails to. That disagreement is the SMT divergence — the Smart Money Technique — and it is one of the few reversal reads that comes from outside the chart you are trading rather than from the chart itself.
Every SMT divergence indicator marks the divergence and stops there. This one does two things they do not.
It draws the correlated symbol on your chart. Its path is rescaled into your own price range, so the moment the two structures part company is something you SEE rather than something a marker announces after the fact. And it measures the correlation between the two live, because an SMT divergence between instruments that are no longer moving together is not a signal at all — it is a coincidence, and by default those are not marked.
Included: automatic SMT detection at confirmed swing highs and lows, the correlated symbol drawn as a rescaled path, a live correlation reading with a warning state, a minimum-disagreement filter, swing-to-swing connectors, a dashboard and alerts.
❶ THE CORRELATED SYMBOL, DRAWN
The instrument yours is measured against is picked from the chart's own asset class — EURUSD against GBPUSD, ES against NQ, gold against silver, Bitcoin against Ethereum, SPX against NDX, a stock against SPY — or named by you, and its path appears on your chart as a grey line. The panel always shows which symbol is in use.
It is rescaled: the second symbol's range over a rolling window is mapped onto your chart's range over the same window, so the two can be compared by shape. The line therefore carries no price of its own. Reading a level off it would be meaningless; reading its STRUCTURE against yours is the entire point.
This is what makes an SMT divergence visible instead of asserted. When your chart pushes to a new high and the grey line rolls over beneath it, you are looking at the divergence itself rather than at a label telling you one occurred.
❷ THE CORRELATION CHECK — the part that decides whether any of it means anything
SMT rests on an assumption nobody states out loud: that the two instruments are correlated. When they are not, they disagree constantly, and every disagreement would print as a divergence.
So the correlation is measured over a window you choose and shown as a number with a bar. Above your threshold the number is white and the panel reads "marks armed". Below it the number turns amber, the panel reads "marks held", and by default no new marks are placed — because a divergence between two instruments that have stopped tracking each other is noise wearing the costume of a signal. The panel also counts how many divergences were held back this way, so a quiet chart is explained rather than mysterious.
That switch can be turned off if you want to see them anyway. The panel keeps telling you what the reading is worth.
❸ HOW A DIVERGENCE IS DETECTED
Swing points come from confirmed pivots, so a pivot only exists once the bars on both sides of it have closed.
At each new pivot the script compares two directions: the way your symbol moved from its previous pivot, and the way the correlated symbol moved between those same two points. When the signs disagree — yours made a higher high, theirs did not, or the reverse — that is the divergence.
The correlated symbol's extreme is read over a three-bar window centred on your pivot rather than off one bar, because two instruments rarely put their swing on exactly the same candle. The window is placed so that its latest bar is always a closed one.
Inverse pairs are handled. EURUSD against the dollar index is a classic SMT pairing, and their swings are mirrored: your high lines up with their low. When the measured correlation is negative the script reads their lows at your highs and their highs at your lows, and asks whether they confirmed in the mirror. The dashboard says "inverse pair" next to the symbols when this is the mode in use, so the marks are never a surprise.
One more condition has to be met. The correlated symbol must have travelled far enough the other way to count, measured against its own average bar range. Without that floor a second symbol that barely moved registers as a divergence, and the chart fills with marks that mean nothing. The threshold is adjustable and it is the setting worth changing first.
A bearish SMT prints at highs, a bullish SMT at lows, each joined to the swing it diverged from by a dashed line. The connector has a maximum length: a divergence is always against the previous pivot, and when that pivot is far back the mark still prints but the line is left out, because a dashed line reaching months across a chart tells you nothing.
❹ THE DASHBOARD
The header is the most recent divergence — bearish or bullish — and how many bars ago it confirmed, so the state of the pair is read in one line. While the divergence is recent the header is lit in its colour; once it is more than a few swings old it dims and reads "last SMT", because a reversal cue from two hundred bars back is history rather than a state. Beneath it: the two symbols, whether the partner was picked automatically, and whether they are being read as a direct or an inverse pair, the correlation right now with a bar and whether marks are armed or held, the number of bearish and bullish divergences found on the chart, and the number held back by weak correlation. When the correlated symbol is the same as the chart's, the header says so rather than showing a flat line and zero results.
The correlation shown is the reading now. A mark already on the chart was placed when the correlation at that bar cleared the threshold; the reading may have dropped since, and that does not remove the mark.
HOW TO USE IT
1 — Check the correlated symbol first. The automatic choice is the classic partner for your asset class and suits most charts; if you trade a pair it does not know, switch automatic selection off and name the instrument yourself. Nothing below works until the partner genuinely tracks yours.
2 — Read the correlation before the divergences. Strong correlation makes an SMT meaningful. Weak correlation means the two have decoupled, which is itself worth knowing and is a reason to stand aside rather than to trade the marks.
3 — Trade the divergence as a reversal cue, not a trigger. The instrument that failed to confirm is the one showing weakness. Combine it with your own entry model — SMT tells you the structures disagree, not where to enter.
4 — Watch the grey line as the swing forms. The divergence is visible before the pivot confirms; the mark simply makes it official. Traders who use SMT live are watching the second symbol fail, not waiting for a label.
5 — Raise the swing length on higher timeframes. At eight bars on a 5-minute chart you get many small divergences; at twenty on an hourly you get the ones that matter to a swing.
HOW IT WORKS
The partner symbol is chosen from the chart's ticker and asset type when automatic selection is on, otherwise taken from the input. Its high, low and close are requested on the chart's own timeframe with lookahead off. Correlation is the standard rolling coefficient between the two closes over your window; its sign decides whether the pair is read directly or in the mirror. The rescaled path maps the second symbol's close from its own rolling high-low range into your chart's, which preserves shape and discards level. Pivots come from the standard confirmed pivot functions. At each pivot the script stores your extreme and the correlated symbol's extreme over a three-bar window centred on that bar, together with the mode in use, and compares the direction of both moves at the next pivot. A divergence is registered when the directions disagree, the correlated move clears the minimum against its own average range, and — unless you switch the gate off — the correlation is above your threshold. If the correlation changes sign between two pivots, the stored pivot is discarded rather than compared across the change.
Works on any pair of instruments and any timeframe. It is most used on forex majors, index futures and the metals, where reliable correlated pairs exist.
LIMITATIONS — read before relying on it
▸ The automatic partner is a convention, not knowledge. It is chosen from the chart's asset class — forex, crypto, index, futures, metals, stocks — and a chart outside those, or one where a different partner is the right one, needs the symbol set by hand. A wrong partner is the fastest way to make this indicator produce nonsense, and the correlation reading is there to catch it.
▸ The rescaled path is shape, not price. It is fitted to a rolling window, so it moves when the window moves. Do not read levels, support or targets off it.
▸ Correlation is measured, not guaranteed. Two instruments can be strongly correlated over the window and uncorrelated during the hours you actually trade. The number describes the window you set and nothing else.
▸ Both directions of disagreement count. Yours making a higher high while theirs does not, and theirs making a higher high while yours does not, are both SMT. They read differently to a trader, and the script marks both.
▸ A pair whose correlation flips sign is unstable, and the script treats it that way: a stored pivot from one mode is never compared against a new pivot from the other. The first pivot after a sign change therefore produces no mark. If you see the panel alternating between direct and inverse, the pair is not one to trade SMT on.
▸ Marks arrive at the pivot's confirmation, not at the swing. That is the cost of not repainting: the swing must have bars closed on both sides of it before it exists. Lower the swing length for earlier marks and more of them.
▸ Different instruments keep different sessions and holidays. A gap in one and not the other can produce a divergence that is a data artefact rather than a market event. Comparing instruments from the same venue and asset class avoids most of this.
▸ On a very long chart the counts and the drawings drift apart. TradingView caps a script at five hundred lines and five hundred labels, and once past that the oldest marks are dropped while the dashboard keeps counting everything it found. Scroll far enough back and the marks stop before the numbers do.
▸ A divergence is a fact about two charts. What price does afterwards is not, and no count in the dashboard should be read as a success rate.
WHY IT IS ORIGINAL
The detection rule itself is the standard one — SMT is a published concept and there would be no point disguising it. What is not published is an SMT tool that draws the second symbol so the divergence can be seen, and that measures whether the two instruments are still correlated before it is willing to call a disagreement a signal.
The three parts need each other. The rescaled path without the correlation reading is a picture with no test behind it. The correlation without the path is a number with nothing to look at. The detection without either is what every other SMT script already is: a marker that asks you to trust its assumption.
SETTINGS
▸ The pair being compared — automatic partner selection or a manual correlated symbol, swing length, minimum disagreement.
▸ Correlation check — window, warning threshold, and whether marks are gated by it.
▸ Visuals — five candle palettes plus off, the correlated path with its rescaling window and line width, swing connectors and their maximum length, mark size, dashboard and its position.
ALERTS — bearish SMT divergence, bullish SMT divergence, and any SMT divergence. All fire on confirmed pivots.
NON-REPAINTING — divergences are built from confirmed pivots and the second symbol is requested on the chart's own timeframe with lookahead explicitly off. A mark that has printed never moves and never disappears.
This indicator is an educational market-analysis tool, not financial advice. It describes a disagreement between two instruments that has already happened and does not predict what either will do next. Always confirm with your own analysis and manage your risk. Индикатор

Overnight Session StateOvernight Session State
Overnight drift is a well-known concept in equities and index futures. This indicator asks a narrower question. Does that drift depend on where price sat relative to the moving averages when the session began?
"If the close prints above the 1H EMA stack, does the night behave differently than if it prints below? Is a night that starts inside the stack a coin flip, or something else?"
That is the whole question this tool was built to answer. It reads where price sits against the EMA stack (20/50/100) at the 16:00 ET close, labels the night above, below or mixed, and draws what happened. The panel then keeps score for each label: average drift, win rate and average range.
🔶 USAGE
Load the indicator on a 1H chart. It was built and tested on index futures (MNQ, MES, NQ, ES), but it runs on anything with an overnight session — set the entry and exit hours to suit the market you're on.
Each overnight session is one shaded box, from the 16:00 ET entry bar to the 07:00 ET exit bar. The box height is the session high to low. The colour is the outcome: green if the 07:00 close finished above the 16:00 entry, red if below.
Inside each box, the solid line is the entry price and the dashed line is the exit price. The gap between them is the overnight drift.
The glyph on the top edge of each box is the state the night started in:
▲ ABOVE — price above all three EMAs at entry
▼ BELOW — price below all three EMAs at entry
• MIXED — price inside the stack at entry
Look at the ▼ nights and see if they look different from the ▲ nights. Then check the panel to see if you notice any trends.
The panel shows which state the current session is in, then a row for above, below and mixed with the number of nights, average drift in bp, win rate and average range in bp across the chart's loaded history. The last bar's time is written at the bottom so you know the numbers are current.
🔶 DETAILS
The state is set once, on the 16:00 bar, using the EMA values from the bar before. It doesn't change after that. The box colour updates as the night goes on and locks in at 07:00. Nothing repaints.
Drift is measured from the 16:00 open to the 07:00 close. Range is the high to low of the whole session. Both are in basis points (1 bp = 0.01%) so the numbers compare across contracts at different price levels.
Nights with no 07:00 bar within 16 hours (holidays, data gaps) are skipped. Sunday's entry is 18:00 ET. Session times are worked out in the session timezone, not the chart's, so the numbers don't change if you switch chart timezones, but the boxes will only line up with the time axis if the chart is set to New York.
🔶 SETTINGS
EMA Stack
EMA 1 / EMA 2 / EMA 3 — the three averages that set the state (20 / 50 / 100)
Show EMA stack — draw the three lines on the chart
EMA colours follow chart theme — lines pick a neutral colour to suit light or dark charts; untick to set your own
EMA 1 / 2 / 3 colour — used when the theme option is off
Session
Session timezone — America/New_York by default; the session hours below are read in this zone
Entry hour Mon–Thu — 16
Entry hour Sunday — 18
Exit bar hour — 7
Drop segment if no exit within (h) — nights with no exit bar inside this window are skipped
Style
Night paid — box and line colour when the exit closes above entry
Night lost — colour when it closes below
Box transparency — 80 by default
Show state glyph — the ▲ ▼ • marker on each box
Panel
Show panel
Corner — move the stats table if it overlaps something
🔶 SUMMARY
Most charts don't give you a clean look at the overnight session. This one does. Each night is labelled by where it started against the averages, boxed by what it did, and counted in the panel so you can see how each group has behaved over the history you've got loaded. What you make of it is up to you. Some people will see a pattern, some won't.
It's not a buy signal and it doesn't include commission or slippage. It's just a way to see how price moved during the overnight session.
Индикатор

Adaptive Pivot Trend Levels [ChartPrime]⯁ OVERVIEW
The Adaptive Pivot Trend Levels indicator identifies market structure shifts by dynamically detecting swing pivots and converting them into adaptive support and resistance bands.
These levels update in real time and are removed once price violates them, allowing traders to clearly see which structural barriers remain respected during a trend.
The indicator builds a continuously adjusting trend line based on recent pivot averages and tracks how many levels remain intact vs. how many have been breached, offering a quantitative view of trend strength.
⯁ KEY FEATURES
Real-Time Pivot Detection
Automatically detects swing highs and lows using a user-defined pivot length.
Adaptive Trend Line
The average of recent pivots forms a dynamic trend line that shifts with market structure rather than price alone.
Active vs. Crossed Levels Tracking
Each pivot becomes a level that remains active until price breaks it.
When broken, the level is removed and counted as crossed, giving an objective measure of structural deterioration.
Trend Recalculation on Structure Shift
When trend direction changes, the indicator resets tracking, clearing outdated levels and starting a new structure phase.
Visual Level Management
• Active levels remain solid and labeled
• Crossed levels turn dotted and fade
• Cleared levels are deleted once irrelevant
Trend Classification
Trend direction is determined by the relationship between price and the adaptive trend line, providing uptrend, downtrend, or neutral states.
Compact Dashboard
A top-right table displays:
• Current trend direction
• Number of active levels
• Number of crossed levels
⯁ HOW TO USE
Evaluate Trend Strength:
A strong trend shows multiple active levels and few crossed ones, confirming structural respect.
Watch for Structural Breaks:
When several consecutive levels are crossed, the current trend is weakening and a reversal or consolidation may be forming.
Use as Context with S/R or Order Blocks:
Active levels frequently align with meaningful support/resistance and institutional reaction points.
Confirm Trend Shifts:
A reset in level tracking plus a change in trend line bias signals a fresh trend phase.
⯁ CONCLUSION
The Adaptive Pivot Trend Levels indicator provides a clean structural framework by tracking how price interacts with pivot-based levels.
Its adaptive trend line and real-time level management make it a powerful tool for assessing trend strength, identifying breakdowns in structure, and supporting confluence with other technical tools. Индикатор

Fed Funds Pricing [BackQuant]Fed Funds Pricing
Overview
Fed Funds Pricing is a rates-monitoring indicator that uses 30-Day Federal Funds futures available on TradingView together with FRED policy-rate and Treasury-yield data to visualize the path currently implied by the futures strip.
The script displays:
The current federal funds target range.
The Effective Federal Funds Rate (EFFR).
An expected path across upcoming FOMC meetings.
A most-likely discrete target-range path.
A meeting-by-meeting distribution of possible target ranges.
Cut / unchanged / hike probabilities relative to the current target range.
Recent repricing across the next three meetings.
Cumulative 25 bp-equivalent moves priced by the December meeting.
The US Treasury yield curve and daily yield changes.
2s10s and 5s30s curve spreads.
The indicator is intended as a compact way to inspect what is currently embedded in Fed funds futures pricing alongside the current policy rate and Treasury curve.
Data Used
The script uses several TradingView-accessible data series.
Federal Funds Target Range
The lower and upper target-range boundaries come from:
FRED: DFEDTARL
FRED: DFEDTARU
Their midpoint is used as the current target-range reference.
EFFR
The Effective Federal Funds Rate is read from:
FRED: EFFR
EFFR is shown independently because the effective overnight rate can sit at a different level from the midpoint of the target range.
Fed Funds Futures
The script reads a strip of monthly ZQ contracts from TradingView.
For each contract:
Implied Monthly Average Rate = 100 - Futures Price
A ZQ contract therefore represents the market-implied average effective federal funds rate across its delivery month.
Treasury Yields
The rates matrix also reads:
3-month Treasury yield.
6-month Treasury yield.
1-year Treasury yield.
2-year Treasury yield.
5-year Treasury yield.
10-year Treasury yield.
30-year Treasury yield.
These are displayed with their one-day change and spread versus EFFR.
From Monthly Futures to Meeting Rates
A monthly Fed funds futures contract represents an average rate across the entire calendar month.
When an FOMC meeting occurs inside that month, the monthly average can contain:
Days before the meeting at one expected rate.
Days after the meeting at another expected rate.
The script uses the scheduled meeting date and the implied monthly average rate to separate those two portions.
For a meeting month, the basic relationship is:
Monthly Average × Days in Month = Pre-Meeting Days × Start Rate + Post-Meeting Days × End Rate
The script works backward from a later month without an FOMC meeting to derive the implied start and end rates around each meeting.
This creates an estimated rate change associated with each upcoming meeting.
25 Basis Point Step Assumption
Meeting changes are expressed in units of:
0.25 percentage points = 25 basis points
For each meeting:
Expected Meeting Steps = (End Rate - Start Rate) / 0.25
For example:
-1.0 step = one 25 bp cut.
0.0 steps = unchanged.
+1.0 step = one 25 bp hike.
-0.4 steps = an expected change lying between no move and one 25 bp cut.
How the Probability Distribution is Built
The probability distribution shown by the indicator is calculated by the script from the futures-implied fractional 25 bp change.
It is not a separate probability series imported from a data provider.
If the implied move lies between two adjacent 25 bp outcomes, the script assigns probability between those two outcomes so that their weighted average equals the futures-implied move.
For example, an implied meeting change of:
-0.40 steps
is represented by a mixture of:
0 steps.
-1 step.
whose weighted expected value equals -0.40.
If the implied move is exactly an integer number of 25 bp steps, the full local probability is assigned to that outcome.
Cumulative Meeting Distribution
The local distribution for each meeting is combined sequentially with the distributions from earlier meetings.
This produces a cumulative distribution of possible target-rate levels by each future meeting.
That distinction is important.
The table's:
Cut
Hold
Hike
columns describe the probability that the cumulative target range by that meeting is:
Below the current target range.
At the current target range.
Above the current target range.
They are not simply the probability of a cut, hold or hike occurring at that individual meeting.
Most Likely
The Most Likely column shows the target range with the highest probability in the cumulative distribution for that meeting.
The adjacent probability is the probability assigned to that modal target range.
This should be interpreted as:
the highest-probability cumulative rate level produced by the script's distribution
rather than a certainty about the meeting outcome.
Expected Rate
The Expected column uses the probability-weighted average of the cumulative 25 bp distribution.
Conceptually:
Expected Rate = Current Target Midpoint + Expected Cumulative Steps × 0.25
Unlike the Most Likely path, the expected value can sit between discrete 25 bp target levels.
Expected Path
The blue expected path connects the current target-range midpoint with the expected rate calculated at each upcoming meeting.
It therefore represents the probability-weighted path derived from the futures strip.
The path is drawn as steps around scheduled meeting dates.
Most-Likely Path
The dashed most-likely path follows the modal discrete target range at each meeting.
This can differ from the expected path.
For example, the most likely individual range may remain unchanged while enough probability is assigned to a cut that the expected rate already sits below the current midpoint.
Detailed Meeting Distribution
The Detailed Meeting setting selects one upcoming meeting.
The lower-right table then displays the individual cumulative target ranges generated for that meeting and the probability assigned to each.
Meeting 1 is the nearest upcoming meeting, Meeting 2 is the next, and so on.
This provides more detail than the summary table's Cut / Hold / Hike grouping.
Next 3 Meetings Repricing
The rates matrix compares the current futures-implied meeting changes with the previous daily futures observations.
For the first three available meetings, the script sums the expected meeting changes and compares that combined expectation with the previous day.
The result is displayed in basis points.
A positive change means the strip has repriced toward a higher expected policy path.
A negative change means it has repriced toward a lower expected policy path.
The indicator labels these changes:
HAWKISH = higher expected rates versus the previous observation.
DOVISH = lower expected rates.
UNCHANGED = little or no change.
These labels refer only to the direction of futures repricing.
Moves Priced by December
The rates matrix also reports the cumulative expected policy movement by the first upcoming December FOMC meeting included in the script.
It is shown both as:
25 bp-equivalent moves.
Basis points.
For example:
-2.0 cuts = approximately 50 bp of cumulative easing priced relative to the current range.
Fractional values are possible because the figure is an expected value rather than a single discrete outcome.
Target Range and EFFR History
The indicator can plot the historical upper and lower target-range boundaries as a shaded band.
EFFR can be plotted alongside them.
This provides historical context for:
Policy-rate changes.
Where the effective overnight rate trades within the target range.
The starting point used by the forward pricing display.
FOMC Meeting Markers
Scheduled meeting dates can be displayed directly on the main chart.
Optional labels show the meeting month.
The meeting calendar is explicitly defined inside the script rather than downloaded dynamically.
Important Calendar Limitation
The current source contains hard-coded FOMC meeting dates for 2026 and 2027.
It also requests a predefined range of monthly ZQ contracts.
The script therefore requires source updates as the calendar and futures horizon move forward.
If future meeting dates change or additional years are required, the hard-coded meeting schedule needs to be updated.
Treasury Rates Matrix
The upper-left table provides a compact Treasury curve view.
For each maturity it displays:
Current yield.
One-day change in basis points.
Spread versus EFFR.
This allows the futures-implied policy path to be viewed alongside broader Treasury pricing.
2s10s
Calculated as:
10Y Yield - 2Y Yield
and displayed in basis points.
5s30s
Calculated as:
30Y Yield - 5Y Yield
and also displayed in basis points.
The table includes the one-day change in each curve spread.
How to Read the Indicator
The indicator is mainly designed around three questions.
1. What cumulative policy path is currently priced?
Use:
Expected path.
Most-likely path.
Meeting summary table.
2. How has that pricing changed?
Use:
Next 3 meetings repricing.
This shows whether the near-term strip moved toward a higher or lower expected policy path versus the previous daily observation.
3. How does the broader rates market look?
Use:
Treasury yield matrix.
Spreads versus EFFR.
2s10s.
5s30s.
Important Interpretation Notes
The displayed probabilities are model-derived from the futures-implied meeting changes.
They depend on:
The ZQ futures prices available through TradingView.
The scheduled meeting dates defined in the script.
The assumption of discrete 25 bp policy steps.
The calendar-day decomposition of meeting months.
The output should therefore be read as a transparent transformation of futures pricing, not as a direct observation of future policy decisions.
The futures market itself can also reprice continuously as economic data and expectations change.
Limitations
The probability distribution is derived by the script rather than imported as an independently calculated probability dataset.
Meeting outcomes are represented using discrete 25 bp steps.
Unusual policy moves may not be represented as naturally as standard 25 bp changes.
The meeting calendar is hard-coded.
The requested futures strip covers a fixed contract horizon.
Futures pricing reflects market expectations and risk premia; it is not a guarantee of future policy.
Missing or unavailable TradingView contracts can prevent some meetings from being calculated.
Expected paths can change materially as futures prices move.
Summary
Fed Funds Pricing converts the monthly ZQ futures strip into a meeting-by-meeting view of expected US policy rates.
Each futures price is converted into its implied monthly average federal funds rate. For months containing an FOMC meeting, the script uses the meeting date and surrounding monthly rates to estimate the implied pre- and post-meeting rate.
That meeting change is expressed in 25 bp steps and converted into a simple discrete distribution between adjacent outcomes. These meeting distributions are then combined to produce cumulative target-range probabilities for later meetings.
The indicator displays the resulting expected path, most-likely path, meeting distributions and near-term repricing alongside the current target range, EFFR and Treasury yield curve.
It is intended as a transparent visualization of rates-market pricing from the underlying data used by the script, rather than as a prediction of what the Federal Reserve will do.
Индикатор

Ljung-Box Serial Dependence MonitorLjung-Box Serial Dependence Monitor
Explore serial correlation in returns and in the size of price changes.
This indicator calculates a rolling Ljung-Box Q statistic and its approximate chi-square p-value. It combines the joint test with individual autocorrelations and a compact summary table in a separate pane.
THREE TEST SERIES
• Returns: log returns by default, with simple percentage returns available as an alternative.
• Squared returns: applies the calculation to squared returns.
• Absolute returns: applies the calculation to absolute returns.
The latter two modes explore dependence in return magnitude, including patterns consistent with volatility clustering. They do not establish a particular ARCH/GARCH model.
HOW THE TEST WORKS
For each window, the script subtracts the sample mean and estimates autocorrelations at lags 1 through h. It calculates:
Q = n × (n + 2) × sum , for k = 1…h.
The p-value uses an approximate chi-square distribution with h degrees of freedom. No fitted time-series model or residual degrees-of-freedom adjustment is applied.
A p-value below the selected significance level flags evidence against the joint hypothesis of zero autocorrelation at the tested lags. A larger p-value does not prove independence or unpredictability.
READING THE DISPLAY
• Yellow line: rolling p-value, on a 0–1 scale.
• Dashed level: selected significance threshold; 5% is shown as 0.05.
• Colored background: windows flagged as significant.
• Optional ACF lines: autocorrelation at lags 1, 2 and 3, where included in the lag setting.
• Table: sample size, lag count, Q, p-value, first three ACF values, summed ACF and a descriptive verdict.
The optional ACF band is the simple normal-approximation reference ±z/sqrt(n), labeled “Bartlett” in the script. It is not a simultaneous confidence band across all lags.
WHAT THE REGIME LABELS MEAN
The Ljung-Box statistic squares autocorrelations and does not determine the direction of dependence. This implementation adds a separate heuristic based on the sign of the sum of the tested autocorrelations.
For significant return windows, a positive sum produces the “Momentum / persistence” label; a negative sum produces “Mean reversion.” For transformed-return windows, the corresponding labels describe positive or negative dependence in return magnitude.
These labels summarize the sampled ACF pattern. They are not directional price forecasts or validated trading signals. Positive and negative correlations at different lags can offset one another in the sum.
ILLUSTRATIVE EXAMPLE
With 250 observations, 10 lags and a 5% threshold, a hypothetical p-value of 0.02 is below 0.05 and is highlighted. A p-value of 0.20 is not highlighted.
The first result does not mean a 98% probability that a trade will succeed. The sign-based label requires separate inspection of the ACF pattern. These numbers are illustrative, not backtest results.
SETTINGS AND ALERTS
Defaults are 250 observations, 10 lags, log returns and a 5% significance level. A full window must be available, and the implementation requires h < n/4. Choose a lookback strictly greater than four times the lag count; otherwise the script remains in its warm-up state.
Four alert conditions are included: dependence becomes significant, dependence disappears, positive-sum regime begins and negative-sum regime begins. The last two retain the script's “Momentum regime” and “Mean-reversion regime” alert names even in squared/absolute-return modes; in those modes they concern return magnitude, not price direction.
Values and conditions can change during an open bar. For alerts based on completed candles, select Once Per Bar Close when creating the alert in TradingView.
INTERPRETATION AND LIMITATIONS
Rolling windows overlap, and repeated tests are not independent. There is no multiple-testing correction. The chi-square approximation and the simple ACF reference band rely on statistical assumptions; changing volatility and other departures from these assumptions can affect interpretation.
Missing values are skipped by the sample buffer, so gaps may cause the window to represent the latest valid observations rather than consecutive chart bars. A constant window has no defined autocorrelation; absent Q or p-values must not be read as evidence of independence. Extreme tail probabilities can round to zero numerically. Larger lookbacks and lag counts increase computation substantially.
This is a statistical research display. It does not place trades, estimate expected returns or establish a profitable strategy.
METHOD REFERENCE
NIST: Box-Ljung Test — www.itl.nist.gov Индикатор

Adaptive Ehlers Filtered PercentileAdaptive Ehlers Filtered Percentile is a trend-regime indicator that combines a volatility-adaptive moving average, a displacement-weighted nonlinear filter, and percentile-based price-deviation bands.
The indicator is designed to separate three tasks: adapt the baseline response to changing price variability, further filter that baseline according to historical displacement, and derive regime thresholds from the observed distribution of price-to-trend deviations rather than from a fixed percentage or standard-deviation multiplier.
🟣How It Works
The first stage measures the standard deviation of one-bar price changes.
That volatility measurement is compared with a rolling reference range. The resulting position inside the range determines the effective moving-average period between the user-defined Minimum MA Period and Maximum MA Period.
Higher volatility favors the shorter period, while lower volatility favors the longer period.
The adaptive period is converted into a smoothing coefficient and applied recursively to produce the Adaptive MA.
🟣Displacement-Weighted Filter
The Adaptive MA is then processed through a nonlinear weighted filter.
For each observation in the filter window, the script compares the current Adaptive MA value with another Adaptive MA value separated by the Momentum Length.
The absolute displacement between those observations becomes the weighting coefficient.
Observations associated with larger displacement therefore contribute more heavily to the final filtered trend value, while observations with little displacement contribute less.
If valid weighting coefficients are unavailable, a simple moving average of the Adaptive MA is used as a fallback.
🟣Percentile Bands
The indicator measures the absolute distance between price and the filtered trend:
Absolute Deviation = |Price - Filtered Trend|
These deviations are ranked over the selected Percentile Length.
The chosen Percentile Level determines the historical deviation used as the base band distance.
Unlike standard-deviation bands, this approach does not assume a particular distribution of deviations. The band width instead comes directly from the ranked historical observations.
Separate upper and lower multipliers allow the two sides of the structure to be adjusted independently.
🟣Regime Logic
A bullish regime begins when the selected source moves above the upper percentile band.
A bearish regime begins when the selected source moves below the lower percentile band.
When price remains between the two bands, the previous regime is retained.
LONG and SHORT markers are therefore displayed only when the persistent regime changes rather than on every bar that remains outside a threshold.
🟣Main Settings
Minimum MA Period / Maximum MA Period define the response range of the volatility-adaptive moving average.
Volatility Period controls how much recent price-change history is used to determine the adaptive response.
Filter Length determines how many Adaptive MA observations contribute to the displacement-weighted filter.
Momentum Length determines the historical separation used when measuring displacement for the filter weights.
Percentile Length defines the sample of historical price-to-filter deviations.
Percentile Level determines which ranked deviation becomes the base band width. Higher percentiles generally create more selective thresholds.
Upper Band Multiplier / Lower Band Multiplier independently scale the bullish and bearish thresholds.
🟣Design Purpose
The indicator uses each component for a specific role:
Price-change volatility → Adaptive MA response
Adaptive-MA displacement → Nonlinear filtering weights
Historical absolute deviation → Percentile band width
Band breakout → Persistent market regime
The percentile stage is applied to the actual distance between price and the adaptive filtered baseline. This allows the threshold structure to adjust to the historical distribution of deviations rather than relying only on a fixed volatility multiplier.
The asymmetric upper and lower multipliers also allow the bullish and bearish breakout requirements to be configured independently.
🟣Limitations
This indicator is a trend-regime tool and not a complete trading system. LONG and SHORT labels identify changes in the indicator's internal regime; they do not imply guaranteed trade outcomes or future performance.
Percentile thresholds are based on historical observations within the selected lookback. A change in market behavior can therefore alter the band width as new deviations enter the sample.
The adaptive moving average and nonlinear filter are derived from current and historical price information and remain dependent on the selected parameters.
The script does not use higher-timeframe requests or lookahead logic. Индикатор

Session Gap Board [BSL]Session Gap Board tracks the holes this market leaves at its session
opens: which ones are still open, and for how long.
A session gap is the distance between a settled close and the next session's
open. It is not a fair-value gap. That is a three-bar intrabar imbalance and a
different object, tracked by other tools. Mixing the two would make both
counts meaningless, so this board tracks only session gaps.
Every gap is an object on the chart with a state you can read without any
text. A gap still open is a hollow box with a dashed border, extended to the
right. A gap that closed is a shaded box with a solid border, its right edge
fixed at the bar that closed it. Optional age labels read "17 sessions open"
or "closed after 3 bars". They start hidden because nearby gaps can otherwise
produce overlapping labels. Enable them in Age labels when needed.
THE NUMBER THAT IS NOT HERE
There is no fill percentage on this board. Not in the panel, not on a label,
not in a tooltip. That absence is the product, so here is the reasoning in
full.
A gap has two possible endings and, while it is open, neither has happened. A
closed gap is a finished observation. An open gap is an unfinished one: the
only true thing to say about it is "not yet".
Any percentage has to put the unfinished ones somewhere, and every available
choice distorts the answer in a direction you can name in advance:
- Count them as failures: closed divided by all gaps. Every unfinished
observation becomes a zero, so the figure is dragged down, and it moves on
every bar for reasons that have nothing to do with the market.
- Drop them: closed divided by gaps whose ending is known. This reads 100%
whenever every finished gap happens to have closed, which is common and
meaningless.
- Cut by age: closed divided by gaps older than some threshold. This changes
which gaps are being counted, and depends on a number nobody printed.
There is a further problem with the first choice. The set of gaps still open
is not a random sample of gaps. It is the set that has survived, and survival
is exactly what is being measured. A percentage built on it is measuring its
own selection.
So the board publishes counts and never a rate. Filled. Still open. Retired at
the cap. No hole. Sessions observed. They are tied by an identity you can
check on the panel rather than by a division:
sessions observed = no hole + filled + still open + retired at the cap
If you do want a rate, it comes from somewhere else. Eligible-Window Curtain
aligns unequal exposure at a common cutoff before anything is divided,
and this board names it on the chart so you know the number exists and why it
is not here.
WHAT COUNTS AS WHAT
A session that opens exactly at the prior settled close leaves no hole. It is
counted as NO HOLE and never as a fill, because nothing was ever open.
An X marks the bar that closed a gap: below the bar for a closed up gap, above
for a closed down gap. A bar that closes gaps on both sides shows both marks,
which is the honest picture rather than a choice between them.
A close still forming on the open bar is drawn as a CIRCLE, not a faded X. A
lighter X would say "the same thing, weaker". The true statement is "a
different thing, not yet confirmed", and a different shape says that.
YOUNGER GAPS ARE MARKED, NOT REMOVED
A gap that opened three sessions ago has had three sessions in which to close.
A gap from last year has had a year. Comparing them without saying so would be
unfair to the young one.
So a still-open gap younger than the maturity horizon is drawn with a fainter
border and a dimmed label. It is not filtered and not removed from any count.
The panel prints "younger than the horizon: 3 of 6 still open", two counts
side by side, no quotient. The marking says it has had less opportunity. It
says nothing about whether it will close.
THE CAP LIMITS THE DRAWING, NEVER THE COUNTING
Counters accumulate over the whole loaded history and are never decremented.
The drawing is capped, because boxes and labels are a finite resource. When a
new gap arrives and every slot is taken, the oldest ALREADY-CLOSED gap gives
up its box first: it has contributed everything it ever will, and nothing
moves in the counts.
Only when every slot holds a still-open gap does an unfinished one lose its
box. That is a real loss of information, so it gets its own counted row,
RETIRED AT THE CAP, and stays inside sessions observed rather than vanishing.
SETTINGS, AND WHAT THEY DO NOT CHANGE
- Tracked gaps, cap: 40
- Maturity horizon: 20 sessions
- Age labels: none
- Mark the bar that closed a gap: on
- Panel detail: Compact
- Panel position: Bottom center
The board offers six positions and starts at the bottom center. It is a wide
panel, the right-hand side is already busy with the price scale, and the
bottom-left corner has the TradingView logo in it, which would sit on top of the
first cell.
None of the display settings changes a count.
ON SYNTHETIC CHARTS IT STOPS
Heikin Ashi, Renko, Kagi, Point & Figure and Range charts do not draw the
market's own bars; they draw a construction from them. A gap between two
constructed prices is not a hole the market left. So on those chart types the
boxes, labels, marks and exported data are switched off and the table
collapses to one row naming the chart type. Switch to standard candles and the
board returns.
TWO EVENTS AND TWO STATES
Four series are published for other indicators to pick up in their Source
setting.
Two of them are EVENTS: a gap opening and a gap closing. Each is +1 on the bar
an up-side event happens, -1 for the down side, and 0 between events. Both are
shaped for Signal Audit Lab , where a still-open gap is carried as an
unfinished observation rather than as a blank.
Two of them are STATES, not events: whether the bar is a session boundary, and
whether both sides filled together. A state sits at 1 for as long as the
condition holds. Anything that reads events will treat the moment it turns
from 0 to 1 as an entry that nobody signalled. These two are for reading, not
for connecting to an event input.
All four carry no value at all before the board has an opinion, which is not
the same as a value of zero. When both sides of a session fill on the same
bar, the event series carries 0 and the two-sided state carries 1, so the
collision stays visible instead of being silently resolved one way.
The dropdown will also list the marks the board draws on closing bars, and its
four alert conditions. The marks are turned off by a display box, and a
switched-off mark hands a reader a steady 0 while carrying a name that reads
like an event. Take the four named here.
WHAT THE BOARD WILL NOT TELL YOU
It says nothing about what a still-open gap will do next. It does not rank
gaps, does not shade them by size, and does not suggest that age makes closure
more or less likely. There is no projection, no target and no "gap fill zone".
There is no entry, exit or stop anywhere in it, because it is a status board
and not a method.
This tool reports the state of session gaps as counts. It does not predict
price, guarantee performance or provide trading advice. Validate the behaviour
on your own symbols, timeframes and execution assumptions before making
decisions.
Open-source Pine Script® v6. Educational use only. Индикатор

Z-Score Range Boxes Breakout [BigBeluga]🔵 OVERVIEW
The Z-Score Range Boxes Breakout is an advanced technical analysis indicator designed by BigBeluga to identify statistical extremes using a smoothed Z-Score oscillator and automatically project consolidation range boxes and dynamic breakout levels directly on the chart. Traditional momentum indicators often generate false signals during choppy market conditions or fail to map physical price boundaries when assets reach overbought or oversold thresholds. To solve this limitation, this script triggers range-building boxes whenever the Z-Score crosses predefined statistical boundaries, tracking price extremes over a configurable period to establish key support, resistance, and midpoint extension lines.
The indicator visualizes real-time Z-Score oscillators in a separate pane with gradient coloring, dynamic range boxes, extended channel lines, and breakout markers. The core calculations track rolling standard deviation and mean values, smooth the resulting Z-Score, and manage box boundaries dynamically before issuing breakout alerts and line cleanups. Customizable threshold levels, box durations, and color palettes allow traders to fine-tune the system across various timeframes and asset classes.
🔵 HOW IT WORKS
The system operates through an integrated architecture where each component dynamically influences chart behavior:
1 — Z-Score Statistical Engine
Oscillator Calculation: Computes standard deviation and mean based on the Z-Score Length input to derive the statistical Z-Score, which is then smoothed using the Smoothing Line Length parameter.
Threshold Triggers: Monitors when the smoothed Z-Score crosses below the Oversold Trigger Level (default -2.0 ) or above the Overbought Trigger Level (default 2.0 ) to initiate range-building sequences.
2 — Dynamic Range Box Engine
Box Tracking Phase: When a trigger fires, a range box tracks rolling high and low prices over the duration specified by the Box Period Length (Bars) input.
Level Extension: Upon completion of the box period, the script establishes top, bottom, and midpoint levels, extending horizontal lines across the chart to map active structural boundaries.
3 — Breakout Detection & Clearing System
Breakout Monitoring: Detects bullish breakouts when price crosses above the established range top, or bearish breakouts when price crosses below the range bottom.
Line Management: Automatically clears extended lines and places visual markers upon a confirmed breakout to reset the tracking state for subsequent signals.
🔵 HOW TO USE
Apart from serving as a statistical range and breakout mapping tool, the indicator can be applied in several ways:
Identify Statistical Extremes: Monitor the separate oscillator pane to spot when the smoothed Z-Score breaches overbought or oversold boundaries.
Trade Range Breakouts: Wait for the box period to finalize and use the extended top, bottom, and midpoint lines as key breakout or reversal levels.
Track Momentum Shifts: Utilize the gradient-colored Z-Score line and threshold fills to gauge underlying market momentum and volatility expansion.
🔵 NOTES
Why this implementation is unique:
It bridges statistical Z-Score oscillator analysis with automated price range box generation and breakout tracking.
Features dynamic box resizing, multi-line level extensions, and clean oscillator pane gradient fills optimized for Pine Script version 6.
Provides robust modular inputs for threshold configuration, box durations, and custom color themes.
Индикатор

ATK/DEF Temporal Session Liquidity Flow ATK/DEF - Temporal Session Liquidity Flow is a new quantitative framework for observing market liquidity movement across defined sessions.
The system uses Asia, London, and New York as independent temporal environments and restructures session analysis around liquidity movement, directional movement, momentum, impact, structural breaks, and ATK/DEF events**.
Rather than functioning as a conventional session-based decision system, the framework separates the underlying market-event components and reorganizes them into a dedicated liquidity observation layer.
### Core Framework
* **Temporal Session Structure**
Asia, London, and New York are treated as independent market-session environments.
* **Liquidity Movement**
Price movement is analyzed through defined breakout, breakdown, and rejection relationships within each session.
* **Directional Movement**
ATK and DEF classify defined upward and downward breakout structures based on preceding price ranges.
* **Momentum & Volume Impact**
Candle-body magnitude and volume are quantitatively compared with their 20-period averages. A High Impact event is defined when both exceed 1.5 times their respective averages.
* **Break & Reject Structure**
Breakout and rejection conditions identify changes in price interaction with previously defined reference levels.
* **Impact & Destruction**
The framework focuses on observable price and volume conditions surrounding market impact and structural disruption.
### Quantitative Liquidity Observation
The system converts defined price, volume, and temporal relationships into structured market events.
Its primary analytical dimensions include:
**Direction → Momentum → Impact → Break → Reject → ATK / DEF**
These components form the of the system and provide a quantitative session environments.
### Reconstructed Session Architecture
The original session framework is reorganized from a decision-oriented structure into a market-movement observation structure:
**Session → Liquidity Movement → Direction → Momentum → Impact → Break / Reject → ATK / DEF**
The session therefore functions as the temporal environment in which liquidity-related market events are observed and classified.
### Analytical Purpose
This indicator is designed for:
* Market liquidity observation
* Session-based market analysis
* Price movement analysis
* Momentum and volume analysis
* Impact and structural-break observation
* ATK / DEF structural analysis
The indicator is intended only for **market observation, quantitative analysis, and -defined decision-making**.
All ATK, DEF, Break, Reject, Impact, and related structures are analytical classifications generated from the defined conditions within the script.
**Market observation, quantitative analysis, and -defined decision-making only.** Индикатор
