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. Indikator

Pullback Value Recovery [PhenLabs]📊 Pullback Value Recovery
Version: Pine Script™ v6
📌 Description
Pullback Value Recovery identifies a specific continuation sequence: a fresh breakout impulse, an established pullback, and a confirmed recovery. Instead of calling every dip a buying opportunity or every bounce a short, it waits for price to recover two separately measured price averages and clear the previous candle.
The two averages follow different groups of bars. One contains closes advancing with the original impulse; the other contains closes retracing against it. Here, “value” means these conditional HLC3 averages, not fair value, institutional positioning, or actual buying and selling pressure.
A qualifying recovery prints one directional marker and a fixed reference-close, structural-stop, 1R and 2R map. If the recovery is too extended or its stop is too wide, the episode is consumed without a signal, and the dashboard explains the rejection.
🚀 Points of Innovation
Two role-conditioned means: advance and retracement bars are accumulated separately after a confirmed seed, rather than blended into one whole-leg VWAP.
Preparation before recovery: a pullback must establish sufficient adverse bars and depth before a later candle can confirm recovery.
Prior-band testing: the recovery candle is tested against averages known before it formed. It cannot move its own confirmation threshold.
Whole-episode volume fallback: missing volume switches both averages to complete equal-bar histories, rather than mixing volume weights with arbitrary unit weights.
Explicit skip semantics: the first prepared structural recovery either produces a plan or is rejected. The same setup cannot issue repeated “second chance” signals.
🔧 Core Components
Impulse seed: a confirmed close breaks the prior rolling range, its directional body meets the ATR threshold, and it closes in the candle's outer quarter.
Advance mean: uses HLC3 from bars whose close-to-close movement agrees with the seed direction. The seed itself belongs to this group.
Retracement mean: uses HLC3 from bars whose close-to-close movement opposes the seed. Unchanged closes are excluded from both groups.
Local pullback: adverse-bar count and the pullback extreme reset after a close beyond the earlier running directional extreme. The cohort means remain anchored to the seed.
Recovery gate: after preparation, a long closes beyond the prior upper cohort mean plus a buffer AND above the previous candle high. A short closes below the prior lower mean minus a buffer AND below the previous candle low.
Risk map: the signal close is the reference price. The stop sits beyond the signal-inclusive pullback extreme; 1R and 2R are arithmetic references from that distance.
🔥 Key Features
Separate, clearly named bullish and bearish confirmed-recovery alerts.
Numeric event and state plots for Pine Screener workflows.
No external symbol requests, lower-timeframe requests, imported libraries, or footprint dependency.
Visible weighting mode, waiting state, rejection reason, and ignored-seed count.
One active setup or observed plan at a time, with capped historical maps.
Confirmed-bar state changes and fixed reference levels.
🎨 Visualization
Blue-violet line: advance-cohort mean.
Amber line: retracement-cohort mean. The means may cross; neither color represents buy/sell delta.
Faint ribbon: the interval between the cohort means while a setup is developing.
Teal / coral triangles: accepted long / short recovery events.
Dashed lines: reference close and structural stop. Dotted lines: 1R and 2R.
Short shaded map: analytical risk/reward regions. A resolved map stops growing; its prices remain fixed.
Retained status: REF | SL means stop threshold breached; REF | 2R means 2R reached/exceeded; ? is same-bar ambiguity; EXP is unresolved expiry; DATA is unknown. Hover the reference label for details. These are observations, not realized trading results.
Dashboard: detailed state information without covering the chart in labels. Table Size offers Compact, Normal, and Large.
📖 Usage Guidelines
Setup
Breakout lookback: default 20, range 5–100. Shorter windows admit more local breaks; longer windows require a broader range break.
Impulse body / ATR: default 0.65, range 0.20–2.00. Uses ATR(14) from BEFORE the seed and a directional body, not absolute candle size.
Retracement bars: default 2, range 1–6. Counts adverse closes within the local pullback; they need not be consecutive.
Setup expiry bars: default 48, range 10–150. Seed age is zero; age 48 expires before recovery, leaving default opportunities at ages 1–47.
Mean weighting: Auto uses reported chart volume; Equal bars ignores volume intentionally. Auto falls back for the entire episode if an included bar has missing or nonpositive volume.
Recovery filters
Maximum chase / ATR: default 1.00, range 0.10–3.00. Distance beyond the tested prior outer cohort mean.
Maximum stop distance / ATR: default 2.50, range 0.25–6.00. Rejects oversized reference-close-to-stop distance.
Plan observation bars: default 30, range 5–100. Observes only bars AFTER the signal. Threshold events on the final observation bar take priority over expiry.
Chart presentation
Show risk / reward maps: on by default. Hiding drawings does not disable plan observation or its busy state.
Initial map length: default 12, range 4–30. An unresolved map grows to the current bar only after that initial length.
Retained maps: default 6, range 1–12, including the active map. Older drawing objects are removed first; plotted recovery markers remain.
Show seed markers: off by default to keep the chart clean.
Show dashboard: on by default.
Table Size: Compact by default; Normal and Large are available. Map-dependent and dashboard-dependent controls are grayed out when inactive.
Fixed rules
Minimum pullback depth: 0.35 of frozen seed ATR.
Recovery buffer: 0.05 ATR beyond the prior outer cohort mean.
Origin invalidation and structural-stop padding: 0.10 ATR.
Cooldown: the next 8 bars after an accepted or rejected recovery attempt.
Only a fresh qualifying breakout burst can seed. Impulses while busy are ignored, never queued.
✅ Best Use Cases
Structuring a discretionary pullback-continuation review on standard candles.
Separating an unprepared pullback, an armed recovery, and an overextended entry.
Keeping reference risk visible without a dense multi-indicator layout.
Scanning event/state plots, then inspecting the underlying chart and data mode.
⚠️ Limitations
This is a pattern detector and analytical map, not a strategy backtest. No profitability, win rate, or accuracy is established.
The signal close is a reference, not proof of an executable fill. Gaps may breach a threshold without trading at its exact price.
If stop and 2R are both observed in the same candle, the result is marked ambiguous. OHLC does not establish which happened first.
1R is informational. There is no automatic partial exit, stop-to-breakeven, trailing stop, or position sizing.
One active episode or plan intentionally blocks other opportunities. The dashboard reports fresh seeds ignored while busy.
Reported volume can be tick volume or venue-specific volume. These groups do not identify buyers, sellers, absorption, or order flow.
On a fallback transition, the switch bar cannot signal. The indicator does not manufacture a delayed catch-up event.
Parameters, loaded-history initialization, revised data, and nonstandard chart types can change the result. Use standard candles for acceptance testing.
Signals are evaluated on confirmed bars using information available through that close. Recorded events and fixed plan prices remain unchanged under unchanged inputs, data, and initialization; active means and observation endpoints continue to develop by design.
No setup is a valid state. Consult the dashboard before loosening filters; more signals are not evidence of a stronger edge.
💡 What Makes This Different
The distinction is the advance-versus-retracement partition and the causal recovery sequence, not a renamed moving average or a decorative score.
The two means are role-conditioned across the entire episode, while local pullback readiness resets. This avoids carrying an old pullback stop into every later shallow dip.
⚙️ Under the Hood
Conditional anchored accumulators: each cohort keeps sum(HLC3), bar count, sum(HLC3 × volume), and sum(volume). The selected mean is the corresponding ratio. Only bars assigned to that cohort contribute.
Typed episode and plan objects: Pine user-defined types keep the anchor, direction, extrema, preparation latch, and drawing handles together. A bounded UDT array deletes the oldest maps first.
Causal state ordering: the bar's starting phase decides its processing branch. Origin invalidation and expiry precede recovery, and accepted plans are not observed until the next bar.
Prepared latch: enough retracement count/depth plus a close not beyond the buffered band arms a later recovery. This does not require a full traversal from below BOTH means, and the rail crossing need not coincide with the prior-candle break.
Data mode: core calculations need only chart OHLC and optional reported volume. Missing volume has an equal-bar fallback; missing required price data invalidates preparation or makes an active plan unknown. No premium data call is embedded.
Screener & alerts: “PVR Event (+1 long, -1 short)” is +1 or -1 only on an accepted event bar and 0 otherwise. “PVR Armed Direction” exposes +1/-1 for prepared setups. “PVR Phase” is 0 idle, 1 setup, 2 plan. Alerts are “PVR: Long recovery confirmed” and “PVR: Short recovery confirmed”; use Once Per Bar Close. Pine Screener availability and history limits remain subject to TradingView's plan/product rules.
🔬 How It Works
A fresh directional breakout starts an episode and freezes its ATR benchmark.
Advancing and retracing closes feed separate seed-anchored price averages.
The local pullback establishes adverse-bar count, sufficient depth, and a prepared close relative to the cohort band.
A later close recovers the prior band and clears the previous candle boundary.
Chase and stop-distance filters either accept that first structural recovery or consume it as a skipped setup.
An accepted event fixes the analytical map. Subsequent bars resolve it by stop threshold, 2R threshold, ambiguity, data invalidity, or time expiry.
💡 Note:
Start with default settings, inspect both directions, verify symbol-scale attachment, and compare replay/reload behavior before relying on alerts. This tool is an analytical aid, not financial advice.
Indikator

Market Structure BOS/CHoCH + Break Follow-Through [ForexCracked]🔵 OVERVIEW
Most market structure indicators stop at the break. This one keeps counting after it.
It draws the structure the way you already read it: confirmed swing highs and lows tagged HH, HL, LH and LL, a solid line at the level that would flip the current structure, and a BOS or CHoCH label the moment a bar closes through a swing. Then it does the part most structure tools stop short of. For every break it watches what price did next, files the outcome, and prints the counted result on the chart with the sample size next to it.
So the label on a break does not just say BOS. It says BOS, and that on this chart breaks like this one reached 1 ATR beyond the level before snapping back 116 times out of the last 200.
🔵 THE ANSWER IS THERE BEFORE THE BREAK
The two live levels, the last confirmed swing high and swing low that price has not yet closed through, are drawn as blocks at the right edge of the chart, teal above price and pink below. Each block is captioned with the break it would be under the current structure (BOS or CHoCH), the price, the distance, and what breaks of that kind did here: "BOS above 1.08420 · 12p · 1.0 ATR reached 116/200 (58%) · typical run to 1.08790".
The block's height is not decoration. It is the measured median run after breaks of that class on this symbol, so the top of the teal block is a price that breaks like this one typically reached. Medians print from eight samples and percentages from the minimum n. Below that the block falls back to the follow-through distance and its caption reads "finish line at" instead of "typical run to". A block never draws thinner than the minimum block height, and when that floor is what sets its height the caption reads "run floor at".
🔵 HOW A BREAK IS MEASURED
A break is a bar that closes through a live swing level. It is a BOS if it goes with the current structure and a CHoCH if it goes against it and flips it.
From the next bar the script runs a race with two finish lines the same distance from the level: 1 ATR beyond it in the break direction, and 1 ATR back through it on the other side. ATR is frozen at the break bar so later volatility cannot move the finish lines. Whichever is touched first decides the outcome: reached, or snapped back. If one bar touches both lines it is filed as snapped back, the conservative reading. If neither is touched within 30 bars the outcome is filed as neither. Nothing is estimated and nothing is fitted. Every figure is a count of price events on the chart in front of you, over the last 200 filed breaks of that class, and the n printed beside it is the real count.
Wick-only breaks, where a bar trades through a level but closes back inside, are measured with the same race in their own class. They are never drawn as events (the level's block border turns dashed once it has been wicked), but their number sits on the level's caption, so "should I wait for the close" gets an answer from your own symbol instead of a rule of thumb.
🔵 THE RUN BOX
After each close break a box is drawn from the level in the direction of the break. Its height is the median run for that class, its width the median bars it took to reach the finish line, and its caption prints the far edge as a price. The box then records what this particular break did: the border thickens when the finish line is reached, the box hollows and its border goes dashed when the break snaps back, and it fades if neither happens. The last few breaks stay on the chart as filled or hollow shapes, so the recent record is visible without reading a single number.
The break label itself is frozen at the moment of the break. It shows what the tool said at the time, never a hindsight figure. Only the outcome is added to it afterwards.
🔵 THE SWINGS
Swings are confirmed by price, not by counting bars. A swing high is confirmed the first time a bar closes a set number of ATR below it, and a close through the previous swing confirms the swing in between. There is no lookback length to tune and the same setting reads the same on gold, indices, crypto and forex. Tags land on the swing bar when the swing confirms, so they appear a few bars after the extreme printed. That is confirmation lag, not repainting. No tag, break line or break label is ever moved; only the outcome text is added to a label later. The two right-edge blocks and the panel are redrawn every bar by design, so their height follows the current ATR.
🔵 WHAT IS ON THE CHART
• HH, HL, LH and LL tags on confirmed swings (the first swing of each side is tagged H or L)
• A dashed border on a block means that level has already been wicked without a close through it
• A solid structure line at the level that would flip the current structure, teal under price while bullish and pink above it while bearish, with the dealing range shaded between it and the other live level
• A block at each live level, projected into the space right of price, captioned with the break type, the price, the distance and the counted result for breaks like it
• A line from each broken swing to the bar that closed through it, with a BOS or CHoCH label carrying the count as it stood at that moment
• A run box after each break, filled or hollow depending on what the break did
• A compact panel restating the structure, the two levels, the class counts and the last break
🔵 WHAT THIS IS NOT
This script draws no entries, no stops, no targets and no arrows. It has no order blocks, no fair value gaps, no sessions and no higher timeframe calls. It does not tell you to trade a break. It does not map liquidity pools, equal highs and lows or session extremes, does not count how often price reaches them, and does not mark sweeps or reversals. It is the structure map with the follow-through counted, so you can see on your own symbol whether the breaks you are reading have tended to carry on or to come straight back.
🔵 HOW TO USE
• Read the two blocks first. The block above is the level a close must clear and what happened after closes like that; the block below is the level a close must lose. The prices are printed.
• Treat the follow-through percentage as a base rate for this class on this chart, not as a forecast for this break. One hundred and sixteen out of 200 is a description of the past.
• Use the class split. If close breaks on your chart reach 1 ATR far more often than wick-only breaks, waiting for the close is worth its cost here. If the two numbers are close, it is not.
• Watch the run box after a break rather than the label. A box that hollows out is a break that snapped back, and the structure line will tell you where the next flip sits.
• Lower the swing setting to 1.0 ATR to see internal structure, raise it to 2.0 or more on choppy symbols so only real pullbacks count as swings.
🔵 SETTINGS
• Swing confirmation (x ATR): the close distance from the running extreme that confirms a swing (default 1.5)
• Follow-through distance (x ATR): the two finish lines, the same distance either way from the level (default 1.0)
• Outcome window (bars): how long the race runs before the outcome is filed as neither (default 30)
• Breaks kept per class: the rolling window every count is taken over (default 200), and the minimum n before a percentage prints (default 20)
• Chart: break lines to keep, run boxes to keep, minimum block height, how far the blocks project right, the dashboard and its position, colours
• Works on any symbol and any timeframe. Charts with little history print n below the minimum until the numbers fill in
🔵 ALERTS
• Bullish BOS, bearish BOS, bullish CHoCH, bearish CHoCH, each on the closing bar
• Wick-only break: price traded through a structure level and closed back inside
• Break reached its follow-through distance
• Break snapped back
• Price within a quarter of an ATR of a live structure level
The engine is close-based, so set alerts to fire once per bar close.
⚠️ DISCLAIMER
BOS and CHoCH are community terms for market structure. This is independent work and is not affiliated with or endorsed by any educator or course.
The percentages are counted descriptions of what happened after past breaks on this chart, not predictions. A class that reached its follow-through distance 70 times in 100 can snap back today. Samples vary by symbol and timeframe, and small samples are unreliable by nature, which is why every figure carries its n and prints nothing below the minimum. Nothing here is a trade signal. Results depend on market conditions, settings, and your own execution and risk management. Shared for educational and research purposes. Not financial advice. Indikator

MarketMaulers CISDMarketMaulers CISD marks the level where delivery changed state: the open of the run that raided a level and then failed to hold it. It runs on the chart timeframe and on up to two higher timeframes at once, and it draws one line per setup rather than a lane of candles, because the level is the whole product.
Potential · Confirmed · Invalidated
FROM ZERO: WHAT A CISD IS
Read it as a three-candle story.
C1 is the candle whose high or low is worth taking. C2 is the candle that takes it and closes back inside. C3 is the candle that opens afterwards, where the reclaim either gets proven or does not.
The CISD LEVEL is not C1's extreme and it is not C2's close. It is the OPEN of the consecutive same-direction run that did the raiding. That run is a sequence of candles all closing the same way, and its open is where the move that swept began. When price closes back through that open, the run that swept is now the run that failed. Delivery has changed state. That is the entire concept, and everything below is about identifying that one price honestly.
THE TIMEFRAME NAMES A GRANULARITY, NOT A CANDLE
This is the part most implementations get wrong, and it is the difference between a tool that fires several times an hour and one that marks something.
A CISD timeframe names the resolution you are confirming on. Its C1 and C2 candles come from one fractal step ABOVE it:
1m from 15m · 3m from 30m · 5m from 1H · 15m from 4H · 1h from 1D · 4h from 1W · 1D from 1M
So a 5m CISD is a 1H C1 and C2, confirmed on 5m closes. Hunting "the current 5m candle sweeps the previous 5m candle" is a different and much noisier thing that happens several times an hour and means little.
Two consequences follow, and both are visible.
• A CISD only draws when your chart timeframe is at or BELOW its own granularity. From a 15m chart a 5m CISD stays hidden, because the chart cannot resolve the closes that confirm it.
• A slot confirms at ITS OWN granularity. On a 5m chart the 15m slot waits for a 15m close, not a 5m one. Set a slot to CHART and the chart timeframe becomes the granularity, with its C2 still pairing one step up.
THE TWO-SIDED SWEEP RULE
A candle that takes BOTH sides of the prior candle is indecisive. It swept the highs and the lows, so there is no side it committed to and no direction to deliver in. No C2, no setup, either way. This gates everything and it is on by default.
MAULER MODE is the single exception and it is off by default. If that two-sided candle CLOSED beyond one of C1's extremes then it was decisive after all, and the setup stands. It loosens the strictest gate in the model, so it is worth turning on deliberately rather than leaving on.
WHERE THE LEVEL COMES FROM, AND WHY IT MOVES
The anchor is the open of the first candle of the current same-direction run. Only an opposite-close candle resets it. Wicks, extremes and dojis are transparent to it, and a run can span a candle boundary, because delivery often starts inside the previous candle.
Two rules keep that anchor honest.
• A RATCHET. Any candle opening beyond the current anchor drags the anchor to its own open. A rally pulls a dead anchor up with it, so a shallow wick past the extreme can never capture a stale run from hours ago. The anchor always sits at the origin of the CURRENT move.
• RE-ANCHORING TO THE FINAL SWEEP. When price sweeps, pulls back, then sweeps again further, the level moves to that last leg. The anchor is structural, a run open, so a bare noise wick past the extreme re-captures the same value. Only a genuine pullback and resweep shifts the mark.
WHAT POTENTIAL MEANS, AND THE ONE CASE THAT SURPRISES PEOPLE
Potential means one thing only: price has not closed through the level yet. It is not a statement about which candle the close belonged to.
So when the C2's own sealing close is already through the level, the CISD is CONFIRMED at that seal and draws that way immediately. There is no waiting for a later candle to say what has already happened.
That test runs at the seal and never in the middle of C2, because the level re-anchors every time price sweeps a new extreme inside the candle. A bar confirming against the level as it stood an hour ago would be confirming against a level that no longer exists.
INVALIDATION
A hunt dies when price takes the C2's own extreme before the level is reclaimed. That is a raw trade through it, not a close, because a trade is a trade at any resolution and the setup does not survive the manipulation extreme being taken back.
Failed levels are removed by default, which keeps every line on the chart a setup that is still live or one that actually worked. Turn on Keep failed and they stay as dotted, faded history with an invalidation tag, which is the honest picture when you are reviewing rather than trading.
WHY IT DOES NOT REPAINT
There is no security call anywhere in this script. The engine accumulates its own higher-timeframe candles from the bars it runs on rather than requesting them, so there is no lookahead idiom to get wrong and no repaint surface at all.
Confirmation reads the previous, always-complete bar, and only on a bar where the slot's own timeframe has rolled, which is what makes a 15m slot confirm on 15m closes rather than on whatever the chart happens to be. Every state change is judged on closed data.
THE TABLE
Three rows, one per slot, bull state and bear state. It reports what happened LAST rather than what has ever happened, so a side that confirmed and was later invalidated reads as invalidated. A readout that cannot go backwards is not a readout.
Deliberately independent of what draws. Most people run one slot on the chart and want the state of the other two without adding lines to the price pane.
ALERTS
CISD armed (potential) · CISD confirmed · CISD invalidated
Messages carry the slot timeframe, the direction, the event and the level price, so what arrives is a level you can act on rather than a notification that something happened somewhere. Create one alert on this indicator with the condition set to Any alert() function call and it carries every enabled event for every slot at once.
An optional killzone filter quiets alerts outside three editable windows. It touches alerts only. Outside your windows the chart is identical: setups still arm, confirm, draw and invalidate on exactly the same rules, you do not get pinged for them.
MADE TO FIT YOUR CHART
Three slots each with their own bull and bear colour. Potential and confirmed lines have separate style and width. Labels on or off with three text sizes. Three right-extension modes, including freezing a confirmed level at the bar it confirmed, which is the honest history: the level did its job there. Keep failed on or off, with a budget for how many finished levels stay per side. Table position, text size, and a toggle per section.
The kept-level budget goes to 250 a side, and the tooltip is blunt about what that means. TradingView caps a script at 500 lines and 500 labels total. Past roughly 80 a side with more than one slot on, the platform ceiling decides what you see rather than this number does. It is a budget, not a promise.
HOW TRADERS ACTUALLY USE IT
Start with one slot and leave the other two off. The default pair, 5m and 15m, is two different fractals on one chart, and running both before you have read either one on its own is how a clean idea turns into noise.
Leave Draw potential off at first. With it off, every line on your chart is a CISD that actually confirmed. Turn it on when you want to see the setups the tool was watching that never paid, which is a different and slower kind of study.
The invalidation alert is the underrated one. Knowing a level died is a stand-down, and stand-downs are cheaper than entries.
WHAT THIS TOOL IS NOT
It marks a level and reports what happened to it. It does not project targets, it does not size a position, it does not stack or merge zones, and it does not tell you the setup was good. Those are layers on top of a CISD rather than part of one, and this file marks the CISD.
Works on any market and any timeframe.
Display only. This marks a level and reports what happened to it, it does not fire buy/sell signals and it does not forecast. Educational tool, not financial advice.
Published open-source. The fractal pair table, the two-sided sweep gate, the delivery-run anchor and its ratchet, the re-anchor-to-final-sweep capture, the seal confirm, the per-slot granularity gate and the alert transport are all readable in the source. Everything above explains what it marks and how it decides what to mark; the code is there so you can check that the description is accurate rather than take it on faith. Read it, fork it, argue with the constants.
Indikator

Equal Highs & Lows [ITA]🟠 OVERVIEW
Equal Highs & Lows marks the places where liquidity pools build, and then
tracks what happens to them.
When two swing highs form at almost the same price, the stops of everyone who
sold that level sit just above it. The same is true in reverse below two equal
lows. Those clusters are what price often reaches for before it turns, and they
are visible on the chart long before anything happens to them.
Most tools that find these draw the two swings and stop there. This one keeps
the level alive until price actually takes it, then marks it as swept rather
than deleting it, so you can look back and see whether a symbol respects its
pools at all before you trade one.
🟠 CONCEPTS
* Equal Highs (EQH) - Two swing highs within a set tolerance of each other.
Stop orders rest above them.
* Equal Lows (EQL) - Two swing lows within tolerance. Stops rest below.
* Liquidity Pool - The cluster of resting orders those stops form. It is a
reason for price to travel somewhere, not a reason for it to reverse there.
* Sweep - Price trading through the level and taking the orders. What happens
immediately after the sweep is the part that matters.
🟠 FEATURES
🔹 Equality tolerance is set as a percentage of price rather than in points, so
the same setting behaves consistently on a five dollar stock and a seven hundred
dollar index
🔹 The level is drawn at the higher of the two equal highs, and the lower of the
two equal lows, because that is where the stops actually sit. Averaging the two
puts the line underneath the liquidity it is meant to mark
🔹 Levels extend forward on every bar until they are taken, so an untouched pool
stays visible for as long as it survives
🔹 Swept pools are greyed out and labelled instead of being removed, which
leaves a record of how the symbol has treated its pools historically
🔹 A cap on active pools, so old levels retire instead of filling the chart
🔹 Separate alerts for equal highs taken and equal lows taken
🟠 HOW TO USE
Start with the tolerance. It is the setting that decides everything else. On a
daily chart 0.1 to 0.3 percent is usually right. Intraday, drop it to 0.05 to
0.15. If you are seeing almost no pools, raise it. If everything is a pool,
lower it.
Read an unswept level as a destination, not a wall. Liquidity sitting above the
current price is a reason to expect price to reach up there at some point. It is
not a reason to short it.
The information is in what follows the sweep. Price taking equal highs and then
continuing up means the pool was simply passed through. Price taking them and
immediately failing back below is the sequence that traders are usually looking
for, and the sweep alert is there so you do not have to watch for it.
Swing Lookback controls how significant a swing has to be before it counts.
Raise it for fewer and more meaningful pools.
🟠 CONCLUSION
Equal highs and lows are easy to see once someone points at them and easy to
miss while a chart is moving. This marks them as they form, keeps them until
they are taken, and leaves the record behind. Indikator

Multi-Timeframe Structure Overlay [ITA]🟠 OVERVIEW
Multi-Timeframe Structure Overlay draws the structure of two higher timeframes
onto the chart you are actually trading.
Most multi-timeframe tools put the answer in a corner table: one hour bullish,
four hour bearish. That tells you the state but not where it sits, and price
does not trade against a table. Here the swing highs and lows those timeframes
are working with become lines on your chart, so you can see how far price is
from the level that would flip them.
Breaks are marked at the price where they happened, not in a corner.
🟠 CONCEPTS
* Higher Timeframe Structure - The swing highs and lows a larger timeframe has
confirmed. They are the levels that decide its direction, and they usually sit
somewhere your own timeframe never draws.
* Break of Structure - A close beyond the last confirmed swing in the direction
the timeframe was already going. Continuation.
* Change of Character - A break in the opposite direction to the previous one.
The first sign that the higher timeframe has turned, and marked separately
because it means something different.
* Bias - Which way each timeframe is currently pointing, based on its last
confirmed break. Shown as a small tag at the right edge rather than a panel.
* Alignment - Both higher timeframes pointing the same way. It has its own
alert, because that is usually the condition people are waiting for.
🟠 FEATURES
🔹 Two higher timeframes at once, each with its own colour, drawn as levels on
your chart rather than listed in a table
🔹 BOS and CHoCH labelled at the price where the break occurred, tagged with
which timeframe produced it
🔹 Bias tags at the right edge, offset from each other so they never overlap
🔹 A warning on the chart if a selected timeframe is lower than the one you are
viewing, instead of quietly drawing values that look plausible and mean nothing
🔹 Alignment alert for when both higher timeframes agree
🔹 Levels are requested with lookahead off and read from confirmed bars only,
so nothing shifts after the fact
🔹 Independent swing sensitivity, applied on each higher timeframe rather than
on your chart
🟠 HOW TO USE
Pick two timeframes above the one you are on. Working a 15 minute chart, one
hour and four hour is the usual pair. On a daily chart, use weekly and monthly.
Read the lines first. A higher timeframe level sitting just above price is the
level that flips its bias, and it is often nowhere near anything your own
timeframe would have drawn.
A CHoCH tag matters more than a BOS tag. Continuation is expected, a change of
character is the first evidence the larger move is turning.
When both bias tags point the same way, the higher timeframes agree. That is
the alignment alert, and it is usually a better filter than either timeframe on
its own.
Swing Lookback controls sensitivity on the higher timeframes. Raise it for
fewer and more significant levels.
🟠 CONCLUSION
Knowing the higher timeframe is bullish is not the same as knowing what price
has to do for that to change. This puts the second thing on the chart, where it
can actually be used. Indikator

Liquidity Sweep Quality Engine [algotim]Liquidity Sweep Engine with Quality Scoring is a liquidity-based market structure indicator designed to identify confirmed sweep events around previously established swing highs and swing lows.
Rather than treating every sweep as equally important, the script evaluates each event through a multi-factor validation framework that measures penetration depth, rejection quality, participation, and displacement. The result is a ranked sweep signal that helps separate meaningful liquidity events from routine market noise.
In addition to sweep detection, the indicator creates post-sweep memory zones that allow traders to monitor areas where significant liquidity interactions previously occurred.
Problem Statement
Many liquidity sweep tools generate signals whenever price briefly trades beyond a recent high or low. While these events occur frequently, a large percentage are minor volatility spikes that provide little analytical value.
This script was created to address that problem by introducing a structured quality assessment process.
Instead of asking:
"Did price sweep a level?"
the indicator asks:
"How meaningful was the sweep?"
Only sweeps that demonstrate sufficient penetration, rejection, participation, and displacement receive higher quality scores and stronger visual emphasis.
Methodology
The indicator begins by identifying confirmed swing highs and swing lows using pivot-based structure detection. These levels are stored as active liquidity levels and remain valid until they are swept or expire due to age.
When price interacts with one of these levels, the script evaluates whether a valid liquidity sweep has occurred:
Buy-Side Liquidity Sweep (BSL)
A buy-side sweep occurs when price trades above a confirmed swing high but closes back below that level.
Sell-Side Liquidity Sweep (SSL)
A sell-side sweep occurs when price trades below a confirmed swing low but closes back above that level.
Each detected sweep is then evaluated using the Sweep Quality Score engine.
Signal Workflow
Step 1 — Liquidity Level Registration
Confirmed pivot highs and lows are stored as active liquidity levels. Older levels automatically expire after the user-defined memory period.
Step 2 — Sweep Detection
The script monitors active liquidity levels for sweep conditions:
High exceeds swing high and closes back below.
Low exceeds swing low and closes back above.
Step 3 — Quality Scoring
Each sweep receives a score from 0 to 4.
The score consists of four independent components:
ATR-normalized wick penetration.
ATR-normalized rejection strength.
Volume confirmation above a moving-average threshold.
Body displacement confirmation relative to the prior candle.
Step 4 — Classification
Sweeps are classified as:
Weak
Qualified
Elite (SQS = 4)
depending on their final score.
Step 5 — Memory Zone Creation
After a sweep is confirmed, optional memory zones can be created and extended forward to highlight areas where liquidity was previously taken. These zones can gradually fade as they age.
Why This Indicator Is Different
Many liquidity indicators stop at detecting whether a level was breached.
This script adds a validation framework that attempts to measure the quality of the breach itself.
Key differences include:
Multi-factor sweep ranking instead of binary detection.
ATR-normalized measurements for penetration and rejection.
Optional volume participation validation.
Body displacement confirmation.
Active liquidity level lifecycle management.
Post-sweep memory zones for future reference.
The objective is not simply to show where liquidity was taken, but to highlight which sweep events displayed stronger evidence of rejection and participation.
Inputs
Liquidity Pool Detection
Swing Length
Level Memory
Sweep Quality Filters
Minimum Quality Score
ATR Length
Minimum Wick Penetration
Minimum Rejection Strength
Volume Confirmation
Volume Threshold
Volume Moving Average Length
Memory Zones
Show Memory Zones
Zone Depth
Zone Lifespan
Fade Zones
Visual Settings
Active Liquidity Levels
Sweep Labels
Weak Sweep Display
Level Extension
Colors
Separate color controls for:
Buy-side sweeps
Sell-side sweeps
Active levels
Memory zones
Alerts
The script includes alert conditions for:
Buy-Side Liquidity Sweep
Sell-Side Liquidity Sweep
Highest Quality Sweep (SQS = 4)
Any Qualified Sweep
Practical Usage
A common workflow is:
Allow the indicator to build a map of active liquidity levels.
Monitor sweeps occurring at those levels.
Prioritize higher SQS events over lower-quality sweeps.
Use memory zones to track future interactions around previously swept areas.
Combine sweep information with broader market structure, trend analysis, or risk management frameworks.
Limitations
Pivot-based levels require confirmation and therefore appear after the pivot has formed.
Liquidity sweeps do not guarantee reversals.
Volume-based scoring may behave differently on instruments with limited volume data.
High-volatility environments can still generate additional sweep activity.
Memory zones highlight historical reactions and should not be interpreted as future price predictions.
Notes
This indicator is a chart analysis tool designed to evaluate liquidity sweep behavior through a structured scoring framework. The output is intended to help organize and rank liquidity events, not to provide standalone trade recommendations. Indikator

EVA Ai + POC, Liquidity & Smart Money## Overview
**EVA Ai+ Volume Profile — POC, Value Area & Liquidity** is a market-structure and volume-distribution indicator designed to analyze where trading activity is concentrated across price.
Its primary purpose is to combine price-based Volume Profile information with confirmed liquidity structure in one analytical framework.
The script calculates a horizontal volume distribution, Point of Control (POC), Value Area, High-Volume Nodes (HVN), Low-Volume Nodes (LVN), directional volume estimates, and confirmed buy-side/sell-side liquidity pools.
These components are not intended to function as independent entry signals. They are combined to help answer a specific analytical question:
**Where is price currently being accepted, where is participation relatively low, and where does confirmed unswept liquidity remain in relation to that auction structure?**
The indicator does **not** generate automatic LONG or SHORT recommendations and does not execute trades.
---
## Purpose of the combined architecture
Volume Profile and liquidity analysis describe different aspects of market behavior.
Volume Profile measures how the available volume data is distributed across price.
Liquidity structure identifies confirmed areas around comparable swing highs and lows that have not yet been fully cleared according to the script's rules.
EVA combines these concepts because either one viewed in isolation can omit relevant context.
For example:
* POC and Value Area describe the center and boundaries of accepted value;
* HVNs identify local concentrations of calculated participation;
* LVNs identify comparatively low-volume regions;
* directional volume provides context about the composition of the calculated profile;
* confirmed BSL/SSL pools identify unresolved liquidity structures;
* distance and quality calculations place those structures in relation to current volatility and price.
The intended result is a single auction map showing **value, participation, low-volume structure, and confirmed liquidity context together**.
This interaction is the principal reason these components are included in one script.
---
## Volume Profile
The script distributes the available volume across horizontal price rows within the active calculation range.
The profile is intended to show where the selected market spent comparatively more or less trading activity.
### Point of Control — POC
POC is the price row containing the largest amount of calculated profile volume.
It represents the highest-volume row of the current profile calculation.
It should not be interpreted as an automatic support, resistance, entry, or reversal signal.
### Value Area
The Value Area contains the configured percentage of calculated profile volume surrounding the profile's primary volume concentration.
A commonly used setting is 70%.
The script displays:
* **VAH** — Value Area High;
* **VAL** — Value Area Low.
Price inside the Value Area indicates that it is trading within the profile's calculated value region.
Price above VAH or below VAL indicates that it is outside that region, but this condition alone does not imply continuation or reversal.
---
## HVN and LVN structure
### High-Volume Nodes — HVN
HVNs are local concentrations within the calculated profile where neighboring rows contain comparatively high volume.
They can be used to identify areas of previous acceptance or repeated participation.
Possible market behavior around an HVN can include rotation, consolidation, retesting, support/resistance behavior, or no meaningful reaction at all.
The script does not assume that an HVN must hold.
### Low-Volume Nodes — LVN
LVNs are local low-volume regions between areas of greater calculated participation.
They can highlight portions of the profile where historical acceptance was comparatively limited.
Price may sometimes traverse these areas more quickly, but an LVN does not guarantee acceleration or determine direction.
HVN and LVN structures remain components of the calculated profile and can change when the active profile range changes.
---
## Directional volume context
When lower-timeframe data is available, the script classifies lower-timeframe volume according to candle direction and aggregates that information into the profile.
The resulting values are displayed as:
* Up Volume;
* Down Volume;
* Delta.
**Delta in this indicator is the difference between the script's classified Up Volume and Down Volume.**
It is important to distinguish this from exchange-level bid/ask order-flow delta.
Pine Script does not provide the script with a complete historical exchange order book or universal historical bid/ask footprint data.
Therefore, EVA does not claim to reconstruct those datasets.
Directional volume is an approximation derived from the available lower-timeframe OHLCV data.
---
## BSL and SSL liquidity structure
The liquidity component identifies confirmed structures around comparable pivot highs and lows.
### BSL — Buy-Side Liquidity
BSL structures are created above qualifying comparable swing highs.
### SSL — Sell-Side Liquidity
SSL structures are created below qualifying comparable swing lows.
The script does not label every swing high or swing low as liquidity.
A liquidity structure requires multiple confirmed pivot observations that satisfy the script's similarity, spacing, volatility, and quality conditions.
This filtering is intended to reduce the number of insignificant structures displayed on the chart.
Liquidity terminology in this script represents a technical model based on price structure. It does not imply direct observation of hidden orders or stop orders in an exchange order book.
---
## Liquidity Quality
Each qualifying liquidity structure receives a quality value based on several measurable properties of the detected structure.
Depending on the active configuration, these properties include factors such as:
* relative volume;
* rejection characteristics;
* spacing between qualifying pivots;
* volatility-adjusted geometry.
The quality value is used for filtering and ranking detected structures.
It is a relative analytical score created by this script. It is **not a probability of a profitable trade or a prediction that a liquidity level will be reached or swept**.
---
## Liquidity states
Detected pools can move through several states.
### FRESH
The qualifying structure has been confirmed and has not yet met the script's test or sweep conditions.
### TESTED
Price has interacted with the structure according to the configured testing rules without completing the full sweep condition.
### OFF
The structure remains internally valid but falls outside the configured volatility-adjusted working radius and is therefore not displayed as an active nearby structure.
### SWEPT
Price has crossed the structure's defined far boundary.
Once this condition is confirmed, the corresponding active pool drawings are removed.
The state system prevents historical liquidity structures from remaining visually active after the script considers them resolved.
---
## Nearest structural references
The dashboard identifies nearby calculated structures such as:
* BSL;
* SSL;
* HVN;
* LVN.
Distances can be normalized using ATR so that the displayed distance is comparable across instruments with different nominal prices and volatility.
These values describe **location**, not trade expectancy.
A nearby BSL, SSL, HVN, or LVN should not be interpreted as a recommendation to enter a position.
---
## Profile modes
The script supports several ways to define the profile range.
### Visible Range
The profile is calculated from the chart region used by the script's visible-range logic.
Changing the visible chart area can therefore change the profile.
This behavior is intentional.
A Visible Range profile is dynamic and should not be interpreted as an immutable historical signal.
### Session
The profile is calculated using the selected session boundaries.
This mode can be used to examine session-specific POC, Value Area, and volume distribution.
### Fixed Range
The profile is calculated between user-defined time boundaries.
This mode can be used to inspect a specific impulse, consolidation, expansion, or other manually selected market segment.
---
## Adaptive configuration
The optional adaptive mode adjusts selected calculation parameters according to chart conditions.
Depending on configuration, this can include:
* lower-timeframe selection;
* profile row density;
* HVN/LVN sensitivity;
* pivot sensitivity;
* liquidity-zone width;
* minimum liquidity-quality threshold;
* volatility-adjusted display radius.
The purpose of this mode is to maintain usable analytical resolution across different chart timeframes and price scales.
Adaptive configuration does not optimize for future profitability and does not predict future market direction.
Users can disable adaptive behavior and use manual settings where required.
---
## Dashboard
The dashboard summarizes the current calculated state of the indicator.
Depending on the selected configuration, it can display:
### Auction
The location of current price relative to VAH, VAL, and the calculated Value Area.
### Range / Source
The active profile mode and the data source currently used by the calculation.
### Rows × Step
The effective number of price rows and the price increment represented by each row.
### Up / Down / Delta
The directional volume classification generated from the available data.
### POC / Distance
The current POC and price distance from it.
### Nearest BSL / SSL
The nearest qualifying liquidity structure together with distance, quality, and state.
### Nearest HVN / LVN
The nearest calculated high-volume and low-volume structures.
### Structure
A descriptive classification of the current volume distribution.
### Status
Information concerning the current calculation mode and available data.
The dashboard summarizes calculated information; it does not produce trading instructions.
---
## How to interpret the map
### Price inside Value Area
Price inside VAH and VAL is trading within the profile's calculated value region.
POC and HVNs can help locate concentrations of historical participation.
This does not necessarily imply a ranging market or predict that price will remain inside the Value Area.
### Price above VAH
Price above VAH is outside the upper boundary of the calculated Value Area.
Whether the move continues or returns into value depends on subsequent market behavior.
VAH alone is not a breakout confirmation.
### Price below VAL
Price below VAL is outside the lower boundary of the calculated Value Area.
VAL alone does not confirm bearish continuation.
### Interaction with an LVN
An LVN identifies a region of comparatively low calculated participation.
It can be used to observe how price behaves when entering a low-volume region, but it does not guarantee rapid movement through that area.
### Interaction with liquidity
When price reaches a BSL or SSL structure, users can observe whether the level remains active, becomes tested, or satisfies the script's sweep condition.
A sweep is a structural event only.
**A liquidity sweep does not by itself imply a reversal or continuation.**
---
## Data handling and confirmation
Where available, lower-timeframe OHLCV data is used to improve the allocation of volume within higher-timeframe chart candles.
When the requested lower-timeframe sample is unavailable or insufficient for the selected calculation, the script can use its documented fallback calculation instead of presenting an incomplete lower-timeframe profile as if it were complete.
Liquidity structures are based on confirmed pivot events.
Because a pivot requires subsequent bars for confirmation, a newly confirmed liquidity structure can appear later than the historical bar on which the pivot itself occurred.
The script does not interpret this confirmation delay as advance knowledge.
Developing profiles can change as additional data arrives.
Visible Range profiles can also change when the chart viewport changes.
These behaviors are inherent to dynamic profile calculations and should not be interpreted as historical trade signals being rewritten.
---
## Originality and design rationale
The script uses established analytical concepts such as Volume Profile, POC, Value Area, pivots, ATR normalization, and liquidity terminology.
It does not claim that those individual concepts are proprietary.
The distinctive functionality of this implementation is their integration into a unified state-based analytical system.
Instead of independently displaying several unrelated indicators, EVA:
1. builds a common price-row volume model;
2. derives POC and Value Area from that same distribution;
3. identifies local HVN/LVN structure within the profile;
4. estimates directional volume from lower-timeframe data where available;
5. independently confirms comparable pivot structures;
6. applies volatility-, geometry-, and participation-based filtering to those structures;
7. maintains lifecycle states for active liquidity pools;
8. relates nearby volume and liquidity structures to current price using a common dashboard and normalized distance model;
9. provides explicit fallback behavior when detailed source data is unavailable.
The purpose of the integration is to provide one coherent representation of **auction value, relative participation, low-volume structure, and unresolved price-based liquidity** rather than a collection of independent signals.
---
## Why the source code is protected
The source code is protected to preserve the implementation of the script's integrated profile construction, adaptive parameter logic, node-classification methods, liquidity-quality filtering, state transitions, data-fallback handling, and visualization architecture.
Closed-source visibility is not intended to prevent users from understanding the indicator's behavior.
This description therefore documents the script's purpose, inputs, main calculations, interpretation, data limitations, and expected dynamic behavior without exposing implementation-specific formulas and thresholds.
---
## Important limitations
Users should understand the following limitations before using the indicator:
* The script only has access to data supplied to Pine Script by TradingView and the active symbol's data provider.
* Volume characteristics differ between markets and symbols.
* On some Forex instruments, the available volume can represent tick volume rather than centralized exchange volume.
* The script does not have access to a complete historical exchange order book.
* It does not know the location of actual individual traders' stop orders.
* BSL and SSL are price-structure models, not observations of hidden orders.
* Directional volume is derived from available candle data and is not equivalent to true exchange bid/ask footprint delta.
* Confirmed pivots necessarily introduce confirmation delay.
* Visible Range calculations can change when the chart viewport changes.
* Developing profiles can change as new bars or intrabars become available.
* HVNs, LVNs, POC, VAH, VAL, BSL, and SSL do not predict future price behavior.
* No individual component should be interpreted as a guaranteed support, resistance, breakout, reversal, entry, or target.
* Different symbols, sessions, timeframes, and data feeds can produce materially different profile structures.
---
## Intended use
EVA is intended as a **market-reading and contextual-analysis tool**.
A typical workflow is:
1. identify the current Value Area and POC;
2. inspect the shape of the volume distribution;
3. locate nearby HVN and LVN structures;
4. identify confirmed active BSL and SSL structures;
5. compare those structures with current price and volatility;
6. observe subsequent price and volume behavior;
7. perform an independent trade and risk assessment.
The indicator deliberately does not convert this information into automatic LONG or SHORT instructions.
---
## Risk disclosure
This script is an analytical indicator and does not execute orders.
It does not provide financial advice, guarantee trading outcomes, or predict future market behavior.
Historical structures and previous market reactions do not establish how price will behave in the future.
Users remain responsible for independent analysis, position sizing, execution decisions, and risk management.
Indikator

Absorption Bubbles [vault]Absorption Bubbles
Absorption Bubbles is a tool for spotting high volume absorption at swing highs and lows, showing where aggressive orders pushing into an extreme were absorbed before the move gives it away.
How it works
The script measures every candle's volume against its own standard deviation (Threshold STDEV Length), so thresholds adapt automatically to any instrument and timeframe instead of relying on fixed volume numbers. A bubble prints only when three conditions line up on the same candle: price makes a local swing high or low, the candle closes with a rejection wick at that extreme, and scaled volume clears the selected threshold multiplier. On top of that, volume below its moving average (Threshold EMA Length) never prints, which filters out low-activity noise by design.
Green bubbles under swing lows signal buyers absorbing sell pressure. Red bubbles above swing highs signal sellers absorbing the push up. Absorption at an extreme tells you where the fight happened — the move that follows is usually the confirmation.
Bubble tiers
- Small, Medium, and Large bubbles, each with its own independent toggle and threshold multiplier (default 2x / 3x / 4.5x)
- Bubble size scales with absorption intensity, so weak, moderate, and heavy prints are visually distinguishable at a glance
- Optional Strength Gradient Color keys the bubble color to absorption intensity instead of flat buy/sell colors
Additional settings
- Bubble Positions: right at the wick or slightly offset above/below the extreme
- Bubble Size: Compact, Normal, or Large display presets
- Appearance Delay: shifts the bubble by N candles for confirmation
- Show POC: draws a line at the absorption price that extends until the next print, usable as a level to trade back into
- Timeframe-Adjusted Settings: independent STDEV/EMA lengths and threshold multipliers for 5m, 15m, 1H, and 4H — the script switches automatically based on the chart timeframe
- Built-in alerts for buy-side and sell-side absorption
- Works on any timeframe and any instrument with volume data
Disclaimer:
This is a context tool, not a signal service. Nothing here constitutes financial advice. Indikator

Order Blocks Graded [ITA]🟠 OVERVIEW
Order Blocks Graded marks order blocks and then does the part most scripts
skip: it tells you which ones are worth looking at.
A block only survives if the move that left it actually broke structure. What
survives is then graded A, B or C from two things that can be measured rather
than argued about - how far the impulse travelled relative to normal range,
and how much volume traded on the candle that produced it.
A-grade blocks are drawn solid. C-grade blocks are drawn faint. The grade sits
on the block itself, so a glance is enough.
🟠 CONCEPTS
* Order Block - The last opposite-colour candle before the move that broke
structure. The bullish version is the final down candle before price broke a
swing high, and the bearish version is its mirror.
* Break of Structure - A close beyond the last confirmed swing point. Without
one there is no block, because nothing was displaced.
* Impulse - The distance from the block to the close that broke structure,
measured in ATR multiples so it means the same thing on any symbol and any
timeframe.
* Grade - A when the impulse cleared the A threshold, B when it cleared the B
threshold, C otherwise. An origin candle on above-average volume lifts the
block one grade.
* Mitigation - Price trading back into the block. Mitigated blocks grey out,
or are removed entirely if you would rather only see what is still untouched.
🟠 FEATURES
🔹 Structure filter - a block is only kept when the move that left it broke a
swing point, so consolidation noise never produces one
🔹 A/B/C grading from impulse size in ATR terms and volume on the origin candle,
with the thresholds exposed as inputs
🔹 Opacity follows the grade, so the strongest blocks are the ones that stand
out without reading anything
🔹 Minimum block height, which stops a doji from leaving a flat line where a
zone should be
🔹 Staleness cutoff - a block price never returned to eventually stops being
useful and is dropped, instead of stretching across the whole chart
🔹 Mitigated blocks either grey out or disappear, your choice
🔹 Lowest grade to draw, so you can hide C blocks entirely and keep only the
strong ones
🔹 Alerts on both bullish and bearish blocks
🟠 HOW TO USE
Start with everything visible and see which grades your symbol actually
produces. Then raise the lowest grade to draw until the chart shows only what
you would act on.
Treat A blocks as the ones worth waiting for. They come from a move that
travelled several times normal range, which is what displacement is supposed to
mean in the first place.
Grey blocks are history, not signals. They show where blocks formed and how
they graded, which is the fastest way to see whether this symbol respects them
at all before you trade one.
Swing Lookback controls everything upstream. Lower values find more structure
and therefore more blocks, higher values find fewer and larger ones.
On a volatile symbol the blocks are wide and easy to read. On an index they can
be thin, so raise Minimum Block Height if the chart starts to look like lines
rather than zones.
🟠 CONCLUSION
Finding order blocks is easy and most scripts already do it. Knowing which of
them earned their place is the part that decides whether the chart helps you or
just fills up. That is what the grade is for. Indikator

Auto Fibonacci Retracement, Golden Zone & OTE Levels [LunqFX]Every fibonacci retracement tool draws the same six lines, and every one of them assumes you already picked the right swing. Drag the fib from a different high and the golden pocket lands somewhere else entirely — so the fibonacci level you are about to buy is not a level the market chose, it is a level your cursor chose.
This auto fibonacci indicator takes the swing out of your hands. The leg is anchored to confirmed pivots and re-anchors itself the moment structure makes a new extreme, so the fib retracement on the chart is always drawn from the leg the market is actually trading, and the golden pocket and OTE zone sit where that leg puts them.
And it adds the number no fibonacci retracement indicator has ever given you: how deep this symbol actually retraces.
Included: automatic fibonacci retracement from confirmed swing pivots, an adjustable golden pocket and OTE zone filled on the chart, fibonacci extension targets beyond the leg, gold candles on the bars that traded inside the zone, a measured typical retracement depth for the current symbol, a dashboard reading the live fib retracement, and alerts on the zone.
❶ HOW THE FIBONACCI IS ANCHORED
Swing points come from confirmed pivots, so a leg only exists once the bars on both sides of its pivot have closed. Nothing appears and then vanishes.
The active leg runs from the anchor pivot to the extreme pivot. A new pivot beyond the extreme, in the same direction, extends the leg — the fibonacci retracement stretches with it. A pivot the other way flips the leg and the fib re-anchors to the new one. There is no setting for "which high to use", because the structure decides.
❷ THE GOLDEN POCKET AND THE OTE ZONE
The band between 0.618 and 0.786 is filled, with a soft halo behind it so it reads at a glance on a crowded chart. Smart money traders call this band the OTE — the Optimal Trade Entry — and it is where continuation entries are taken after a pullback, because it is deep enough that the move is discounted and shallow enough that the leg is still intact.
The golden pocket, the narrow 0.618–0.65 strip, sits along the top edge of that band. Both edges are adjustable, so set them to 0.618 and 0.65 if the pocket alone is what you trade, or to 0.5–0.618 if that is your definition of the golden zone. The whole tool follows whatever you set — the depth statistics, the dashboard and the alerts all read from the same two numbers.
❸ EXTENSIONS
Three projections beyond the leg, negative fib values by default at −0.272, −0.618 and −1.0. They are drawn from the same anchors as the retracement, so a target is measured against the same swing the entry came from rather than against a fib you dragged separately.
They ship switched off. A target at −1.0 sits far enough from price that the chart's autoscale stretches to include it and squashes the candles into a band — useful once you are in a trade, in the way while you are reading the chart. Switch them on in the Extensions section when you need them.
❹ A SPENT LEG STOPS SHOUTING
When price trades all the way through the anchor, the leg has done everything it was going to do. The fib cannot re-anchor until the next pivot confirms, so in the meantime the whole drawing fades: the levels dim, the golden zone loses its glow and its label reads spent.
It is a small thing that most tools get wrong. A fib left burning at full brightness over a setup that is already finished is not neutral — it is the chart arguing for a trade that is no longer there.
❺ TYPICAL RETRACEMENT DEPTH — what a fibonacci tool never shows
0.618 is a number from a sequence. It is not a fact about gold, or about the euro, or about this timeframe.
So the indicator measures it. Every time a leg pulls back and then makes a new extreme in the same direction, the depth of that pullback is recorded. The average of those depths is printed on the chart as its own line, and in the panel with the sample size behind it:
Typical depth 0.547 (23 legs)
Read it against the golden zone. When the measured depth sits at 0.55 and the golden zone starts at 0.618, this symbol has been turning BEFORE the golden zone — waiting for 0.618 means the move leaves without you. When it sits at 0.72, shallow entries at 0.5 have been getting run over.
Only pullbacks that were followed by continuation are counted. A leg that reversed outright is not a retracement, and folding those in is how a depth average gets quietly inflated past anything useful. Samples under eight legs are marked with a tilde, because an average of three is not an average.
❻ THE CHART ITSELF
Every candle stands in a soft lit column — an aura drawn behind it, its body stretched across the full range and left almost transparent with its outline switched off. The effect is a neon tube rather than a coloured rectangle.
The glow is not constant. Its brightness is driven by the bar's range against ATR, so a conviction candle burns and a doji barely registers. Strength becomes something you feel across a screen of price action instead of something you measure bar by bar, and the decoration is carrying information rather than existing for its own sake.
The candle on top has a translucent body against a solid outline. That one detail is what makes it read as part of the chart instead of a sticker placed over it: the background shows faintly through while the edge stays crisp.
Five palettes, because one set of colours cannot suit every background. Neon Bloom is turquoise against magenta, a matched pair that leaves gold free for the zone. Midnight Cyan is the common signature dark scheme, Vibrant Neon the high-contrast crypto pairing, Classic Soft the muted everyday version. Cool Blue drops red entirely — a number of full-time traders run blue against grey, since red carries a stress response that gets in the way of reading a chart objectively for eight hours at a stretch.
Bars of the current leg that closed inside the golden zone are drawn in gold, so the OTE is visible in the price action and not only in the band behind it. Only the current leg is marked — a highlight left over from a leg that ended months ago sits nowhere near the zone on screen and reads as a fault.
The levels follow the same restraint, in three tiers rather than nine identical lines: the two ends of the leg carry its direction, the levels between them sit back in muted grey, and the accent is spent once, on the golden zone. Candle colouring can be switched off entirely if you would rather keep your own.
❼ THE DASHBOARD
Leg direction and size, the live retracement as a single large number, whether price is inside the golden zone or has not reached it yet, the measured typical depth with its sample count, and the 0.618 and 0.786 prices ready to be turned into orders.
HOW TO USE IT
1 — Wait for the leg, not the level. The fib only exists after a confirmed pivot. That delay is the point: it is what stops you fibbing a swing that is still forming.
2 — Compare the golden zone with the typical depth line. If they overlap, the zone is doing its job on this symbol. If the typical depth sits well above or below it, trade the measured level and treat 0.618 as decoration.
3 — Use the extensions as the other half of the trade. An entry in the golden zone with a target at −0.272 is a defined structure; an entry with no target is a hope.
4 — Change the swing length to change the timeframe of the analysis. A short length gives the fib of the current intraday leg; a long one gives the fib of the swing the whole session is trading inside. Both are valid, and they answer different questions.
HOW IT WORKS
Pivot highs and lows of your chosen length define the leg. Span is the distance between anchor and extreme; a retracement level is the extreme moved back toward the anchor by its fraction of the span, and an extension is the same arithmetic past the extreme. The live retracement is the current close expressed in that same fraction. Depth statistics keep a rolling window of completed pullbacks and report their mean.
Works on any symbol and any timeframe. On higher timeframes raise the swing length so the fib tracks the swing rather than the noise inside it.
SETTINGS
▸ Swing — pivot length and how far levels extend to the right. ▸ Retracement Levels — each level individually switchable. ▸ Golden Zone / OTE — fill on or off, and both edges of the band. ▸ Extensions — three targets, any fib values you like. ▸ Depth Statistics — on or off, and how many legs are remembered. ▸ Visuals — labels, line width, five candle palettes plus off, aura glow and its strength, gold OTE bars, dashboard position.
ALERTS — price entered the golden zone, 0.618 reached, leg fully retraced, and fib re-anchored. All fire on closed bars.
NON-REPAINTING — the fib is anchored to confirmed pivots, which means a leg is only drawn after the bars either side of its pivot have closed. The depth record is built from completed pullbacks and never changes retroactively.
WHY THESE PARTS ARE ONE SCRIPT
The auto-anchoring, the golden zone and the depth measurement describe one object. Auto-anchoring alone gives you a fib that is correctly placed but still generic. The golden zone alone is a band drawn on an assumption. The measurement exists only to tell you whether that assumption holds on the symbol in front of you — and it needs the anchoring to have legs to measure. Remove any one and the other two lose their point.
This indicator is an educational market-analysis tool, not financial advice. The depth statistic describes pullbacks that have already happened on the loaded chart; it does not predict the next one. Always confirm with your own analysis and manage your risk.
Indikator

Structural Liquidity & POC Matrix [BigBeluga]🔵 OVERVIEW
The Structural Liquidity & POC Matrix is a clean, automated price action terminal built to track institutional key levels. It isolates important market highs and lows over a set lookback period and instantly projects them onto your chart as trailing liquidity lines.
Additionally, the script calculates a dynamic volume profile between those major high and low structural markers. Instead of scattering lines everywhere, it neatly draws this volume breakdown on the right side of your workspace to reveal exactly where the heaviest trading occurred and highlights the Point of Control (POC).
🔵 FEATURES
The toolkit maps out key market interaction zones using a streamlined structural tracking framework:
1 — Dynamic Liquidity Range Tracking
Automated Sweep Highs & Lows: The engine scans your chart using a set lookback period ( Liquidity Length ) to find key historical highs and lows, drawing sharp levels right at those turning points.
Smart Fading Level Lines: Once a liquidity line is plotted, it trails forward until it hits a customizable timer limit ( Fade Liquidity ). The line smoothly fades out and resets over time, ensuring your chart stays perfectly clean.
Visual Breakout Diamond Markers: The exact moment price action breaks or shifts out of a previously established liquidity level, the script prints a sharp diamond symbol (◆) to flag the market sweep.
2 — Adaptive Sidebar Volume Profile & Matrix
Right-Side Profile Alignment: To keep your workspace completely clear of clutter, the script shifts the historical volume breakdown out of the way, plotting it onto the right margin of your screen ( Profile Offset ).
Structural Volume Distribution: The engine tallies up all volume traded between the active major high and low blocks. It dynamically projects the results as a clean structural polyline matrix block, colored to match the dominant market flow.
Point of Control (POC) Target Line: The system automatically scans your volume data to pinpoint the absolute heaviest volume node ( Point of Control (POC) ). It stretches a bright line ( POC Color ) from the start of the structure all the way through the profile to reveal major institutional fair value anchors.
// Volume Profile Array Bins & POC Target Index Lookup
volBins = array.new(size, 0.0)
for i = start to bar_index
price = close
binIdx = math.floor((price - profBot) / atr)
if binIdx >= 0 and binIdx < size
array.set(volBins, binIdx, array.get(volBins, binIdx) + volume )
maxVol = array.max(volBins)
pocBinIdx = volBins.indexof(maxVol) // Find the exact index of the POC
🔵 HOW TO USE
Integrating these structural matrix lines into an everyday trading plan follows a clear, step-by-step strategy structure:
Isolate the Active Range Boundaries: Monitor the top orange and bottom blue tracking lines to instantly map the current structural playing field. These trailing boundaries reveal exactly where short-term stops and market liquidity pool rest.
Locate the Institutional Fair Value Anchor: Look for the bright yellow Point of Control line stretching across the chart. This level shows you where the largest amount of volume has changed hands, identifying a strong support or resistance anchor for future retests.
Execute Trades Off Range Sweeps: Watch the chart closely when price sweeps past an outer liquidity line and prints a diamond indicator. If price snaps back inside the range, look to ride the reversal momentum straight across the matrix toward the yellow POC target line.
🔵 NOTES
Why this implementation is unique:
It acts as a compact, self-cleaning support and resistance tool by automatically fading out old level lines before they can crowd your screen.
Rather than forcing you to look at a fixed, unmoving session volume profile, it anchors its volume calculation directly between the active high and low price pivots.
The smart polyline rendering engine keeps your trading window uncluttered by cleanly shifting detailed volume histograms entirely over to the right margin space.
Indikator

ICT Killzones + Session Liquidity Levels [ForexCracked]🔵 OVERVIEW
Most killzone indicators shade the London and New York windows and stop there. This one uses the sessions as the starting point and then answers the question you actually open the chart for: which session highs and lows are still sitting there untaken, how deep price usually runs past a level like that when it does get taken, and whether the next session is even big enough to reach it.
Asia, London and New York are boxed with their ranges in pips. Every completed session leaves its high and low behind as a liquidity zone. The moment one gets swept it is deleted, so everything you can see is still in play.
🔵 THE ZONES ARE BANDS, NOT LINES, AND THE THICKNESS IS MEASURED
This is the part that is different. When a session high gets taken, price rarely stops exactly at it. It runs past, and how far it runs is a property of the symbol and the session, not a round number.
So the engine records the overshoot every single time a level of that session and side is taken, keeps the last forty, and draws the zone with a thickness equal to the median of those overshoots in ATR units. The upper edge of a pink zone is therefore a measured price: the level where the run past this kind of high has historically finished. Below eight recorded samples the zone falls back to a default height and the label says so, so you always know whether the number has anything behind it.
🔵 SESSION HANDOFF TALLIES
Under each Asia and London level is a count of what the sessions after it have actually done with levels like it.
An Asia high shows two counts: how often London swept it, and how often New York did. A London level shows what New York did with it. New York is the last session of the day, so its levels carry no handoff count, they are simply untapped until swept. The counts read like "LDN swept 34/60 sessions", counted price events from the chart in front of you with the sample size attached. On very low timeframes the chart does not hold 60 sessions, so n will be smaller. The label always shows the real n.
🔵 THE FORWARD ENVELOPE
Right of the last bar, the session that has not opened yet is drawn as a dashed box, sized by the median range of that session over its recent history, with both edge prices labelled.
That is there to keep you honest about distance. An untapped Asia high forty pips above price means something different when London's median range is seventy pips than when it is thirty. The envelope shows you which situation you are in before you plan the trade.
🔵 WHAT IS ON THE CHART
• Navy session boxes for Asia, London and New York, each labelled with its range in pips
• A faint tint over the London and New York killzone windows
• Pink zones for liquidity above price, teal for liquidity below, each with its price, its distance, its measured depth, and, on Asia and London levels, its handoff tallies
• A dashed forward envelope for the next session, with edge prices
• A compact panel: the live session, today's ranges against their medians, how many levels are untapped each side, and the nearest one
🔵 HOW TO USE
• Read the untapped levels as destinations, not entries. They are where resting orders sit, which is where price is often drawn.
• Use the far edge of the zone for invalidation. That edge is the measured median overshoot, so a stop just beyond it sits past where the run usually finishes rather than at a round number inside it.
• Check the forward envelope before you commit to a level as a target. If the level sits outside the next session's median range, reaching it is the exception rather than the expectation.
• Treat the handoff tally as base rate, not prediction. Thirty-four out of sixty tells you it is close to a coin flip. Fifty out of sixty tells you something much stronger about that symbol.
• Set your own session hours. The defaults are the common GMT windows, but the timezone dropdown and the three session inputs let you match your broker or your own killzone definitions.
🔵 SETTINGS
• Intraday only, 4H or faster. Sessions have no meaning on daily bars, and the script says so on the chart if you try
• Timezone, and the three session windows (defaults are Asia 0000-0800, London 0800-1600, New York 1300-2100 GMT)
• Skip weekend sessions in statistics (default on): on 24/7 symbols the quiet weekend sessions still draw their levels, but they stay out of the medians and tallies so they do not drag the numbers down
• Two killzone windows, shaded faintly, defaulting to the London and New York opens
• Statistics window: how many completed sessions the medians and tallies are counted over
• Minimum zone height in ATR, so a zone never becomes too thin to see on a small chart
• Days of session boxes to keep, untapped levels per side, dashboard position, colours
🔵 ALERTS
• A session opens, or a killzone opens
• An untapped session level is swept
• Price comes within a quarter of an ATR of the nearest untapped level
⚠️ DISCLAIMER
"ICT" is used here as the community vocabulary for killzones and session liquidity concepts. This script is independent work and is not affiliated with or endorsed by Inner Circle Trader.
The tallies and median depths are counted descriptions of what has already happened on this symbol, not forecasts. A level that has been taken fifty out of sixty times can hold today. Sample sizes vary by symbol and timeframe and small samples are unreliable by nature. Nothing here is a trade signal. Results depend on market conditions, settings, and your own execution and risk management. Shared for educational and research purposes. Not financial advice. Indikator

Liquidity Stress Exhaustion [MarkitTick]💡 A market-microstructure stress detector that flags moments of seller or buyer exhaustion by combining an Amihud-style illiquidity z-score with trend regime, a regression-based fair-value channel, and automated ATR trade levels. Rather than reacting to price alone, this script measures how much price is moving relative to the volume behind it, then cross-references that stress reading against trend direction and candle behavior to identify points where aggressive selling or buying is likely running out of steam.
✨ Originality and Utility
Most exhaustion-based tools on TradingView rely on oscillator extremes (RSI, Stochastic) or candlestick pattern recognition in isolation. This script takes a different route: it borrows a concept from academic market-microstructure literature — price impact per unit of volume, i.e., illiquidity — and turns it into a real-time, standardized stress signal. Instead of asking "is price overextended?", it asks "is price moving too much for the volume that's actually trading?" A large true-range on abnormally low volume is treated as a sign of thin, stressed liquidity, and it is this stress, combined with a counter-trend candle, that defines exhaustion here — not price level alone.
This is not a simple mashup of unrelated indicators bolted together for the sake of a new publication. The illiquidity stress engine, the trend filter, the regression channel, and the correlation/ADX filters are all working toward a single, coherent question: is the current directional move statistically and structurally likely to reverse or stall? The z-scored stress reading identifies unusual conditions, the EMA trend filter and candle-close direction confirm which side is under pressure, and the optional Pearson-R and ADX filters exist specifically to suppress signals when the broader price action lacks the statistical structure (trending correlation, directional strength) needed to make the exhaustion reading meaningful. Each component narrows the false-positive rate of the others; removing any one of them would meaningfully change what the tool measures.
The script goes further than a plain signal generator by translating each exhaustion event into a fully computed trade plan — an ATR-derived stop, a dynamically computed R (risk unit), and three R-multiple take-profit targets — visualized directly on the chart and exposed through a structured alert payload designed for automation.
🔬 Methodology and Concepts
• Illiquidity Stress Engine
The core of the script computes a proxy for market illiquidity on every bar: true range divided by volume (with a safe fallback when volume is zero or unavailable), then compressed with a natural-log transform to tame outliers. This raw illiquidity series is then standardized into a z-score using a rolling mean and standard deviation over the "Stats Lookback" period. A z-score above your chosen "Stress Threshold (σ)" marks the bar as being in a state of high stress — meaning price moved an unusually large amount for the volume that supported it, a hallmark of thin liquidity and potential exhaustion of the prevailing move.
• Trend Regime Filter
Direction is established by comparing price (optionally pre-smoothed by an adaptive filter, see below) against an EMA of configurable length. Price below the EMA defines a downtrend; price above defines an uptrend. Exhaustion signals are only valid when they occur against the backdrop of an established trend in the opposite direction — a seller exhaustion signal requires the prior bar to have closed in a downtrend on a red candle, while buyer exhaustion requires an uptrend and a green candle.
• Adaptive Price Filters (Optional)
Two optional smoothing methods can replace raw closing price throughout the trend calculation:
Kalman Filter: a lightweight recursive estimator that continuously balances trust between the incoming price and its own prior estimate, adapting its responsiveness based on a fixed process/measurement noise ratio derived from your chosen length.
LLAMA (Linear-Lag Adjusted Moving Average): a hybrid that takes a simple moving average and adjusts it by half the recent linear slope, aiming to reduce the lag inherent in plain moving averages.
These exist to give the trend filter a smoother, less noise-reactive input than raw closing price when desired.
• Regression Fair-Value Channel
On the most recent bar, the script performs a least-squares linear regression over a lookback window (either a fixed length, or a dynamic length measured from the most recent qualifying pivot, capped by "Max Lookback Cap") using hlc3 as the source. From this it derives the regression line itself, its standard deviation, and the Pearson correlation coefficient (R), which measures how well price actually fits a straight line over that window. Inner and outer channel bands are plotted at user-defined standard-deviation multiples above and below the regression line, giving a visual statistical envelope for the recent price trend.
• Correlation and ADX Filters
Two independent filters can suppress exhaustion signals when the broader trend lacks structural conviction:
Pearson R Filter: when the absolute value of the regression's correlation coefficient falls below your threshold, the trend is considered statistically weak/directionless, and the channel is recolored neutral to flag this — though note this filter affects only the visual channel coloring, not signal firing.
ADX Filter: when enabled, exhaustion signals are only permitted when ADX is at or above your threshold, filtering out exhaustion calls during periods of weak directional movement.
• Pivot Detection
Standard confirmed pivot highs and lows (requiring the specified number of bars on each side) are tracked internally to support the optional Dynamic Pivot Mode, which — when enabled — sizes the regression lookback to the distance since the most recent confirmed pivot rather than using a fixed length.
• ATR Trade Level Construction
When a qualifying exhaustion signal fires and is confirmed, the script computes a full trade plan: the entry is the closing price of the confirmed exhaustion bar, the stop-loss is placed one ATR-multiple away (your "ATR SL Multiplier" times ATR over "ATR Length"), and the resulting stop distance defines one Risk unit ("R"). Three take-profit levels are then placed at your chosen R-multiples (default 1R, 2R, 3R) from entry. This entire trade plan updates and redraws only when a new, unlocked exhaustion signal fires.
• Lock Signal
Enabling "Lock Signal" freezes the currently displayed trade plan on the chart, preventing new exhaustion events from overwriting the active levels — useful for manually tracking a single trade through to its conclusion without the visual being replaced mid-trade.
🎨 Visual Guide
● Exhaustion Labels
"SE" label below a bar (bullish color by default) marks a confirmed Seller Exhaustion event — sellers pushed price down under stress conditions, and the setup favors a potential upside reaction.
"BE" label above a bar (bearish color by default) marks a confirmed Buyer Exhaustion event — buyers pushed price up under stress conditions, and the setup favors a potential downside reaction.
● Regression Channel
The dashed center line is the linear regression fair-value line over the active lookback window.
The two dotted inner lines mark the "Inner Deviation" band (default 1.0σ).
The two solid outer lines mark the "Outer Deviation" band (default 2.0σ).
The shaded fill between the inner bands is colored by trend direction — bullish or bearish color when the trend is statistically valid, neutral gray when the Pearson R Filter flags the trend as too weak/uncorrelated to trust.
An optional floating "STATS" label above the current bar displays the regression length, Pearson R value, and current stress z-score (σ) numerically, when "Show Metrics Label" is enabled.
● Trade Level Lines
Plotted only after a qualifying exhaustion event, extending toward the current bar:
Red solid line and "✕ SL" label: the calculated stop-loss.
Blue dashed line and "▶ Entry" label: the entry price (signal bar's close).
Three teal dashed lines of increasing opacity/solidity, with "◆ TP1", "✦ TP2", "◆ TP3" labels: the three R-multiple take-profit targets.
A red-tinted fill between the stop and entry lines visualizes the risk zone.
A teal-tinted fill between the entry and TP3 lines visualizes the reward zone.
● Dashboard (Table)
A compact panel, positioned per your "Dashboard Position" setting, reporting in real time: Lock status, current Trend Regime (Bullish/Bearish), Seller Status and Buyer Status (Exhausted/Normal), a visual Channel Width bar-meter (color-graded green/amber/red by relative width), a visual Pearson R bar-meter (same color grading by correlation strength), and — when an exhaustion signal is currently active — the live Entry, Stop Loss, and TP1 price levels. ADX value and Adaptive Filter type are appended as additional rows only when those features are enabled in the inputs.
📖 How to Use
Watch for an "SE" (Seller Exhaustion) label — this suggests a downtrend that produced an unusually large price move for its volume, on a down candle, potentially signaling sellers are running out of conviction and a bounce could follow.
Watch for a "BE" (Buyer Exhaustion) label — the mirror case in an uptrend, potentially signaling an approaching pullback or reversal.
Use the dashboard's Pearson R and Channel Width meters as a quick sanity check on trend quality before acting on a signal — a low R reading (channel shown in neutral gray) suggests the recent price action lacks a clean directional structure.
If ADX filtering is enabled, only signals occurring during sufficiently strong directional movement (per your threshold) will fire, which can help avoid exhaustion calls inside choppy, low-ADX conditions.
Once a signal fires, the plotted SL/Entry/TP1-3 lines and the dashboard's live level readout offer a pre-built framework for position sizing and target-setting — always cross-check these levels against your own risk tolerance before acting on them.
Enable "Lock Signal" if you want to study a single active trade plan without it being replaced by a new signal appearing on a later bar.
All signals, dashboard values, and trade levels are calculated strictly on confirmed, closed bar data — nothing on this chart is repainted or recalculated retroactively into the past.
⚙️ Inputs and Settings
● Core Settings
Trend Length: EMA period used for the directional trend filter. Longer values smooth out the trend classification; shorter values make it more reactive.
Stats Lookback: rolling window for the illiquidity mean/standard deviation used to compute the stress z-score.
Stress Threshold (σ): the z-score level that must be exceeded for a bar to be classified as "high stress." Raising this makes exhaustion signals rarer but more extreme.
Dynamic Pivot Mode: when enabled, the regression channel's lookback length is derived from the distance to the most recent confirmed pivot instead of a fixed value.
Fixed Length: the regression lookback used when Dynamic Pivot Mode is off.
Pivot Left / Pivot Right: bars required on each side to confirm a swing high/low for Dynamic Pivot Mode.
Max Lookback Cap: hard ceiling on the regression window length, regardless of pivot distance, to control computation and keep the channel visually relevant.
Inner/Outer Deviation: standard-deviation multiples defining the two channel bands around the regression line.
● Filters
Filter Weak Correlations / Pearson R Threshold: controls the channel's neutral-color flagging when regression fit quality is below this threshold.
Use ADX Filter / ADX Threshold / ADX Length: optional directional-strength gate that must be satisfied for exhaustion signals to fire.
Adaptive Filter (None / Kalman Filter / LLAMA) and its Length: optional pre-smoothing applied to price before the trend/EMA calculation.
● Trade Tools
Lock Signal: freezes the current trade plan against being overwritten by new signals.
ATR SL Multiplier / ATR Length: controls stop-loss distance as a multiple of ATR.
TP1/TP2/TP3 (R Multiple): sets each take-profit target as a multiple of the initial risk (R).
● Visuals
Show Metrics Label: toggles the floating STATS label showing regression length, R, and z-score.
High/Low Volatility Width %: reference thresholds used to color-grade the dashboard's Channel Width meter.
Line Extension: controls whether regression channel lines extend left, right, both, or not at all.
● Dashboard
Dashboard Position: places the summary table in any of the four chart corners.
● Alerts
Six customizable action-tag fields (Seller/Buyer Exhaustion, TP1/TP2/TP3 Hit, SL Hit) let you rename the "action" field inside each alert's JSON payload to match your own automation or webhook naming scheme.
● Colors
Full palette control over bullish/bearish/neutral coloring, text and background colors, dashboard styling, and all trade-level line/fill colors.
🔍 Deconstruction of the Underlying Scientific and Academic Framework
● Illiquidity as a Price-Impact Proxy
The stress engine's core calculation — true range divided by volume — is a simplified, bar-by-bar adaptation of the price-impact style illiquidity measures used in market microstructure research, most notably the Amihud illiquidity ratio, which relates absolute returns to trading volume as a proxy for how much a given amount of volume "costs" in terms of price movement. The underlying academic intuition is that in illiquid or stressed conditions, smaller volumes produce disproportionately larger price swings; the log transform compresses the resulting distribution to reduce the influence of extreme outlier bars before standardization.
● Z-Score Standardization and Statistical Anomaly Detection
Converting the raw illiquidity reading into a z-score against its own rolling mean and standard deviation is a direct application of statistical process control / anomaly-detection theory: rather than using a fixed, market-agnostic threshold, the script defines "abnormal" relative to each instrument's and timeframe's own recent behavior. This adaptive standardization is a common approach in quantitative finance for regime and outlier detection, since raw price-impact values are not comparable across instruments, timeframes, or volatility regimes without normalization.
● Ordinary Least Squares Regression and Goodness-of-Fit
The fair-value channel is constructed using closed-form ordinary least-squares (OLS) regression formulas computed directly from the summary statistics of the price series (sums of x, y, x², xy, y²) rather than an iterative solver — a standard, numerically efficient approach for simple linear regression. The accompanying Pearson correlation coefficient is the classical goodness-of-fit statistic for this regression: it quantifies how well a straight line explains the price action over the lookback window, providing a principled, quantitative basis (rather than visual judgment) for deciding whether "trend" is a statistically meaningful description of recent price behavior.
● Recursive State Estimation (Kalman Filtering)
The optional Kalman Filter smoothing option is a simplified, single-dimension implementation of the classical Kalman filter from control theory and signal processing — a recursive Bayesian estimator that maintains a running estimate of a system's true state (here, price) and continuously updates it by weighting new observations against the model's own uncertainty. This provides a theoretically grounded alternative to fixed-window moving averages for noise reduction.
● Trend-Following Directional Strength (ADX/DMI)
The optional ADX filter draws on Welles Wilder's Directional Movement System, a long-established technical framework for separating trend strength from trend direction. Using it as a gate rather than a signal generator reflects its intended academic role: ADX does not indicate direction, only the strength of whatever directional move is present, making it a natural confluence filter for suppressing signals during structurally weak, low-conviction price action.
⚠️ Disclaimer
All provided scripts and indicators are strictly for educational exploration and must not be interpreted as financial advice or a recommendation to execute trades. We expressly disclaim all liability for any financial losses or damages that may result, directly or indirectly, from the reliance on or application of these tools. Market participation carries inherent risk where past performance never guarantees future returns, leaving all investment decisions and due diligence solely at your own discretion. Indikator

Asian Range Liquidity Sweep - Kill Zone ReversalASIAN RANGE LIQUIDITY SWEEP — the complete ICT Asian Range liquidity model in one indicator
The Asia session builds a small, quiet range. London opens, runs the stops sitting above or below that range, and then walks the price the other way. That single move is one of the most repeatable things in FX, and this indicator is the full rule set for it: the range, the liquidity raid, the higher-timeframe point of interest that makes the raid tradeable, the entry, the stop, the targets — and, just as important, the days on which the raid will NOT happen.
Everything is drawn in New York time, the way the model is defined.
━━━ WHAT IT DOES ━━━
① ASIAN RANGE (20:00 – 00:00 New York)
A time based range, not a structural one. The box, its high, its low and its 50 % are projected forward into the whole trading day. The high is buy side liquidity, the low is sell side liquidity. Direction is mechanical and never inverts: above the range this model only sells, below the range it only buys.
② HIGHER TIMEFRAME POI ENGINE — the filter that decides everything
A raid of the Asian high on its own is, most of the time, a trap. The raid only becomes high probability when it lands inside a higher-timeframe point of interest. The indicator scans three timeframes at once (15m / 1h / 4h by default) for
· Fair Value Gaps
· Order Blocks
· Breaker Blocks (a demand block that price closed through and that now acts as resistance)
· Inverse Fair Value Gaps (a bullish gap that got closed through and flipped bearish)
Every zone is anchored to the exact candles that built it, is extended while it is alive, and is dropped once it is used up or once it sits too far from the daily range to matter. On top of that, the higher-timeframe structure itself has to agree: bearish structure for shorts, bullish for longs.
③ LONDON KILL ZONE (02:00 – 05:00, optional 01:30 start) — Trade 1
Between those hours the indicator waits for price to raid the Asian high (or low) INTO one of those zones. A raid is not even accepted as valid until price has traded back into a fair value gap. Then it waits for a lower-timeframe confirmation and enters at a point of interest — never at market:
· MSS + FVG — market structure shift, entry on the retracement into the gap
· CISD — change in state of delivery, entry back at the CISD level itself
· FVG tap — proximal edge on small gaps, 50 % on big ones
· HIDDEN ORDER BLOCK — the opposite-colour candle trapped between two same-direction fair value gaps. The block almost nobody marks, and the sharpest entry in the whole model
That list is a risk ladder: 1m MSS+FVG is the most aggressive and pays the most, 15m FVG is the safest, wins most often and pays the least. Pick the timeframe you actually want to trade and run the indicator there.
Stop goes on the protective structure that belongs to the entry zone. Target 1 is always the opposite side of the Asian range. Target 2 extends to the next inducement swing — the draw for the day.
④ NEW YORK KILL ZONE (07:00 – 10:00) — Trade 2, the continuation
When the London raid then breaks the OPPOSITE side of the Asian range with displacement, the London extreme is very likely the high or the low of the day. The indicator draws the optimal trade entry fibonacci over that impulse — 0.5 / 0.618 / 0.705 / 0.79 — and takes the continuation from the retracement into it, with the stop beyond 0.79 or 1.0. The setup is strongest when the origin zone was a 4h zone, because the whole day is then a 4h market-maker model running internal to external. If the draw on liquidity was already reached before New York opens, the day is flagged as low probability and skipped.
⑤ THE NO-SWEEP FILTERS — the part almost nobody explains
Two situations mean the raid you are waiting for will never come:
· HTF POI ALREADY TAPPED IN ASIA — price worked into the zone during the Asian session and then broke structure against the range. The Asian high is now protected. The indicator says so on the chart and points you at the fallbacks instead: the 50 % of the range, an internal range high (trend line liquidity), or a fair value gap built inside the Asian session.
· STRONG HIGH / STRONG LOW INSIDE THE RANGE — a sweep immediately followed by a break of structure. That extreme is protected. What looks like equal highs later on is a rejection-block reversal, not a raid. Wait for the sweep and you miss the trade.
⑥ NEWS FILTER
High-impact US news in the New York session turns London into a range or a one-way run with no reversal. Pine cannot read a news feed, so paste the dates and those days are skipped.
━━━ WHY EVERY SIGNAL EXPLAINS ITSELF ━━━
Hover any signal pill and you get the full reasoning, not a label:
the range and its size, the exact price the liquidity was raided at, which point of interest it landed in, what the higher timeframe structure was doing, which confirmation fired, whether the raid was validated by a fair value gap, plus entry, stop, both targets, risk in pips, reward in pips and the R multiple.
Setups that were found but rejected are explained too. A "NO TRADE" tag tells you the raid, the zone and the confirmation were all there but the reward did not pay for the stop — so you learn the filter instead of wondering why nothing fired.
Every zone, every structure event, the range lines, the OTE levels and both education cards carry the same kind of tooltip. There is a HOW TO READ THIS card and an honest BEFORE YOU TRADE THIS card on the chart.
━━━ COCKPIT PANEL ━━━
Live session state, symbol, chart timeframe, higher-timeframe bias, the full Asian range with a PROTECTED / OPEN flag on each side, an eight-step checklist that fills in as the setup builds, the open position with stop and target, a large status line, a rough win / loss / break-even tracker and the timestamp of the last signal.
━━━ ALERTS AND AUTOMATION ━━━
Every event fires a clean JSON payload ready for a webhook — entry, stop, both targets, the range boundaries, the point of interest that produced the signal, symbol, exchange, timeframe, volume and an optional account field. Events: ENTRY, TP1, SL, BE, SWEEP, RANGE. Five plain-language alertconditions are included as well for anybody who just wants a notification.
━━━ SETTINGS WORTH KNOWING ━━━
· Sessions are fully configurable if your broker feed needs a different reference
· Turn individual POI types and POI timeframes on and off
· Choose one confirmation model or let it take the first valid trigger
· Four stop modes, two-target management, break-even at a chosen R
· Full chart theme with navy background, mint / red candles and session shading — or switch it off and keep your own
━━━ HONEST NOTES ━━━
This model is mechanical up to the trigger. Direction is fixed and never inverts, the windows are fixed, the filters are fixed — but the final judgement, is this really the high of the session, stays discretionary. Anybody telling you a setup is 100 % mechanical is selling you something.
Expect zero to four setups a day across two pairs, roughly 20 pips average per trade, and losing days. Judge it weekly and monthly, never daily. The safest entry model fires rarely by design; the aggressive ones fire more and stop out more.
The win / loss counter in the panel is a rough on-chart tracker that assumes a fill at the marked price and resolves target before stop within the same bar. It is not a backtest and it is not a performance claim.
This indicator is a study tool. It is not financial advice.
━━━ CREDIT ━━━
The rule set follows the well-known ICT Asian-sweep model as it is taught publicly in the ICT community. The implementation, the point-of-interest engine, the no-sweep filters, the panel and the design are original work.
Open source — read it, change it, learn from it.
WHY THESE PARTS BELONG TOGETHER
The session range, the higher-timeframe point of interest and the lower-timeframe confirmation form
a single filter chain, and the model does not work with any link missing. The range supplies the
liquidity pool that is going to be raided, the higher-timeframe zone decides whether that raid is a
reversal or a trap, and the lower-timeframe trigger decides when. A raid without a zone is noise,
a zone without a raid has nothing to react to, and both without a trigger have no entry.
Indikator

Liquidity Draw Probability Map [ForexCracked]🔵 OVERVIEW
Every liquidity tool draws the pools. This one measures whether price actually goes there.
The Liquidity Draw Probability Map finds the resting liquidity on your chart, equal highs and lows, the prior day high and low, the prior week high and low, and the session extremes, then studies your chart's own history and prints what actually happened to pools like each one: how often price reached them, how long it took, and how often the touch rejected versus cut straight through.
The phrase "price is drawing on liquidity" gets said a thousand times a day. This script puts a measured number on it.
🔵 HOW THE MEASUREMENT WORKS
Every pool is filed by two things: its type, and how far from price it was born, measured in ATR units so the numbers transfer across symbols and timeframes.
For each combination the script keeps running counts on your chart's own history:
• How many pools like this were created
• How many were reached within 50 bars
• Of the touches, how many rejected (price closed at least 1 ATR back inside within 20 bars) and how many cut through (price closed at least 0.5 ATR beyond). A touch that does neither within the window is filed as a stall.
• The median number of bars it took to get there
Nothing is estimated and nothing comes from outside data. Every figure is a frequency counted on the chart in front of you, and the sample size is printed next to it, so a number built on 12 events never dresses up as a number built on 300.
🔵 THE MAP
Active pools draw as horizontal lines from the swing that created them. The line gets thicker and more solid as its category's measured reach frequency gets higher, so the levels price has historically honoured stand out and the ones it historically ignores fade back. Each pool carries a compact label: type, measured reach frequency, rejection share of touches, and the sample size behind those numbers.
When a pool is touched, a small circle prints on that bar to mark the purge (these are measurement events, not signals, and they can be switched off). The engine then watches the next 20 bars, classifies the outcome, adds it to the tables, and retires the pool. Purged liquidity leaves the map, exactly as it leaves the market.
🔵 WHAT THIS IS NOT
This script fires no signals. There are no buy or sell arrows, no sweep alerts dressed as entries, no order blocks and no fair value gaps. It does not tell you to trade anything. It is a measurement instrument: it maps where the resting liquidity is and reports what historically happened to liquidity like it, with the sample sizes in plain view. What you do with that context is your decision.
🔵 NET DRAW BIAS
Each active pool contributes its measured reach frequency, discounted by how far away it currently sits. Everything above price is summed against everything below, and the result is z-scored against its own recent history. A strongly positive reading means the statistically heavier magnet is overhead. A strongly negative one means it is below. The dashboard prints the score and the direction plainly.
🔵 THE DASHBOARD
• Nearest pool above: type, distance in ATR, measured reach frequency, median bars to reach, sample size
• Nearest pool below: the same
• Net Draw Bias: score and direction
• Last purge: which pool type was taken and how the touch resolved
• Sample: total pools logged and bars of history measured
🔵 HOW TO USE
• Treat high-frequency pools as context, not entries. A pool whose category was historically reached 75 percent of the time within 50 bars is a level price has tended to gravitate toward on this chart. Useful when planning targets, never a trigger on its own.
• Read the rejection versus cut-through split before assuming a reaction. Some categories on some charts get swept and keep going. The split tells you which kind of chart you are on.
• Use Net Draw Bias for directional context between levels. It answers "which side's liquidity is heavier right now" with a measured number instead of a feeling.
• Respect the sample sizes. Early in a chart's history the tables are thin and the map says so. The numbers firm up as history accumulates.
• Combine with your own structure and risk rules. This is a measurement instrument. It does not know your plan.
🔵 SETTINGS
• Pivot strength and equal-level tolerance control how pools are detected
• Reach horizon (default 50 bars) and outcome window (default 20) control the measurement windows
• Session input defines the session whose extremes are tracked, set it to your Asia hours for the classic use
• Max pool age retires stale levels; per-side caps keep the map readable
• Dashboard position, colors, and line extension are adjustable
🔵 ALERTS
• Price approaching a high-reach pool (within 0.25 ATR, category at or above 70 percent with a meaningful sample)
• Pool purged (liquidity taken)
• Net Draw Bias flips sign
⚠️ DISCLAIMER
These are descriptive statistics of past price behaviour on your chart, not predictions. A pool that was historically reached 80 percent of the time can be ignored today. Sample sizes vary by chart and timeframe, and small samples are unreliable by nature. Nothing here is a trade signal, and results depend on market conditions, settings, and your own execution and risk management. Shared for educational and research purposes. Not financial advice. Indikator

ICT Entry Model Liquidity Sweep, MSS & FVG [LunqFX]A smart-money entry is never a single signal — it is a sequence. Price runs the stops beyond a swing, structure shifts the other way, and the entry is taken from the imbalance that shift left behind. Most ICT indicators draw one of those pieces and leave you to assemble the rest by hand. This one tracks the whole sequence live and finishes it with an actual trade: entry, stop, target and a quality score that tells you whether the setup was worth taking at all.
❶ THE FOUR STAGES
▸ LIQUIDITY SWEEP — price trades beyond a swing high or low, takes the stops resting there, and closes back inside. The sweep is marked and the level it raided is drawn. This is the manipulation leg, and it is where the stop for the trade will sit.
▸ MSS (MARKET STRUCTURE SHIFT) — after the sweep, price closes through the last short-term swing in the opposite direction. This is the confirmation that the sweep was a reversal and not a continuation. Note that the shift is measured against internal structure, not the major swing: waiting for a major swing to break would put the entry far too late, which is the single most common mistake in automated ICT tools.
▸ FVG ENTRY — the displacement that broke structure leaves a three-candle imbalance. That gap is the entry zone, drawn as a box, because price commonly returns to fill it before continuing.
▸ RISK AND TARGET — the stop goes beyond the sweep extreme, the target is your chosen R multiple. Both are drawn as filled zones running back to the entry, so the whole trade reads as one object instead of a set of loose lines.
❷ SETUP QUALITY 0–100
Not every sequence deserves a trade, and this is where the indicator does something no other entry tool does. Every setup is graded on four measurable properties:
▸ SWEEP DEPTH — how far beyond the level price actually ran, in ATR. A deeper raid means more stops were genuinely taken. ▸ DISPLACEMENT — how decisively the structure was broken, in ATR. A weak break is a weak setup. ▸ FVG SIZE — how large the imbalance is. A bigger gap is a stronger entry. ▸ SPEED — how quickly the shift followed the sweep. A fast reversal is aggressive; a slow one has lost its edge.
The four are blended into a single 0–100 score shown on every entry tag and in the dashboard. Set the minimum quality in the settings and weak sequences simply stop being drawn — you trade the good ones instead of every arrow.
❸ HOW TO TRADE IT
1 — Wait for the SWEEP marker. The dashboard turns amber and reads SWEEP · WAITING MSS. Nothing to do yet: the manipulation has happened but it is not confirmed.
2 — Wait for MSS. When structure shifts, the setup is drawn and the dashboard turns green for a long or red for a short. If structure does not shift within the allowed window, the sweep is discarded and the model resets — no stale signals.
3 — Check the quality score before committing. High scores come from a deep sweep, a decisive break and a clean imbalance. If the number is low, the sequence was technically valid but structurally weak.
4 — Place the trade from the ticket. Entry at the FVG edge, stop beyond the sweep, target at your R multiple. The dashboard shows all three plus the exact risk in price, so the position size follows directly.
5 — Let price come to you. The FVG is a limit entry, not a market entry. If price never returns to the gap, the setup is simply skipped — that is the model working as intended.
❹ HOW IT WORKS
Liquidity swings and internal structure are detected with confirmed pivots, so a level only exists once the bars on both sides of it have closed. A sweep requires a bar to trade beyond the swing and close back inside it, and it is only registered when the shift level is still unbroken — otherwise the sequence could confirm itself on the very next bar. The structure shift requires a close through that internal level within your chosen window. The imbalance is found in the displacement leg using the standard three-candle definition. The stop is the sweep extreme, the target is the entry plus or minus the risk times your R multiple, and setups whose stop would be smaller than a fraction of ATR are rejected as untradeable. The quality score is a weighted blend of the four properties above, each normalised by ATR so the score behaves the same on every symbol and timeframe.
Works on any market and timeframe — forex, gold, indices, crypto and stocks. Intraday charts from 5m to 4h suit the model best, since that is where liquidity raids and structure shifts happen most often.
SETTINGS — liquidity swing length, internal structure length, maximum bars from sweep to shift, R multiple for the target, minimum stop distance, minimum quality, number of setups kept, level extension, FVG and level visibility, candle colouring and dashboard position.
ALERTS — long setup confirmed, short setup confirmed, and any setup confirmed. All fire on closed bars only.
NON-REPAINTING — every stage is validated on bar close and built from confirmed pivots. A setup that has printed never moves, never changes its levels and never disappears.
The four stages are not four indicators bundled together — they are four steps of one entry model, and none of them is tradeable alone. The sweep without the shift is just a wick; the shift without the sweep is just a break; the imbalance without either is just a gap. That is why they belong in a single tool.
This indicator is an educational market-analysis tool, not financial advice. The quality score describes the structure of a setup and does not predict its outcome. Always confirm with your own analysis and manage your risk. Indikator

Session Range BoxSession Range Box
A universal tool that draws the range of a chosen session as a box. The trader
sets the conditions: the session, the timezone, and the window. The borders are
built from the session highs and lows - an area of potential liquidity, since
resting orders tend to build up above the highs and below the lows.
This is a tool, not a signal system. It gives a clean, non-repainting map of the
range. How to use it is up to the trader's own strategy.
How It Works
1. Accumulation window. The trader sets the session time in their own timezone.
The highest high and the lowest low inside this window become the box borders.
2. Freeze. Once the window closes, the borders are locked and never repaint.
What you see on history is what actually happened at that moment.
3. Extend. The frozen box is stretched to the right until the end of the day, so
you can watch price test the borders after the session. A new day starts a new box.
What It Pairs With
Smart Money logic and the accumulation - manipulation - distribution model. The box
shows where potential liquidity sits; the trader applies their own scenario on top.
Applications
- Trading the Asian range
- Trading the European and US range
- First-hour range
- Mean reversion (from the box midline)
Settings
- Timezone: city entries (which adjust automatically for daylight saving) or fixed
UTC offsets (to match a broker's server time).
- Accumulation window: any length, from one hour to a full session.
- Extend box to end of day: on/off.
- Style: color, fill, borders, midline, label.
To show several sessions at once (Asia + Europe + US), add the indicator to the
chart more than once with different settings.
Notes
- Recommended timeframe: M1 to H1, depending on the strategy.
- Time is based on the selected timezone; city entries adjust for daylight saving,
fixed offsets do not. Indikator

FVG CrossfireGENERAL OVERVIEW:
FVG Crossfire identifies and plots the exact price bands where a bullish and a bearish imbalance have overlapped. These overlap bands, called crossfire zones, are the only objects the indicator draws. Ordinary Fair Value Gaps are tracked in the background as inputs, but a standalone gap is never rendered on the chart; a zone is created only when a fresh FVG overlaps an older, still-unfilled FVG of the opposite direction. From that point the zone remains on the chart, reversing direction each time an opposing FVG overlaps it, recording each transition with a star counter, marking every retest with an arrow, and being removed only when price trades fully through it.
What is the theory behind the indicator?
A Fair Value Gap records a price imbalance: price moved quickly enough that a gap was left between the wicks of the surrounding candles. The problem is that FVGs are common. On a fast chart dozens print every session, most of them noise, and drawing them all obscures the few levels that actually matter.
FVG Crossfire is built on a stricter criterion: the event worth displaying is the overlap. When a new imbalance prints in the opposite direction directly on top of an older, still-unfilled one, that price band is no longer one-sided; buyers have left an imbalance there, and now sellers have as well (or the reverse). That overlap marks a contested level, one the market has already reacted to from both directions.
The sequence often continues. Each additional opposing FVG flips the zone again, and because a flip keeps only the portion of the zone where the imbalances actually overlap, the contested band becomes tighter and more precise with each transition. What remains is a narrow, repeatedly tested level with a visible history, which is among the strongest forms of support or resistance an imbalance structure can produce.
The FVG Crossfire indicator includes 5 main features:
FVG CROSSFIRE FEATURES
Crossfire Zone Detection
Zone Flipping & Flip Counter
Retest Detection
Zone Mitigation
Alerts
CROSSFIRE ZONE DETECTION:
🔹What Is a Crossfire Zone?
A crossfire zone is the price band shared by two opposite imbalances: an older, still-unfilled Fair Value Gap and a newly formed FVG in the opposite direction that printed on top of it. The zone covers only the overlap, and it takes the direction and color of the newer FVG, the most recent side to print. An optional "origin funnel" draws converging lines from the older gap into the zone, so the source of the overlap remains visible.
🔹What Is a Fair Value Gap?
For background: an FVG is a three-candle pattern where the middle candle moves so strongly that a gap is left between the first candle and the third: the low of candle three above the high of candle one (bullish), or the high of candle three below the low of candle one (bearish). In this indicator FVGs are inputs, not output: they are detected and tracked entirely in the background, and one that never overlaps an opposite gap is discarded without ever being drawn.
🔹Why Are Crossfire Zones Important?
A single gap indicates one-sided aggression at a price. A crossfire zone indicates that both sides were aggressive at the same prices and disagreed. These contested bands tend to attract price repeatedly, which makes them stronger candidates for support, resistance, and reaction trades than any single gap. And because only overlaps are drawn, every object on the chart is already a filtered, higher-significance level.
🔹How Crossfire Zones Are Detected:
Every candle close, the engine scans the last three candles for a new FVG (gaps smaller than your minimum size are skipped, and candles around daily or weekly session breaks are excluded so overnight gaps don't create false patterns). Each stored gap is also tracked as later candles fill it (by wick or by close, depending on the setting), and a fully filled gap is dropped from the pool. When a fresh FVG confirms, it is compared against every waiting opposite gap: wherever it overlaps the unfilled part of one, a crossfire zone is created on the overlap and the origin funnel appears. Every FVG participates exactly once; after creating (or flipping) a zone it is consumed, so one price move never produces duplicate zones. Live zones extend to the right edge of the chart, and an optional "Combine" mode merges same-direction zones that overlap in price into one bigger zone.
🔹Settings: Base FVG Group (the detection engine)
Base FVG mitigation: whether wicks or only candle closes fill a waiting gap before it can participate in an overlap.
Min FVG gap (% of price): ignore gaps below this size; 0 keeps every gap.
Show origin funnel: draw the converging lines from the source gap into its zone.
Border, Style, Colors: visual control of the funnel; color transparency sets the fill strength.
🔹Settings: Crossfire Zone Group
Lookback (candles): zones are only built inside the most recent N candles (default 3000); every zone created in the window is shown.
Border, Style, Midline: outline and optional equilibrium line for each zone.
Bullish / Bearish colors: transparency sets the zone fill strength.
Combine overlapping zones: merge same-color zones that overlap in price.
ZONE FLIPPING & FLIP COUNTER:
🔹What Is a Zone Flip?
If a live crossfire zone is overlapped by another FVG in the opposite direction, the zone flips: the current box is frozen in place and a new, opposite-colored box continues from that point. Read left to right, a flipped zone forms a timeline of directional control over that price band.
🔹Why Do Flips Matter?
Every flip is another change of direction at the same level, evidence that the market continues to react to that price. And because each flip keeps only the part of the zone that the new FVG actually overlapped, the contested band tightens with every flip. A zone that has flipped three times is a narrow, precise, repeatedly contested level, exactly the kind of area worth planning trades around.
🔹How the Flip Counter Works:
Each live zone shows a star counter on its edge at the latest candle: green stars touching the bottom edge of bullish zones, red stars touching the top edge of bearish zones. One star means the zone has formed once, two stars means one flip, and so on; zones with five or more entries display a compact count instead (for example "6 ★"). There is no limit on flips; the chain only ends when the zone is fully mitigated.
RETEST DETECTION:
🔹What Is a Retest?
A retest is price leaving a live crossfire zone and then coming back to touch it again. The indicator marks every single retest: a small green ▲ below the candle that re-entered a bullish zone, a small red ▼ above the candle that re-entered a bearish zone.
🔹Why Are Retests Important?
The retest is usually the tradeable moment. A contested zone holding on a return visit is the confirmation many traders wait for before entering, and repeated successful retests indicate the level continues to hold.
🔹How Retests Are Detected:
On every candle close, the indicator checks whether the candle touched the zone (any wick contact counts) while the previous candle did not. Each fresh re-entry counts; price must leave the zone before the next retest can register, so a candle sitting inside the zone for several bars only counts once. Every retest can also fire an alert.
🔹Settings:
Retest markers: show or hide the ▲/▼ arrows.
ZONE MITIGATION:
🔹What Is Zone Mitigation?
A crossfire zone is complete (fully mitigated) when price trades all the way through it: through the bottom of a bullish zone, or through the top of a bearish zone. At that point the zone and its whole flip history are removed from the chart, or kept and faded out if you prefer to study them.
🔹Why Does Mitigation Matter?
A zone that price has completely passed through has served its purpose: the imbalance on both sides is resolved. Removing finished zones keeps the chart focused on levels that still matter, while the optional faded view lets you review how past zones resolved.
🔹How Mitigation Is Detected:
You choose what counts as trading through the far side: any wick, or only a candle close. Until that happens, the zone stays live no matter how many times it flips or gets retested.
🔹Settings:
Zone mitigation: Wick or Close.
Show mitigated zones: keep finished chains on the chart, frozen and dimmed.
ALERTS:
FVG Crossfire covers the full life of a zone with four alert events, each with its own on/off switch. Create one alert on the indicator using "Any alert() function call" and every enabled event will come through with the symbol and timeframe in the message:
New crossfire zone: two opposite FVGs overlapped and a new zone was created.
Zone flipped: a live zone changed direction (bullish ↔ bearish).
Zone retested: price re-entered a live zone after being outside it (fires on every re-entry).
Zone mitigated: a zone was fully traded through and completed.
IMPORTANT NOTES:
Plain FVGs are never drawn. Gaps are tracked in the background, and a gap only becomes visible, through its origin funnel, at the moment it produces a crossfire zone. Every object drawn on the chart is already an overlap.
All detections are evaluated on candle close. Zones, flips, retests, and mitigations are confirmed events; they do not repaint.
Background gaps are filled on a three-candle delay. This is deliberate: the same impulsive move that creates the new FVG is often the move that fills the old one, and without the delay the overlap could never be detected.
Each FVG participates exactly once. After creating or flipping a zone it is consumed, so one price move never produces duplicate zones.
A flip requires the new FVG to overlap the currently visible zone, and the flipped zone keeps only the overlapping part; zones tighten as they flip.
A retest requires price to leave the zone first. Consecutive candles inside the zone count as one visit.
Candles around daily and weekly session breaks are excluded from gap detection so overnight gaps don't create false patterns.
Internal drawing limits keep the script within TradingView's object budget; on extremely gap-dense charts the oldest zones are released first.
UNIQUENESS:
Most FVG tools draw every gap and leave the trader to determine which ones matter; inversion (IFVG) tools go one step further and record a single change of direction. FVG Crossfire does not draw ordinary gaps at all. It uses them purely as inputs and puts only one thing on the chart: the price bands where opposite imbalances have overlapped, and it then tracks the full lifecycle of each contested level. Zones flip an unlimited number of times, each previous state freezes into a left-to-right timeline, the band tightens to the true overlap on every flip, a star counter records the number of transitions, every individual re-entry is flagged with a retest arrow and alert, and the level is only removed when price fully trades through it. The result is not another gap plotter: it is a filtered map of where opposing imbalances keep forming at the same prices, how many transitions each level has recorded, and exactly how tight the contested band has become.
Indikator

Smart Money Volume Absorption Signals I EonMetricsSmart Money Volume Absorption Signals
Volume Absorption marks a specific situation as a LONG or SHORT setup, with an entry, a stop and two targets. But instead of only printing an arrow and leaving you to reconstruct what happened, it tracks that setup through four stages and shows you exactly how far along it is — how many conditions are met, which one is still missing, how many bars are left before the setup is discarded, and what the same sequence has already done on the history your chart has loaded.
🔶 THE SITUATION IT TRACKS
A bar trades far more volume than its own recent normal, and then closes at the wrong end of its own range. Heavy participation that failed to pay the side that pushed: effort without result. The direction is set against the side that was absorbed — a heavy bar closing in the bottom third of its range is a short premise, one closing in the top third is a long premise.
One thing has to be said plainly, because it decides how much weight this premise deserves: total volume cannot tell you who traded. It cannot separate buyers from sellers. What this gate actually measures is heavy participation combined with a failure to hold the direction the bar travelled. The absorption reading is an interpretation of that pattern, not a measurement of order flow. If you want that distinction to matter less, the remaining three gates are where the work is done.
Absorption on its own happens constantly and most of it leads nowhere. So the tool requires three further confirmations, in order, before it marks anything.
🔶 THE FOUR GATES
G1 · ABSORPTION — bar volume lands in an extreme percentile of its own recent history while the bar closes in the far third of its own range. This gate fixes the direction and nothing later can change it. It also plants the invalidation anchor at that bar's extreme. Optionally the direction must agree with a slow trend filter.
G2 · REACTION — a following bar closes in the direction G1 set. The absorption produced something instead of merely stalling.
G3 · EXPANSION — a candle body in the top percentile of its own recent history, pointing the setup's way. That candle's OPEN becomes the origin level, and the origin level is where entry would be.
G4 · HOLD — price returns to the origin level and closes without violating it. Only now does the signal print, on bar close.
This is a retest model, not a breakout model, and the consequence is worth stating before you use it. A setup whose expansion runs away and never comes back to the origin level will never complete, no matter how far the move goes. You will see setups sit at 3/4 while price travels past the drawn targets, and then expire. That is the design working as intended — the entry is the retest — but if you want a tool that chases the move instead, this is not that tool.
The dashboard reads: which stage the setup is in, the direction, which gate is being waited on, the expiry countdown, the entry and stop levels, and the record of every completed setup on the loaded history.
🔶 ORIGINALITY
Five design decisions separate this from a stack of conditions with an AND between them.
Percentiles instead of ATR multiples. A fixed "1.5 × ATR" or "2 × average volume" threshold means something different in a trending market than in a compressed one, so it has to be re-tuned per symbol and per period. Every threshold here is a percentile rank against the instrument's own recent history — "top 30% of the last 200 bars" keeps its meaning when volatility changes, without tuning.
Gates do not add up to a score. Each gate is a separate class of evidence and none substitutes for another. Three expansion bars in a row are still 1/4, not 3/4. A weighted-sum model can be outvoted by one loud condition repeating itself; this one cannot. There is deliberately no confidence percentage anywhere in this script — with four binary gates in a fixed sequence, the only honest information is how many of them have filled, and dressing that up as a percentage would add precision that does not exist.
The setup dies on its own. Every tracked setup carries an invalidation anchor (a close beyond the absorption bar's extreme) and a bar countdown that resets at each gate advance. When either fires, the setup is discarded immediately — it does not linger until an opposite signal replaces it, and it does not quietly stay on the books.
One setup at a time. While a completed setup is still resolving toward its target or its stop, a new setup will not complete — it waits at 3/4 and may still fire later if the first one resolves in time, or expire if it does not. This exists so that what the dashboard counts is what a person following the tool could actually have taken, one position at a time, rather than an overlapping stack of positions nobody could hold.
It shows its own record. The last two rows of the dashboard walk every completed setup on the chart you are looking at, bar by bar, and count which level price reached first — Target 1 or the stop. The stop is checked before the target, so a bar that spans both counts against the setup, and the bar the signal prints on is not counted at all. That number is whatever it is. It is not a claim, it is not tuned to flatter, and it will read differently on every symbol and timeframe you load — which is exactly the point. You are meant to check it on YOUR instrument before deciding what the tool is worth to you, instead of taking anyone's word for it. Most signal tools do not show this. That is a choice they made, and this is a different one.
🔶 HOW IT IS CALCULATED
Both percentile ranks are ta.percentrank() over one configurable window — one on bar volume (G1), one on the absolute candle body (G3). The close position is (close − low) / (high − low), so it describes where the bar finished inside its own range rather than relative to any external level.
The optional trend filter is a plain exponential moving average of the closing price on the chart's own timeframe, used as a slow-trend proxy: long setups are only allowed above it, short setups only below it. Set its length to 0 to switch it off. There are no higher-timeframe data requests anywhere in this script.
Entry is the open of the expansion bar. The stop is the absorption bar's extreme, plus an optional buffer in ticks. Both targets are multiples of that entry-to-stop distance, so they scale with the setup instead of with a fixed price amount. Target 1 is the level the record row measures against; Target 2 is drawn for reference only.
Every gate is evaluated and latched on confirmed bars only. There is no lookahead and there are no forward-looking references. A filled gate is never un-filled retroactively; the live bar can only be rejected, never rewritten. A bar that would satisfy two gates at once advances the setup by exactly one step — each gate has to be paid for with its own bar.
The chart geometry is redrawn from scratch on the last bar rather than accumulated, so what you see on the chart is always the setup the dashboard is describing, and closed setups do not leave debris behind.
🔶 ALERTS
Six conditions: setup reached 2/4, setup reached 3/4, signal LONG, signal SHORT, setup expired, setup invalidated.
The staged alerts follow from the same idea as the meter: being told a setup is one gate away is more useful than only being told after it is over.
🔶 HOW TO USE
1. Read the record row before anything else. Load your instrument and your timeframe and see what it says there. If it does not convince you, that is the tool telling you honestly that it is not for that market.
2. Check the sample size in the same row. A run of ten or twenty setups is an anecdote. The row flags small samples for exactly this reason.
3. Watch the meter, not the arrows. Most of the information is in setups that reach 2/4 or 3/4 and then die — that tells you what the market is refusing to do.
4. The stop sits at the absorption bar's extreme by default, which is tight. On fast intraday charts try the Stop Buffer input and watch how the record row responds.
5. The trend filter changes the population of setups substantially. Check the record row with it on and with it off on your own market before deciding which you prefer.
6. Set the 3/4 alert if you want to be at the chart before a setup completes rather than after.
🔶 SETTINGS
Volume (percentile window) · Gate Thresholds (G1 volume percentile, G1 close position, G3 body percentile, trend filter length, setup TTL) · Trade Levels (draw toggle, stop buffer in ticks, two R-multiple targets) · Display (dashboard and position, current-signal marker, all-past-signals marker, colors).
🔶 HONEST LIMITATIONS
Volume alone cannot be attributed to buyers or sellers. This tool reads total bar volume against the bar's close position. It does not know who traded, and it is not order-flow data. Treat the absorption premise as a reading of effort against result, which is what it is.
The volume itself is only as good as the feed. On spot forex and CFDs the exchange reports TICK volume rather than real traded volume, so the percentile ranks describe activity rather than quantity. On symbols with no volume data at all the gates cannot fill, and the dashboard says so in its top-right corner.
The retest requirement will cost you moves. As described above, setups that never return to the origin level expire unfilled even when price travels well beyond the drawn targets. This is structural, not a bug, and on strongly trending stretches it happens often.
Percentiles are relative to their window. After an abrupt change of volatility regime the ranks need a few dozen bars to catch up, and during that stretch the thresholds are still measuring the old regime.
The record row is an honest count, not a backtest. It assumes a fill at the exact entry price and it ignores fees, spread and slippage — all of which work against you in reality, and all of which matter a great deal when the outcome is close to even. A record that looks positive before costs can be negative after them. It also covers only the setups on the history your chart has loaded, which on intraday timeframes is a small sample.
Results vary far more between markets than between settings. The same script on the same timeframe can produce a very different record on two different symbols, and there is no timeframe this tool is generally "best" on. Any suggestion otherwise would be an invention. Check your own market.
This tool describes a sequence of conditions in price and volume. It does not forecast anything, it makes no claim about how often the sequence resolves favourably, and the drawn levels are the geometry of the setup, not a recommendation. It is published for analysis and education, it is not financial advice, and past behaviour of a pattern does not guarantee its future behaviour. Check the record on your own market, manage your own risk, and decide for yourself.
Part of the EonMetrics toolset.
Indikator

Indikator

Session Seasonality Deviation [MarkitTick]💡 A highly advanced analytical framework meticulously engineered to quantify, measure, and visualize volatility anomalies within specific, localized trading windows. By programmatically isolating price action strictly to predefined market hours—such as the London or New York opens—this tool establishes an objective statistical baseline of expected market movement based exclusively on historical day-of-the-week performance data. Rather than relying on lagging continuous averages, this mathematical model detects the precise moment a market transitions from baseline activity into statistically significant expansion or compression, providing an objective lens through which to view true price dynamics.
● ✨ Originality and Utility
Traditional volatility metrics and bands typically analyze continuous price data streams, inadvertently blending distinct, structurally different trading periods into a single, homogenized moving average. This generalized approach inherently degrades the accuracy of volatility forecasting. The core utility of the SSD indicator lies in its targeted isolation of distinct market sessions, mathematically acknowledging the reality that a Tuesday London session behaves with entirely different liquidity parameters than a Friday New York session.
By creating an isolated historical distribution for each specific day of the week, this tool offers a highly accurate, predictive baseline for expected volatility that adapts to the calendar. Furthermore, the integration of structural price action filters ensures that these statistical anomalies are always correlated with actual market mechanics, elevating the tool beyond simple moving average bands and providing a robust, multidimensional analysis of market intent.
● 🔬 Methodology and Concepts
This script operates on a sophisticated confluence of statistical profiling and structural market analysis, creating an unyielding logic engine designed to filter market noise.
Time-Series Stratification: The underlying logic initiates by isolating raw price data exclusively within a user-defined temporal window. It captures the extreme upper and lower boundaries of this session, establishing the true operational range and discarding irrelevant data from inactive hours.
Day-of-Week (DOW) Seasonality Profiling: Rather than utilizing a generic rolling lookback of consecutive calendar days, the algorithmic engine stores and categorizes historical session ranges based on the specific day of the week. It builds an independent, localized statistical distribution for each day, calculating the mean average range and the variance of those specific historical instances.
Standardized Deviation (Z-Score) Engine: The primary mathematical trigger relies on a rigorous Z-Score calculation. It compares the current session's confirmed range against the historical DOW average, divided by the established standard deviation. This quantifies exactly how far the current volatility deviates from the empirical historical norm.
Structural Confluence and Market Character: To prevent the system from acting on anomalous volatility that lacks definitive directional intent, the logic engine requires a structural confirmation. It evaluates recent high and low boundaries, demanding that the closing price breaches these structural bounds to validate the statistical signal and confirm a genuine shift in market character.
● 🎨 Visual Guide
The visual interface is precision-engineered for rapid cognitive interpretation of complex statistical states, designed to relay critical data without cluttering the charting canvas.
Dynamic Heatmap Candles: The primary price action is overlaid with a responsive heatmap. Candlesticks are colored dynamically to reflect the internal bias of the active session, providing an immediate visual cue of the dominant buying or selling pressure.
Average Range Bounds: Subtle, non-intrusive bracketing lines are plotted symmetrically around the session open, projecting the historical average range. This creates a visual baseline for expected session expansion, allowing the user to see when price escapes the statistical norm.
Actionable Trade Levels: Upon the generation of a confirmed signal, the tool plots projected Entry, Stop Loss, and multiple Take Profit coordinates. Chart labels are meticulously configured to display raw value strings without percentage signs, ensuring a clean, distraction-free presentation of critical price levels.
Analytical Heads-Up Dashboard: A sophisticated data table is rendered on the chart, centralizing key real-time metrics. It details the active session, current directional bias, real-time Z-Score, Sample Size validity, and structural state. The dashboard is explicitly designed to display a matching, comprehensive evaluation of both long and short transaction outcomes, ensuring a perfectly balanced view of all potential market trajectories.
● 📖 How to Use
Interpreting the output of this tool requires a methodical, step-by-step approach, focusing heavily on the intersection of statistical deviation and structural shifts.
Monitor the on-chart dashboard for the Z-Score to definitively exceed the user-defined deviation threshold, which serves as the primary indicator of a statistically significant expansion in volatility.
Verify the directional bias of the current session using the Heatmap Candles and ensure this localized momentum aligns with the broader, macro market structure.
Wait for a confirmed structural breach signal that perfectly matches the directional bias of the initial statistical deviation, ensuring momentum is backed by actual price displacement.
Utilize the automatically plotted Trade Action Levels for strict risk management. The Stop Loss is dynamically calculated based on historical variance, and Take Profit levels offer scaled, mathematically logical target zones.
Exercise extreme caution and avoid executing signals during periods of severe price compression, or when the dashboard indicates that the sample size of historical data is insufficient to form a mathematically reliable statistical distribution.
● ⚙️ Inputs and Settings
The configuration panel is categorized logically to allow for the precise, modular tuning of both the statistical engine and the visual outputs.
Core Settings: Select the target session (Asia, London, New York) and define the lookback period for the seasonality model. Adjust the precise Deviation Threshold (Z-Score limit) to control the strictness and sensitivity of the generated signals.
Filters: Toggle specific confirmation layers, including the minimum required historical sample size, minimum expansion criteria, and specific structural requirements necessary to validate a move.
Trade Tools: Calibrate the multiplier values for the dynamically calculated Stop Loss and Take Profit levels, allowing the user to seamlessly align the tool with their individual risk parameters and payout models.
Visuals and Dashboard: Customize the display properties of the heatmap candles, the average range bands, and the spatial positioning of the analytical dashboard to suit personal workspace preferences.
● 🔍 Deconstruction of the Underlying Scientific and Academic Framework
The theoretical foundation of this analytical tool is deeply rooted in advanced Quantitative Finance, specifically drawing upon the established principles of Volatility Clustering and the Day-of-the-Week Anomaly. Academic literature frequently notes that financial markets exhibit leptokurtic distributions, wherein volatility is not a constant force but rather clusters densely in specific, predictable temporal windows. By employing a variance measurement technique akin to Standardized Moments, the script effectively normalizes session volatility.
This process allows the underlying algorithm to objectively classify current price action relative to an empirical baseline, entirely removing subjective human bias from the equation. Furthermore, the integration of structural pivot analysis introduces a deterministic filter to an otherwise probabilistic model. This synthesis ensures that statistical outliers are only deemed actionable when they are accompanied by a verifiable, measurable shift in the underlying supply and demand equilibrium.
⚠️ Disclaimer
All provided scripts and indicators are strictly for educational exploration and must not be interpreted as financial advice or a recommendation to execute trades. We expressly disclaim all liability for any financial losses or damages that may result, directly or indirectly, from the reliance on or application of these tools. Market participation carries inherent risk where past performance never guarantees future returns, leaving all investment decisions and due diligence solely at your own discretion. Indikator

Indikator
