RTI Trend State + MacroCoverRTI Trend State + MacroCover
A trend-state oscillator built on the Relative Trend Index (RTI) — a stochastic-position measure of where price sits inside its recent high/low range, then EMA-smoothed:
raw = 100 * (close - lowest(low, n)) / (highest(high, n) - lowest(low, n))
RTI = EMA(raw, smooth) -> a 0-100 line
How the state works
The 0-100 RTI is converted into a persistent LONG / FLAT / SHORT state through a hysteresis band , so it does not flip on noise around the mid-line:
RTI above the upper band -> LONG
RTI below the lower band -> SHORT
in between -> holds the last state
The gap between the two bands is the hysteresis — widen it for fewer, steadier flips; narrow it for a more reactive read.
MacroCover (optional long bias)
When the state would be SHORT but price trades above a slow EMA (default 200), the short is covered to FLAT — i.e. it won't fight the higher-timeframe uptrend. Turn MacroCover off for a symmetric long/short reading.
On the chart
The RTI line (0-100) colored by state: green long, red short, gray flat.
Dashed upper/lower bands and a dotted mid-line.
State background tint and flip markers where the state changes.
A compact table with the current RTI value, state and macro side.
The RTI value plus state_-1_0_1 and ema_macro are available in the Data Window for tooltips and cross-checks.
Inputs
RTI engine — Lookback n (30), EMA smoothing (3), upper/lower bands (55 / 45).
MacroCover — on/off and macro EMA length (200).
Timeframe — use the chart timeframe, or lock the calculation to a fixed resolution.
Visual — toggle the state background, flip markers and table.
Notes
Works on any symbol and any timeframe.
Non-repainting : values are computed on confirmed bars, and the optional higher-timeframe request uses lookahead_off.
This is a discretionary / confluence tool, not financial advice or a complete trading system.
Indicator

Breakout & Retest Entry Signals & the Break-vs-RetestOVERVIEW
"Wait for the retest" is the most repeated piece of advice in breakout trading. It is also, as far as I can tell, completely untested by the people who repeat it.
This tool settles it — on your instrument, with your settings — by taking BOTH entries on the SAME breaks and grading them against the same control:
PER-TRADE EDGE expectancy vs control · n
Break entry +0.09R +0.02R · n=412
Retest — CLEAN +0.31R +0.02R · n=118
Retest — DEEP -0.04R +0.02R · n=76
clean vs deep (t) 3.41 CLEAN IS BETTER
BUT — HOW OFTEN DO YOU GET IT?
Breaks that ever retested 47.0% (194/412)
after a run of >3 closes 31.2% vs 55.8% otherwise
False-break rate 13.3%
EXPECTED VALUE PER BREAK
Take every break +0.09R (100% of breaks)
Wait for the retest +0.06R (47% of breaks)
VERDICT NO DIFFERENCE — pick either
That last block is the entire point. A better per-trade edge is worthless if you only get the trade half the time — so the WAIT policy is scored as P(retest) x E , because on every break that never retests you get NOTHING. The two are then compared with a significance test, and the verdict is allowed to be "no difference".
It is a research and framing tool. NOT a strategy, NOT a signal service, NOT a validated edge.
WHAT IT ALREADY FOUND — measured live on NIFTY futures
timeframe breaks retested false breaks verdict
1m 334 49.4% 29.6% NO DIFFERENCE
3m 323 53.3% 13.6% NO DIFFERENCE
5m 328 53.4% 14.0% NO DIFFERENCE
15m 306 51.0% 12.7% TAKE THE BREAK
1h 274 50.0% 16.4% NO DIFFERENCE
TWO THINGS JUMP OUT.
The retest rate is 50-53% on every timeframe. Bulkowski, measuring throwbacks across 10,348 chart patterns on US daily stocks, found 50-60%. A completely different market, a completely different method, and the same number. That is a real phenomenon, not an artefact of the detector.
The false-break rate is 26.5% on the 1m and 13-15% everywhere else. THE ONE-MINUTE BREAK IS TWICE AS LIKELY TO BE A LIE. That is not folklore, it is this instrument's own number, and it is exactly the kind of thing a trader should know before choosing a timeframe.
And the verdict, on four of the five: NO DIFFERENCE — pick either. Once the geometry is honest and the test is a real one, the great break-versus-retest argument simply does not resolve on this instrument at most speeds. On the 15m it does resolve — and it says TAKE THE BREAK, which is the opposite of what almost everyone will tell you.
That is what a measurement looks like. It disagrees with the folklore on one timeframe, refuses to take a side on four others, and does not care what you were hoping for. No tool that needs to sell you a signal would ever print "NO DIFFERENCE".
THE ONE THING EVERYONE GETS BACKWARDS
Thomas Bulkowski measured throwbacks and pullbacks across 10,348 chart patterns. His finding:
"Do throwbacks hurt performance? YES: 97% of the time chart patterns with upward breakouts
perform better post-breakout WITHOUT a throwback."
"Do pullbacks hurt performance? YES: 91% of chart pattern types with downward breakouts
perform better if a pullback does NOT occur."
Read that again. The retest is not a gift. It is a SYMPTOM — evidence that the move is weak, that supply came back, that the break did not have the strength to run.
And yet "wait for the retest" is good advice for a completely different reason: it gives you a better price and a tighter stop.
BOTH ARE TRUE AT ONCE. They are two opposing effects on the same trade, and they have never been put on one scale and netted out. That is what this script does. The retest may still win — a better entry can outweigh a weaker move — but nobody has ever checked, and the answer is different on every instrument and every timeframe.
A CLEAN RETEST AND A DEEP ONE ARE NOT THE SAME EVENT
Bulkowski again, and this is his sharpest single finding on the subject: during a throwback, if price REMAINS ABOVE the breakout price the subsequent rise averages 40%. If it drops BELOW the breakout price and then recovers, the rise averages 29%. That is 400 samples versus 2,767.
Pooling those two throws away the strongest signal in the whole idea. So they are separated:
CLEAN retest — price came back and touched the level, but never CLOSED back through it.
DEEP retest — price CLOSED back through the level, then recovered.
They are graded separately, tested against each other, and labelled separately on the chart. If clean beats deep on your instrument, then "wait for the retest" is not one rule — it is two, and only one of them works.
AND CAN YOU SEE IT COMING?
The real, unpriced cost of a WAIT policy is that roughly half the time you never get filled. So it matters enormously whether you can predict which breaks will retest.
Bulkowski found that if price has more than three consecutively higher closes ending the day before the breakout, the throwback probability drops materially. So the panel reports the retest rate SPLIT BY THAT:
after a run of >3 closes 31.2% vs 55.8% otherwise
If the split is real on your instrument, then after a strong run into the break you should simply TAKE IT — because the retest you are waiting for is probably never coming.
IS YOUR VOLUME FILTER EARNING ITS KEEP?
Every trader is taught that a breakout must be confirmed by volume. Bulkowski's volume study says that after an ABOVE-average-volume breakout, FAILURES DOUBLE and the likelihood of a throwback TRIPLES, while the move itself is barely better.
That is testable — but only if the low-volume breaks are allowed into the sample. So VOLUME IS NOT A GATE ON THE RECORD. Every break is recorded; volume gates only the SIGNAL. The panel then reports what your filter is actually worth:
Break ON volume +0.11R n=246
Break OFF volume +0.06R n=166
on vs off (t) 0.82 no difference — it is doing nothing
The record is a fact about the market. The filter is a decision about the trade. They are kept apart, and this is what happens when you stop assuming and start measuring.
IDENTICAL GEOMETRY — and why this is not a detail
The target used to be THE NEXT OPPOSING LEVEL. That quietly destroyed the entire experiment.
The BREAK entry sits PAST the level (it closed through it). The RETEST entry sits BACK AT the level. So the retest is systematically FARTHER from the next opposing level, and was therefore being handed a BIGGER R:R for the SAME RISK — on every single trade, by construction. Live, that produced an R:R of 5.0 on one timeframe and 0.66 on another, and the on-chart key was cheerfully claiming "identical geometry" while the geometry was tilted toward the retest.
The trade now uses a FIXED R multiple, identical for the break, the retest and the control. The next opposing level is still drawn, and still tested — separately, as a descriptive statistic, with its hit rate reported next to its distance in R.
THE ANTI-BIAS GUARDS
ENTRY IS THE CLOSE, for both entries and for the control. Entering the retest AT the level — a better price than the close — while the break enters at its close would hand the retest a free head start on every trade, and settle the oldest argument in trading by rigging it.
THE CONTROL IS DIRECTION-MATCHED. Breaks run with the trend, so a direction-skewed event set measured against a symmetric 50/50 control inherits the drift for free and calls it an edge. Longs are compared only with control longs, shorts only with control shorts, and the control is blended back using the events' OWN direction mix.
EVERY VERDICT IS A TEST, NOT A COMPARISON. Break-vs-wait, clean-vs-deep, volume-on-vs-off — each is a Welch t-test that has to clear |t| > 1.96 before it is allowed to be a finding. For the wait policy, the variance of P(retest) x E is propagated by the delta method, because it is a product of two estimates and both carry error. A verdict that flips on a tenth of an R is not a verdict, it is noise wearing a costume.
Both barriers on one bar: the STOP is assumed first — conservative, and the only assumption that cannot flatter the result. Unresolved trades at the horizon are marked to market, not booked as losses.
THE LEVELS
Levels come from the extrema of a KERNEL-SMOOTHED price series (Nadaraya-Watson) rather than raw pivots, so they track the structure rather than the noise. A break requires a CLOSE beyond the level with displacement, not a wick. A false break is one that closes back inside quickly. All of it is computed on confirmed bars; the kernel is causal and never looks forward.
NON-REPAINT
The kernel confirms an extremum a half-window late, so a level appears some bars AFTER the swing that created it. That lag is the price of not repainting and it is paid deliberately. Levels, breaks, false breaks, retests, signals and every calibration event are computed on CONFIRMED bars only. Nothing is drawn and then moved.
DATA AND SCOPE
Any symbol, any timeframe. ATR-normalised throughout. Volume improves the SIGNAL but is not required, and it never gates the RECORD.
EXPORTS (Data Window — consume from other scripts via input.source())
EXP_Level, EXP_Break, EXP_FalseBreak, EXP_Retest, EXP_Entry, EXP_Stop, EXP_Target, EXP_NextLevel, EXP_WaitEdge
CONCEPT CREDIT
Support/resistance, polarity and the breakout-retest idea are long-standing public trading concepts with no single author; the written tradition runs through Charles Dow, Richard Wyckoff and Edwards & Magee. The formal TRADING-RANGE BREAK was first tested at scale by William Brock, Josef Lakonishok and Blake LeBaron, Journal of Finance 47(5), 1992 — and their results were later shown to be vulnerable to data-snooping (Sullivan, Timmermann and White, 1999), which is exactly why this tool measures the rule on YOUR instrument rather than asserting it.
The throwback and pullback statistics that motivate the clean/deep split, the run-length predictor and the volume test are from Thomas Bulkowski ("Encyclopedia of Chart Patterns"; thepatternsite.com). His numbers are measured on US daily stocks. Whether they hold on YOUR instrument is precisely the question this script exists to answer — and it may well answer "no".
Nadaraya-Watson kernel regression — Nadaraya and Watson (1964); its use for technical pattern recognition — Lo, Mamaysky and Wang, Journal of Finance 55(4), 2000. Triple-barrier forward labelling — Marcos Lopez de Prado. Welch's t-test — B. L. Welch. ATR — J. Welles Wilder.
The break-vs-wait availability weighting, the delta-method significance test, the clean/deep retest split, the volume-filter test and the direction-matched control are the author's own. Clean-room implementation; no third-party Pine code is reused. Not affiliated with, nor endorsed by, any of the above.
HONESTY AND LIMITATIONS
Calibration is IN-SAMPLE, with no costs or slippage, and uses overlapping windows. A proven in-sample edge is NOT a guarantee out-of-sample. Real fills, spreads and commissions will reduce it — and they will hurt the break entry more than the retest entry, because the break enters into momentum.
Bulkowski's throwback statistics are measured on US daily stocks over decades. They are the reason the questions are asked. They are NOT the answer, and this tool will tell you so if your instrument disagrees.
The verdict is allowed to be "NO DIFFERENCE — pick either", and on many instruments it will be. That is a real result. A tool that cannot report its own failure is an advertisement, not a measurement.
Nothing in this script predicts price.
DISCLAIMER
Research and educational tool only. NOT financial advice, NOT a recommendation, and NO guarantee of results. Entry, stop and target output is arithmetic, not advice. Trading carries risk of loss. Test out-of-sample and make your own decisions. The author accepts no liability for any use.
Indicator

Anchored VWAP Hand-Off 2.03Anchored VWAP Hand-Off 2.03 is a multi-leg cascading VWAP indicator. It starts with a classic Anchored VWAP from a user-selected date (Leg 1), then automatically creates new "hand-off" VWAP legs (up to 24) every time price crosses the previous VWAP. Each new leg resets its calculation from the bar of the cross, creating a dynamic chain of VWAPs that follow price action.
Key Features:
Source: Typically close (customizable).
Trigger: EMA(1) of the source (essentially price itself).
Color Logic: Each VWAP leg changes color based on whether price is above (bullish) or below (bearish) it. Supports unified color mode.
Up to 24 cascading legs (user controls how many are shown).
Visual anchor line at the start date.
Main Use Cases:
Dynamic Support & Resistance
The multiple VWAP legs act as adaptive moving support/resistance zones. Traders watch for bounces off these lines or breaks through several legs at once.
Trend Strength & Momentum
Strong trends often break multiple hand-off legs quickly.
Choppy/consolidating markets produce many frequent hand-offs (more lines clustering).
Mean Reversion Setups
Price tends to return to the nearest active VWAP legs. Useful for fade-the-extreme strategies.
Breakout / Breakdown Confirmation
When price decisively breaks through several VWAP legs in sequence, it often signals a high-probability directional move.
Intraday & Swing Trading
Particularly popular on stocks, futures, and crypto for finding "fair value" shifts after news events or strong moves. The hand-off mechanism makes it more responsive than a single static anchored VWAP.
Visual Market Structure
Helps traders see how "value" is migrating over time as new legs form.
Best Timeframes: Works on all, but especially useful on 5min to daily charts.Pro Tip: Start with 8–12 legs. Too many legs can make the chart noisy. Use the anchor date on significant events (earnings, breakout days, macro events, etc.).This indicator is an evolution of standard Anchored VWAP, designed to solve the problem of a single anchored VWAP becoming stale after big moves.
Indicator

Machine Learning Price Bands Kernel Regression SignalsOVERVIEW
Every "AI band" on this platform draws two lines and asserts them. None of them can tell you how often price actually stays inside.
This one can — because it is built on a method that comes with a MATHEMATICAL COVERAGE GUARANTEE, and then it CHECKS WHETHER IT KEPT THE PROMISE, live, on your chart:
Coverage (empirical vs nominal) 89.1% vs 90% n = 20,266
Is the miss REAL? -0.9 pp z = -4.3 (real)
Verdict undercovering — real, but small
That is not a band. That is a prediction interval that has been audited, and it is the whole reason this tool exists.
It is a research and framing tool. NOT a strategy, NOT a signal service, NOT a validated edge.
THE MACHINE LEARNING, SPELLED OUT — no buzzwords, here is the actual model
1. NADARAYA-WATSON KERNEL REGRESSION. Non-parametric: no functional form is assumed, the data chooses the shape. Each past bar votes on the current estimate with a Gaussian weight that decays with distance. This is the same estimator Lo, Mamaysky and Wang used in the Journal of Finance to make chart-pattern recognition objective. It is real machine learning, and it is sixty years old.
The kernel here is CAUSAL. It only ever looks backwards. A centred kernel — the kind most "Nadaraya-Watson envelope" scripts use — peeks at bars that have not happened yet, and that is why their historical fit looks so much better than their live one.
2. BANDWIDTH BY PREDICTIVE MODEL SELECTION. The bandwidth h is the only real parameter, and it is not a magic number: several candidates are run in parallel and scored on their ROLLING ONE-STEP-AHEAD SQUARED ERROR. The winner is used. That is honest model selection — the criterion you would use to choose any forecaster — rather than a knob you turn until the chart looks nice.
3. CONFORMAL PREDICTION INTERVALS. The half-width is the (1-alpha) empirical quantile of the recent ABSOLUTE one-step-ahead errors. Under exchangeability this carries a FINITE-SAMPLE coverage guarantee, with NO distributional assumption at all: no normality, no GARCH, no volatility model. The model's own recent mistakes size the band — which is why it widens when the model starts being WRONG, not merely when price starts moving.
4. ADAPTIVE CONFORMAL INFERENCE — Gibbs and Candes, NeurIPS 2021.
Here is the problem with plain conformal prediction on markets, stated plainly: its guarantee holds under EXCHANGEABILITY, and financial returns are the textbook counterexample. Volatility CLUSTERS. So a residual quantile computed over a trailing window is always a step behind, the band is too narrow exactly when it matters, and the misses bunch together. Coverage lands quietly under nominal. Measured live on NIFTY futures before this was added: 89.1% against a nominal 90%, on the 1m, the 3m and the 1h, every one of them roughly four standard errors below target. Not a bug. The assumption breaking.
ACI makes the miscoverage level a LEARNED parameter:
alpha(t+1) = alpha(t) + gamma * (alpha - err(t))
Miss the interval and alpha falls, so the quantile rises and the band WIDENS. Cover it and alpha creeps back, so the band TIGHTENS. Long-run coverage provably converges to the target IRRESPECTIVE OF THE DATA GENERATING PROCESS — no exchangeability assumption anywhere.
A band that notices it is undercovering and fixes itself. Watch the alpha row: where it settles BELOW nominal is a direct measurement of how badly exchangeability fails on your instrument.
MEASURED, ON THE SAME INSTRUMENT, BEFORE AND AFTER:
timeframe plain conformal with ACI
1m 89.1% 90.1%
3m 89.1% 90.1%
5m 89.1% 90.1%
15m 90.1% 90.1%
1h 89.1% 90.1%
(nominal 90%)
Five timeframes, a four-standard-error undercoverage on four of them, closed. The binomial test now returns "calibrated — within sampling noise" and means it. That is not a backtest of a trading rule. That is a mathematical promise being kept, and being checked.
5. NORMALISED NONCONFORMITY — Papadopoulos et al. (2008), Lei et al. (2018).
The plain score |price - fit| is a SCALAR, which means the band is THE SAME WIDTH in a dead tape and in a crash. It therefore OVERCOVERS in calm and UNDERCOVERS in chaos — and the single marginal coverage figure is the average of those two errors, looking correct while being wrong in both directions.
Normalising divides each residual by a local scale estimate before taking the quantile, and multiplies it back when drawing:
score = |price - fit| / sigma band = fit +/- q * sigma
The band now scales with LOCAL DIFFICULTY — and note it is the MODEL'S difficulty, not the market's volatility. Related, but not the same thing, and the first one is what a prediction interval is actually about.
6. THE COVERAGE AUDIT. A guarantee you do not verify is just a claim.
TWO QUESTIONS ABOUT THE COVERAGE, AND THE PANEL ANSWERS BOTH
IS THE MISS REAL? That is a binomial z-test and it needs no tolerance at all. Each bar is a Bernoulli trial with p = nominal, so the standard error of the observed coverage is sqrt(p(1-p)/n).
IS THE MISS BIG ENOUGH TO CARE ABOUT? That is a judgement, and you set it.
These are NOT the same question, and conflating them is how a band gets waved through as "calibrated". Measured live on NIFTY futures: at n = 20,266 the standard error is 0.21 pp, so an empirical coverage of 89.1% against a nominal 90% is a 0.9 pp miss — FOUR STANDARD ERRORS. Unmistakably real. Arguably too small to trade differently. A 5 pp tolerance called that "calibrated", which was the headline row of the script asserting the one thing the script exists to verify, and asserting it wrongly.
The panel now reports the size of the miss, its significance, and a verdict that distinguishes "within sampling noise" from "real, but small" from "MISCALIBRATED — do not trust the band". You get to decide which of those matters to you, and you get the numbers to decide with.
AND THEN THE ROW NOBODY HAS: CONDITIONAL COVERAGE
Coverage 90.0% vs 90% n = 20,178
calm / normal / turbulent 96.4% · 90.1% · 83.2%
A single marginal number can read a perfect 90% while the interval covers 96% of quiet bars and 83% of violent ones. Ninety per cent is then the AVERAGE OF TWO ERRORS — it looks right while being wrong in both directions, and it is wrong in the direction that costs you money exactly when it costs you money.
Exact conditional coverage is provably impossible without strong assumptions. But you can always MEASURE it, and almost nobody does. Bars are split into calm, normal and turbulent thirds by the percentile rank of ATR, and coverage is scored inside each. If the three numbers fan apart, the band is not breathing — and the normalised score is what closes the gap.
Turn the normalised score off and watch those three fan out. That is the demonstration.
FADE OR FOLLOW? THE TOOL DOES NOT PRETEND TO KNOW
Price leaving a 90% interval is statistically unusual. Whether to FADE it (an outlier, so bet on reversion) or FOLLOW it (the model has broken, so bet on the new regime) is an EMPIRICAL question, and the honest answer is often neither.
So both are logged, both are graded, and BOTH ARE TESTED AGAINST EACH OTHER.
That last part matters more than it sounds. Knowing that fading beats an unconditional control, and that following also beats an unconditional control, does not answer the question a trader is actually asking at a band break — which of the two should I do? They are mutually exclusive responses to the SAME event. So they are run head to head with a Welch t-test, and the answer is allowed to be:
FADE or FOLLOW? NEITHER — the break does not tell you which
If the difference does not clear the noise, then on this instrument the break carries no directional information, and saying so IS the finding. A tool that cannot report its own failure is an advertisement, not a measurement.
And the chart agrees with the panel. An unproven direction is still drawn — it is arithmetic, and you may want it — but it is drawn MUTED and labelled "(not proven)". It used to print "Follow the break" in full colour while the panel directly beneath it said "neither proven". The paint has to agree with the code.
THE ANTI-BIAS GUARDS
ENTRY IS THE CLOSE, for the event and for the control alike. A band break is a SIGNAL, not a fill. Entering at the band — a better price — while the control enters at the close hands every signal a free head start and manufactures an edge out of nothing.
THE CONTROL IS DIRECTION-MATCHED. In a downtrend there are more break-downs than break-ups, so FOLLOW skews short and FADE skews long. A direction-skewed event set measured against a 50/50 control inherits the index drift for free and calls it an edge. Longs are compared only with control longs, shorts only with control shorts, and the control is blended back using the events' OWN direction mix.
IDENTICAL GEOMETRY. Every event and every control trade uses the same stop and the same R multiple, so the comparison is apples to apples.
Both barriers on one bar: the STOP is assumed first — conservative, and the only assumption that cannot flatter the result. Unresolved trades at the horizon are marked to market, not booked as losses. Nothing is marked proven below t = 1.96.
NON-REPAINT
The kernel is causal, the bandwidth is chosen on past error only, the interval is built from past residuals, and coverage is scored by asking whether the actual close landed inside the interval that was published BEFORE it. Everything is computed on confirmed bars. Nothing is drawn and then moved.
WHY THESE PARTS ARE ONE TOOL
The regression gives the trend. Without the interval, a band is a guess. Without model selection, the bandwidth is a knob you turn until you like the picture. Without the coverage audit, a conformal interval is an unverified promise. And without the signal calibration, "price left the band" is folklore. Each piece is worthless alone — which is exactly why they ship together.
DATA AND SCOPE
Any symbol, any timeframe. ATR-normalised throughout. No volume required.
EXPORTS (Data Window — consume from other scripts via input.source())
EXP_Fit, EXP_Upper, EXP_Lower, EXP_Bandwidth, EXP_Coverage, EXP_Miscal, EXP_Signal, EXP_Entry, EXP_Stop, EXP_Target
CONCEPT CREDIT
Nadaraya-Watson kernel regression — E. A. Nadaraya and G. S. Watson (1964). Its use for technical pattern recognition in finance — Andrew W. Lo, Harry Mamaysky and Jiang Wang, "Foundations of Technical Analysis", Journal of Finance 55(4), 2000. Conformal prediction — Vladimir Vovk, Alexander Gammerman and Glenn Shafer; the split/inductive form used here follows Papadopoulos et al. and Lei et al. Triple-barrier forward labelling — Marcos Lopez de Prado. Welch's t-test — B. L. Welch. ATR — J. Welles Wilder.
The causal-kernel implementation, the parallel bandwidth selection, the live coverage audit, the binomial calibration test and the fade-versus-follow head-to-head are the author's own. Clean-room implementation; no third-party Pine code is reused. Not affiliated with, nor endorsed by, any of the above.
HONESTY AND LIMITATIONS
Conformal coverage is guaranteed under EXCHANGEABILITY. Financial returns are NOT exchangeable — volatility clusters, regimes shift — so the guarantee is approximate in practice. THAT IS PRECISELY WHY THE COVERAGE IS AUDITED LIVE INSTEAD OF ASSUMED. When empirical coverage drifts from nominal you are watching the assumption break, in real time, and you should believe what you see rather than the label.
A prediction interval says where price is LIKELY TO BE. It says nothing about DIRECTION, and it is not a forecast. Coverage being correct does not make band breaks tradeable — those are two different claims, and the tool tests them separately for exactly that reason.
Calibration figures are IN-SAMPLE, with no costs or slippage, and use overlapping windows. A proven in-sample edge is NOT a guarantee out-of-sample. Nothing here predicts price.
DISCLAIMER
Research and educational tool only. NOT financial advice, NOT a recommendation, and NO guarantee of results. Entry, stop and target output is arithmetic, not advice. Trading carries risk of loss. Test out-of-sample and make your own decisions. The author accepts no liability for any use. Indicator

Supply & Demand Order Blocks [JOAT]Supply and Demand Order Blocks
Detects institutional order blocks from displacement, tracks them until mitigated, and signals reactions when price returns to a fresh zone.
What it is
Large participants cannot fill size at a single price, so they leave a footprint: the last opposing candle before an aggressive, imbalanced push. That candle marks the zone where unfilled orders rest and where price often returns to be re-accumulated or re-distributed. This indicator locates those zones objectively, manages their lifecycle, and frames the reaction as a trade. It is an original order-block engine with strict zone management.
How it works
• Displacement — the engine measures each impulsive leg over a short window against an ATR multiple. Only moves that exceed that threshold (optionally requiring a fair-value gap) count as institutional displacement, filtering out ordinary candles.
• Order block — the last opposing candle before a qualifying displacement is stored as a zone: the last down candle before a bullish push becomes demand, the last up candle before a bearish push becomes supply.
• Zone management — active blocks are held in parallel arrays, drawn as boxes extended to the right, faded by age and saturated by displacement strength, pruned once mitigated (price closes through them), and capped at a live maximum so the chart stays clean.
• Signals — a Buy fires when price taps a fresh demand block and closes back up (a bullish rejection); a Sell is the mirror at a supply block. An optional trend filter keeps you buying demand in uptrends and selling supply in downtrends, and a minimum-age plus minimum-gap rule stops a freshly formed block from self-triggering and prevents clustering.
Trade levels
Each signal draws a red risk box from entry to a stop placed beyond the block and a green reward box to the third target, with inner dividers and right-edge labels for entry, stop and each take-profit at your R multiples.
The dashboard
An adjustable order-flow-depth panel shows the trend bias, the live counts of demand and supply blocks, the distance to the nearest zone, a conviction estimate, the active signal, and a live first-target-before-stop tally from closed bars only.
How to use it
• Works on any asset and timeframe; larger timeframes produce fewer, more significant blocks.
• Trade reactions at fresh, unmitigated zones aligned with the trend filter; treat mitigated zones as spent.
• Use the nearest-zone distance to anticipate where a reaction may occur before it happens.
Settings
Displacement window and ATR size, fair-value-gap requirement, maximum live blocks and extension, minimum block age, trend filter length, risk buffer and target R multiples, plus visual and dashboard controls.
Originality and usefulness
The contribution is the full lifecycle model: an ATR-based displacement filter, objective block selection, age-and-strength-aware zone rendering, mitigation-based pruning, and a self-trigger guard — combined with a trend-filtered, non-repainting reaction signal and explained end to end.
Notes and limitations
• Not every tap of a zone reverses; blocks can and do break, which is why mitigation pruning and stops exist.
• Order-block definitions vary between traders; this engine uses one consistent, disclosed definition.
• The tally reflects only past bars on the current chart and is not a forecast.
• Educational and analytical tool, not financial advice.
— made with passion by officialjackofalltrades
Indicator

NIMBUS [ThrowMaster]NIMBUS — Ichimoku, Reimagined
Classic Ichimoku is brilliant at one question: "Where is the market right now — above, below, or inside equilibrium?" It is far weaker at a second question every trader actually asks: "What is the market about to do?" NIMBUS keeps the timeless Ichimoku framework intact and adds three dimensions built to close that gap — while staying, above all, honest about what it is: a context compass, not a signal service.
━━━━━━━━━━━━━━━━━━━━━━━━
WHAT NIMBUS ADDS
━━━━━━━━━━━━━━━━━━━━━━━━
⭐ Kumo Calendar — Twist Countdown
Here is a fact most traders overlook: the cloud in front of price is already fully drawn. It is built entirely from bars that have ALREADY closed, then shifted forward. That means the next Kumo twist — the moment Senkou Span A and B swap places — is knowable in advance. NIMBUS scans the forward cloud and counts the exact number of bars until that twist reaches price, and warns you when a thin (weak-support) section is approaching. Ichimoku's most-criticised trait, its lag, becomes a schedule you can read ahead of time.
🩵 Breath — Volume-Reactive Cloud
A traditional cloud shows only price geometry; two identical-looking clouds can hide wildly different conviction. NIMBUS makes the cloud breathe: it grows more solid on high-participation bars and fainter on quiet ones, using a rolling volume percentile. Strength becomes something you feel at a glance, not something you have to calculate. (If a symbol reports no volume, the cloud simply falls back to a fixed opacity — no errors, no false readings.)
🎯 Tenkan / Kijun Cross Clarity
The Tenkan–Kijun cross is one of Ichimoku's core events, yet on most charts it hides in a tangle of lines. NIMBUS marks it precisely: a teal circle at the exact price and bar of a bullish cross, coral for bearish. No hunting, no guessing.
◈ Alignment Hints
When four independent Ichimoku dimensions agree — price vs cloud, Tenkan vs Kijun, cloud colour, and the lagging read — AND price reclaims or loses the cloud on a confirmed bar, NIMBUS prints a small diamond. Think of it as a puzzle-game hint: a nudge to look at the right place at the right time. It is deliberately NOT a buy or sell command, and it never gives a target.
━━━━━━━━━━━━━━━━━━━━━━━━
HOW IT WORKS
━━━━━━━━━━━━━━━━━━━━━━━━
NIMBUS uses the standard Ichimoku engine — Tenkan (9), Kijun (26), Senkou Span A/B, and the lagging span, all fully adjustable. "Price vs cloud" always compares price to the cloud value formed 25 bars ago — the cloud actually sitting beneath price — so the reading reflects real, settled structure. The Breath layer reads a 100-bar volume percentile. The Twist Countdown walks the already-shifted forward cloud bar by bar. The dashboard summarises everything in one compact, theme-aware panel with a mobile Compact Mode.
━━━━━━━━━━━━━━━━━━━━━━━━
HOW TO USE
━━━━━━━━━━━━━━━━━━━━━━━━
• Read the cloud for trend context: above = bullish structure, below = bearish, inside = balance/chop.
• Watch the Twist Countdown to anticipate when the cloud's support/resistance character is about to flip — useful for planning, not for firing blind.
• Let Breath tell you whether a move carries participation or is running on fumes.
• Treat Hints as a reason to zoom in and do your own analysis, never as an instruction.
• Combine with your own risk management. NIMBUS describes context; your plan decides the trade.
━━━━━━━━━━━━━━━━━━━━━━━━
ON REPAINTING (honest)
━━━━━━━━━━━━━━━━━━━━━━━━
Once a bar closes, every Tenkan/Kijun/Span value is fixed and never redrawn. Hints and cross circles are all confirmed on bar close, so a printed mark cannot later disappear. The forward cloud is built only from closed bars, so it is fixed the moment it appears. Like all Ichimoku tools, values on the CURRENT, still-forming bar update in real time until that bar closes — this is inherent to the framework, not hidden repainting, and it is documented directly in the code comments.
━━━━━━━━━━━━━━━━━━━━━━━━
WHAT MAKES IT ORIGINAL
━━━━━━━━━━━━━━━━━━━━━━━━
NIMBUS is not another line pack bolted onto Ichimoku. The Kumo Calendar reframes the forward cloud as a countdown rather than a static shape; Breath encodes participation into the cloud's opacity; and the whole tool is presented as an explicit, self-aware CONTEXT instrument — it tells you what the market is, and refuses to pretend it knows your trade. The code is fully open for you to read, study, and learn from.
━━━━━━━━━━━━━━━━━━━━━━━━
NOTE
━━━━━━━━━━━━━━━━━━━━━━━━
No indicator predicts the future or guarantees results, and NIMBUS makes no such claim. It is a decision-support and context tool. Markets involve risk; always use independent judgement and sound risk management. Not financial advice.
Indicator

True RSITrue RSI | MisinkoMaster
The True RSI is a sophisticated reimagining of classical momentum. While the standard Relative Strength Index has served as a cornerstone of technical analysis for decades, it possesses a fundamental limitation: it treats all price movements equally, regardless of the time elapsed since the market made its last major peak or trough. The True RSI solves this structural blind spot by merging price magnitude with temporal trend strength, weighting gains and losses according to their cyclical maturity.
By dynamically scaling price changes against the time-distance of local extremes, this indicator filters out lateral market noise, reduces false overbought and oversold readings during strong trends, and delivers highly responsive execution signals.
How It Works (The Core Architecture)
Instead of relying solely on arithmetic averages of upward and downward price closes, True RSI filters raw market data through a multi-dimensional momentum matrix:
Temporal Trend Weighting: The algorithm continuously tracks how recently the market has formed local highs and lows. Gains are mathematically weighted against the strength of the upward cycle, while losses are weighted against the strength of the downward cycle.
Cycle-Weighted Ratio: The accumulated, time-weighted gains and losses are calculated over your lookback period to establish a true relative strength ratio. If gains occur during an actively surging upward cycle, they are heavily amplified; if they occur during a dying trend, they are heavily discounted.
Smoothing and Normalization: This ratio is translated into a normalized scale bounded between 0 and 100, providing an incredibly smooth yet responsive oscillator curve alongside a secondary momentum velocity histogram.
Key Features
Time-Weighted Velocity: True RSI prevents premature exhaustion signals during strong, healthy trends because it understands the cyclical age of the current market move.
On-Chart Candle Morphing: The system automatically tracks the oscillator state and alters the colors of your main price bars to keep you visually aligned with the macro trend.
Overlay Execution Labels: Prints pristine Long and Short labels directly on your price pane the moment the underlying structural momentum shifts past your designated thresholds.
Internal Divergence Histogram: Built directly behind the main oscillator is a custom acceleration histogram that monitors the rate of change of the index, pinpointing hidden momentum shifts before they reflect in the price.
Input Parameters & Optimization Guide
Lookback Period: Controls the baseline window for both the cycle-strength calculations and the price change evaluations. A default of 21 bars balances macro trend stability with immediate short-term utility.
Long / Short Thresholds: The structural boundaries that dictate trend shifts. By default, crossing above 50 signals a bullish regime, while dropping below 50 initiates a bearish regime.
Overbought / Oversold Thresholds: Tailored extremes designed to isolate true premium and discount zones. The default 80 and 20 boundaries act as high-probability mean-reversion targets.
Trading Strategies & Execution
Trend Regime Shift
When momentum builds structural backing, the indicator updates its trend state:
A crossing of the True RSI above the Long Threshold triggers a green Long label on the chart, changing candle colors to vibrant green.
A crossing of the True RSI below the Short Threshold triggers a pink Short label, shifting candle colors to pink.
Exhaustion Reversals
Because price movement is weighted against cycle time, entering the overbought (80) or oversold (20) zones represents a market that is genuinely overstretched both in terms of price velocity and time. Reversals from these zones carry high statistical significance for counter-trend scalps or trailing-stop targets.
Acceleration Divergences
Watch the central histogram centered around the 50 line. When the price is grinding flat but the histogram starts to rise or fall aggressively, it shows that the internal speed of the True RSI is accelerating. This hidden momentum often foreshadows explosive breakout expansions.
Disclaimer: Trading financial markets involves high risk. This technical script is designed as an informational analytical tool to support your rule-based mechanical execution system and does not constitute financial advice. Indicator

ATR Trend Band by ByblloATR Trend Band by Bybllo
This indicator plots a smoothed trend line (the "rope") that only moves once price has traveled beyond an ATR-based threshold from its last position, so small back-and-forth noise is absorbed and the line only steps in the direction of a genuine move. Around that rope line, a stepped upper/lower band tracks the highs and lows of the current directional leg, and the space between the rope and each band is filled with a true color gradient — strong color near the band, fading to transparent near the rope — so the current trend direction and its "room" are visible at a glance. When the rope's direction flips, a short transition window is highlighted with its own color and an optional cloud, so brief reversals or whipsaws are visually distinguished from an established trend.
Key Features
ATR-threshold "rope" smoother: the center line only moves once price has moved beyond (ATR length × ATR multiplier) from the line's current value, filtering out minor noise while still reacting to genuine directional moves.
Stepped upper/lower band that resets to the current high/low on a fresh directional leg and then expands to track the extremes of that leg, with the opposite band computed as rope ± the ATR threshold.
True gradient cloud fill between the rope and each band, with an adjustable steepness control for how quickly the color fades toward the rope line.
Distinct up / down / transition coloring on the rope line and the outer band lines, so the current trend direction is clear without reading numbers.
Optional transition-zone cloud that highlights the short window right after a directional flip, before the new trend is considered established.
Real-price calculation via request.security() keeps the indicator consistent regardless of chart type (Heikin Ashi, Renko, etc.).
How to Use
Treat the rope line's color and slope as the current trend direction; a color change (through the transition color) signals a potential shift in direction.
Use the stepped band as a dynamic support/resistance reference for the current leg — price re-testing the band without breaking the rope's direction can be read as a continuation, while a rope flip against the band suggests the leg may be ending.
Lower the "Gradient Steepness" input for a shorter, more intense color burst near the band edges, or raise it for a smoother gradient spread across the full band width.
Turn on "Show Transition Cloud" if you want the brief post-flip window visually flagged, which can help you avoid reacting to whipsaws immediately after a direction change.
Adjust "ATR Length" and "ATR Multiplier" together to control how sensitive the rope is: a smaller multiplier reacts faster but flips more often, while a larger multiplier is slower but more stable.
Notes
The gradient fill relies on Pine's built-in fill() gradient feature, which is supported across all account tiers (free and paid).
The transition window auto-clears after 5 bars if the rope has not resumed its prior direction, so it always reflects a short, recent window rather than an indefinitely "stuck" state. Indicator

HA Zero-Wick Screener (20 Symbols)Heikin Ashi terms:
Bullish setup: Previous HA candle is green (bullish) with no lower wick (HA_Open = HA_Low, i.e., a "clean" green candle), AND current HA candle is also green and closes above the previous candle's close.
Bearish setup: Previous HA candle is red (bearish) with no upper wick (HA_Open = HA_High, i.e., a "clean" red candle), AND current HA candle is also red and closes below the previous candle's close.
Before I write the Pine Script, let me check a couple of things with you.Q: For the 'no wick' condition, how strict should it be?
A: Exactly zero wick (HA_Open = HA_Low/High exactly)Q: What format do you want the final output in?
A: Pine Script strategy/indicator with a screener table (shows on chart)Q: Do you want this to scan a fixed watchlist of symbols you input, or work as an indicator applied per-chart (and you use PulseWire's built-in Screener with 'Add indicator' filter)?
A: Fixed list of symbols typed into the script (table shows all at once)Show moreNow I'll build a Pine Script indicator that:
Lets you type in a list of symbols (editable in settings, plus an on-chart way to note which ones you're tracking)
Computes Heikin Ashi values for each symbol using request.security
Checks your exact bullish/bearish wick conditions
Displays everything in a clean table on the chart
A few technical notes before the code:
Exact zero wick on Heikin Ashi is rare on live/unclosed candles (HA smooths values), so I'll check it on the last closed bar to get true zero-wick detection, and I'll also add a tiny epsilon-safe comparison purely to avoid floating point rounding issues (not a "tolerance" for the pattern itself — this is standard practice for equality checks in Pine).
PulseWire limits request.security calls — a table-based multi-symbol screener can safely hold around 40 symbols per script. I'll set it up so you can easily edit the list.
I'll show: Symbol, Last Close, Signal (Bullish/Bearish/None), and the candle color for context.
Let me write this now.Ran 2 commands, created a file, read a fileRan 2 commands, created a file, read a fileHow to use it:
Open PulseWire → Pine Editor → paste the script → "Add to Chart."
Click the gear icon (settings) on the indicator → edit the Symbols field (comma-separated, e.g. NSE:RELIANCE,NSE:TCS,...) to add/remove tickers.
Choose your Timeframe (defaults to Daily) and toggle "Show only rows with a signal" to filter the table down to just Bullish/Bearish hits.
How the logic works:
Bullish: previous HA candle is green with HA_Open == HA_Low (zero lower wick) AND current HA candle is green AND current HA close > previous HA close.
Bearish: previous HA candle is red with HA_Open == HA_High (zero upper wick) AND current HA candle is red AND current HA close < previous HA close.
Table shows Symbol, Last Close, HA candle color, and Signal, color-coded (green row = bullish, red row = bearish).
Important limitations to know:
PulseWire caps request.security calls per script at 40. The script above has 10 example symbols — you can extend up to 40 total before it'll throw an error. If you need more, you'd need multiple copies of the script or PulseWire's actual Stock Screener with a custom Pine screener script (separate product from indicators, works differently).
Exact-zero-wick is a strict condition — on many stocks this will rarely trigger since HA candles usually have at least a tiny wick. If you find signals are too rare, you may want to loosen this later (I can add a small tolerance % as an input if needed).
This works as a chart overlay, not inside PulseWire's native "Screener" UI panel — it's a table drawn on whatever chart you apply it to, showing all your symbols regardless of which chart is open. Indicator

Support & Resistance Confluence Levels, Hold Record & ReversalOVERVIEW
Four lines. Two above price, two below. That is the whole chart.
Every other support/resistance tool has the opposite problem. It finds forty levels and leaves you to work out which two matter. Forty levels is not information, it is wallpaper — and a level you have to hunt for is a level you will not trade.
So this tool inverts the design. It does not ask "where are the levels?" It asks:
WHICH LEVEL WOULD I ACTUALLY TRADE, RIGHT NOW, AND WHY SHOULD I BELIEVE IT?
A price is only promoted to a level when SEVERAL INDEPENDENT METHODS AGREE ON IT. One method finding a level proves nothing — every method finds levels everywhere. The signal is AGREEMENT.
This is a research and framing tool. It is NOT a strategy, NOT a signal service, and NOT a validated edge.
THE SIX VOICES — four propose, two confirm
PROPOSERS. Each nominates candidate prices, independently:
◆ SWING PIVOT the classic. Where price actually turned.
~ KERNEL EXTREMUM the turning point of the SMOOTHED price (Nadaraya-Watson), which is the shape
rather than the noise. This is Lo, Mamaysky and Wang's method, and it finds
structurally different levels from a raw pivot. That independence is exactly
what makes agreement between the two worth something. Agreement between two
methods that make the same mistakes is worth nothing at all.
⇈ HIGHER TIMEFRAME a swing on the HTF. The level a bigger participant is watching.
▣ PRIOR PERIOD yesterday's high and low. Last week's high and low. The most watched prices on
any chart — and missing from almost every auto-S/R script on PulseWire.
CONFIRMERS. They do not nominate, they vouch:
▪ VOLUME NODE the level sits where volume actually transacted. Real business was done here,
not merely a turning point.
○ ROUND NUMBER the psychological grid.
Candidates within an ATR tolerance merge, and the merged level inherits every voice that spoke for it. A level needs MIN VOICES to exist at all. Everything below that is DISCARDED, not hidden. Then only the nearest two above and two below are drawn.
The label tells you why the level is there: "◆~▣▪ 4v held 3/4 24,247.00" — four independent voices, tested four times, held three.
AND THEN THE PART NOBODY DOES: WE TEST WHETHER CONFLUENCE ACTUALLY RANKS
"Levels are stronger when several methods agree" is one of the most repeated claims in technical analysis and almost nobody has ever checked it. It is checkable. So the panel reports:
High confluence (3+) +0.24R n=61 PROVEN
Low confluence -0.03R n=88
Control (unconditional) +0.02R n=240
DOES CONFLUENCE RANK? YES — more voices IS better
And the control is DIRECTION-MATCHED. Reversals at support are overwhelmingly LONG on a drifting index — and a long-biased event set compared against a 50/50 control is handed the drift for free and calls it an edge. Longs are compared only with control longs, shorts only with control shorts, and the control is then blended back using the events' OWN direction mix. It is a subtle trap and it will manufacture an edge out of nothing if you let it.
And the verdict is a TEST, not a comparison. High confluence is measured against low confluence with a Welch t-test, and the difference must clear |t| > 1.96 before it is allowed to be a finding. Below that, the panel prints the least satisfying answer there is — NO DIFFERENCE — because that is the honest one. A tool that reports a 0.02R gap as a verdict is not measuring anything, it is decorating.
If the extra voices do not rank on your instrument, then on your instrument they do not rank, and no amount of agreement between methods will change that. That row is the reason this script exists.
THE HOLD RECORD — and why "held 3/4" is not what most scripts mean by it
A TEST IS AN EPISODE, NOT A BAR. Price arrives at the level and the test stays OPEN until price LEAVES it — back the way it came (HELD) or straight through (BROKE). A bar that closes INSIDE the zone has resolved nothing and is counted as nothing.
Counting every touching bar as a completed test drops an entire consolidation into the denominator as failures, and manufactures hold rates near 10% that say nothing about the level and everything about the counter. An unresolved test is neither a hold nor a break, exactly as an unresolved trade is neither a win nor a loss.
AND A TEST IS AN APPROACH, NOT A BAR TOUCHING A BOX. Price exits the zone (HELD), the next bar dips straight back in — and without a re-arm rule that counts as a brand-new test. Chop sitting on a level then logs a hundred "tests" that were really one event. Measured live before this was fixed: 224 tests of a single level on a 5m chart, and hold rates that all landed between 61% and 75% no matter which level you looked at. A statistic that cannot tell any two levels apart is not measuring the levels — it is measuring the bar size. Price must now travel clear of the zone before the level can be tested again. One approach, one test.
The volume filter gates the SIGNAL and never the RECORD. A level that holds on thin volume still HELD. Quietly dropping it from the numerator while leaving it in the denominator is how a hold rate gets manufactured.
IF TWO ZONES OVERLAP, THEY ARE THE SAME LEVEL
The merge tolerance is held to at least the combined zone half-widths. Otherwise two levels a fraction of an ATR apart refuse to merge and then draw overlapping boxes anyway, and the geometry contradicts itself on the chart for anyone to see. It is a small thing that quietly tells you the tool was never looked at.
A LEVEL IS AN ANCHOR, NOT A TRAILING AVERAGE
Levels merge as new candidates arrive, and the merged price is a COUNT-WEIGHTED mean: the tenth candidate moves the level by a tenth of the gap, not half of it. This sounds like a detail. It is not. A level that moves halfway toward every new candidate will slide toward price — because price is where new candidates come from — until it is no longer an anchor at all, but a trailing average sitting in the middle of the action, "tested" on every swing. The maths here is the difference between a level and a moving average with extra steps.
Levels are retired by DISTANCE, and confluence buys REACH. A level far from price is useless however many voices it has; a level at price is what you are trading. But eviction cannot simply drop the weakest, either — every level is BORN with one voice, so a weakest-first rule kills every new level in the cradle, before it can earn a second, and the chart slowly fills with ancient far-away fossils while nothing can form where price actually is. Confluence buys a level the right to be further away. It does not buy it immortality.
THE REVERSAL TRADE — because nobody looks at a level to admire it
Price tests the level and closes back out. Entry at the CLOSE, stop beyond the level, target a fixed R multiple.
ENTRY IS THE CLOSE, for the event and for the control alike. A rejection is a SIGNAL, not a fill.
Entering at the level — a better price — while the control enters at the close hands every level a
free head start, and it would "win" without the level having done anything at all.
THE R MULTIPLE IS FIXED so that the event and the control are measured on IDENTICAL geometry. A
variable target against a fixed-target control is not a comparison: the near target is reached more
often AND resolves inside the grading horizon more often, so the two are not even being asked the
same question.
THE NEXT OPPOSING LEVEL is drawn too, and separately tested: is it reached before the stop, and HOW
FAR AWAY IS IT IN R? A hit rate with no distance attached is a fact about the distance, not about
the levels — a target half a unit of risk away being reached often proves nothing.
Signals fire only at the levels actually on screen. Every level keeps its record; only the ones you are watching can fire. You do not trade a level twelve levels away from price.
And when a level BREAKS, you are told. A level holding is the reversal; a level giving way is the other half of why anyone draws one. Breaks are marked with an x and carry their own alerts — reported as pure information, with no trade framed and no claim made, because the break is not what this engine calibrated. Saying so is cheaper than pretending otherwise.
NON-REPAINT, AND ITS HONEST COST
Pivots confirm some bars late. The kernel extremum confirms a half-window late — a centred kernel looks into the future, and we refuse to. So a level appears some bars AFTER the swing that created it. That lag is the price of not repainting and it is paid deliberately.
Levels, tests, holds, breaks, signals and every calibration event are computed on CONFIRMED bars only. The HTF read uses lookahead_off. Nothing is drawn and then moved.
DATA AND SCOPE
Any symbol, any timeframe. ATR-normalised throughout. Volume improves the score but is NOT required — without it the volume-node voice simply abstains rather than guessing.
HOW TO USE
0. Turn the KEY on once (Dashboard & theme > Show the key). It explains the six glyphs. Turn it off
again — you only need it the first time.
1. MIN VOICES is the one input that matters. 1 gives you the forty-line wallpaper every other S/R
script gives you. 2 requires agreement. 3 shows only the prices several independent methods
arrived at on their own. Raise it until the chart shows levels you would actually trade.
2. Read the hold record. "Held 3/4" tells you more than any colour ever will.
3. READ THE CONFLUENCE VERDICT BEFORE YOU WEIGHT ANY OF IT. If the voices do not rank here, a level
is a LOCATION, not a probability — treat it as context, not as a signal.
4. Wait for the rejection: price into the level, close back out, on real volume.
5. Entry, stop and target are drawn. They are arithmetic, not advice.
ALERTS
Support held · Resistance held · Any rejection · Support broke · Resistance broke
EXPORTS (Data Window — consume from other scripts via input.source())
EXP_Sup1, EXP_Sup2, EXP_Res1, EXP_Res2, EXP_SupVoices, EXP_ResVoices, EXP_Signal, EXP_Entry, EXP_Stop, EXP_Target, EXP_ConfluenceEdge
CONCEPT CREDIT
Support/resistance and polarity are long-standing public trading concepts with no single author; the written tradition runs through Charles Dow, Richard Wyckoff and Edwards & Magee.
The TRADING-RANGE BREAK — the formal S/R rule — was first tested at scale by William Brock, Josef Lakonishok and Blake LeBaron, "Simple Technical Trading Rules and the Stochastic Properties of Stock Returns", Journal of Finance 47(5), 1992. Their findings were later shown to be vulnerable to data-snooping (Sullivan, Timmermann and White, 1999) — which is precisely why this tool MEASURES the rule on your instrument instead of asserting it.
Nonparametric kernel regression for level detection is from Andrew W. Lo, Harry Mamaysky and Jiang Wang, Journal of Finance 55(4), 2000; the Nadaraya-Watson estimator is due to Nadaraya and Watson (1964). ATR — J. Welles Wilder. Triple-barrier forward labelling — Marcos Lopez de Prado. Welch's t-test — B. L. Welch.
The confluence gate, the voice model, the episode-based hold record, the confluence-ranking test and the direction-matched control are the author's own. Clean-room implementation; no third-party Pine code is reused. Not affiliated with, nor endorsed by, any of the above.
HONESTY AND LIMITATIONS
Calibration is IN-SAMPLE, with no costs or slippage, and uses overlapping windows. A proven in-sample edge is NOT a guarantee out-of-sample. Real fills, spreads and commissions will reduce it.
The confluence gate is one rule among many — a different tolerance gives different levels.
Confluence is TESTED here, not assumed. If the panel says the extra voices do not rank, then on this instrument they do not, and no amount of agreement between methods will change that.
Both barriers on one bar: the STOP is assumed first — conservative, and the only assumption that cannot flatter the result. Unresolved trades at the horizon are marked to market, not booked as losses. Nothing is marked PROVEN below t = 1.96, and nothing is rated at all below the minimum sample.
Nothing in this script predicts price.
DISCLAIMER
Research and educational tool only. NOT financial advice, NOT a recommendation, and NO guarantee of results. Entry, stop and target output is arithmetic, not advice. Trading carries risk of loss. Test out-of-sample and make your own decisions. The author accepts no liability for any use. Indicator

Volatility Squeeze Ignition [MarkitTick]💡 A multi-dimensional analytical engine designed to detect periods of extreme market consolidation and validate the subsequent directional expansion. By measuring the mathematical relationship between standard deviation and average true range, this tool identifies equilibrium zones where price action compresses and stores kinetic energy. Rather than reacting blindly to every volatility spike, the script employs a sophisticated filtration matrix that evaluates underlying volume delta, higher timeframe macro-trend alignment, directional movement strength, and immediate candlestick morphology. This creates a rigorous framework that authenticates breakout signals, ensuring that traders only focus on high-probability momentum ignitions supported by definitive market conviction.
✨ Originality and Utility
Standard volatility indicators often generate breakout signals without providing any insight into the underlying market participation or the structural validity of the move. This system distinguishes itself by integrating a state-tracking memory engine that monitors the cumulative buying and selling volume specifically during the compression phase. This continuous volume delta tracking allows the system to pre-assess the directional bias before the actual breakout materializes. Furthermore, it incorporates a dynamic risk-to-reward projection matrix mapped directly onto the chart. It calculates stop-loss zones and sequential take-profit levels based on the exact width of the preceding volatility squeeze. This creates a completely self-contained analytical environment that bridges the critical gap between signal generation and precise trade management, eliminating the need for discretionary target plotting and manual risk calculations.
🔬 Methodology and Concepts
● The Volatility Squeeze Engine
The core mechanics rely on the precise interplay between Bollinger Bands and Keltner Channels. A squeeze state is formally activated when the Bollinger Bands contract entirely within the boundaries of the Keltner Channels. This condition signifies that the market's standard deviation has fallen below its historical true range, indicating a profound period of low volatility and liquidity resting. The system mathematically locks in the exact width of the bands at the onset of this compression. An ignition signal is mathematically validated only when the price decisively breaks outside the Bollinger Bands, provided the bands have begun to expand.
● Volume Delta Profiling
While the squeeze state is active, the script meticulously aggregates the volume of up-closing bars versus down-closing bars. This builds a cumulative delta sum. When a breakout triggers, the system references this stored delta to ensure that the directional break is fully supported by the actual volume flow accumulated during the consolidation phase, preventing false breakouts engineered by low-liquidity spikes.
● Multi-Dimensional Filtering
The breakout validation process is governed by a rigorous confluence matrix:
Higher Timeframe Alignment: Evaluates a simple moving average on a higher resolution chart to ensure the breakout trades strictly in the direction of the macro trend, utilizing a secure, non-repainting data referencing architecture.
Trend Strength Evaluation: Integrates the Average Directional Index to demand a minimum trend strength threshold, actively filtering out choppy, sideways market noise.
Candlestick Morphology: Evaluates immediate, candle-by-candle price and momentum interaction. The real body of the breakout candle must constitute a specific percentage of the total high-to-low range, confirming definitive and immediate market conviction rather than relying on lagging divergences.
Volatility Expansion: Compares the current channel width against the locked width from the start of the squeeze, ensuring the breakout is accompanied by a genuine expansion in market volatility.
🎨 Visual Guide
● Chart Overlays
Active Squeeze Background: A subtle blue vertical background highlight appears when the volatility squeeze is actively compressing.
Breakout Backgrounds: A vibrant teal background signals a confirmed bullish squeeze ignition, while a vivid crimson background highlights a bearish squeeze ignition.
BB Basis Line: A solid blue line representing the central moving average of the standard deviation channel.
KC Lines: Muted, semi-transparent lines mapping the upper and lower boundaries of the true range channel.
● Trade Management UI
Entry Line: A dashed blue line marking the exact closing price of the validated breakout candle, accompanied by a dynamic price label.
Stop Loss (SL) Line: A solid, thick crimson line indicating the invalidation level. Depending on user settings, this is positioned either at the opposite channel edge or calculated via an ATR multiplier. A red translucent fill connects the Entry to the SL, visualizing the exact risk zone.
Take Profit (TP) Lines: Three distinct dashed teal lines representing sequential profit targets, derived from Fibonacci extensions of the locked squeeze width. A green translucent fill highlights the total reward zone from the Entry to TP3.
● Information Dashboard
A comprehensive heads-up display anchored to the chart corner providing real-time telemetry on the system's state:
Squeeze Status: Displays whether the compression is currently ACTIVE or OFF, alongside a graphical progress bar.
Sqz Bars: A numerical count of how long the current squeeze has been compressing.
BB Width %: A visual gauge showing the current width of the standard deviation channel relative to its basis.
Delta Bias: Highlights the dominant accumulated volume direction (BULLISH, BEARISH, or NEUTRAL) colored dynamically in teal or crimson.
R:R Metrics: Real-time calculation bars showing the exact risk-to-reward ratios for all three take-profit targets based on the current active signal.
Filter Diagnostics: Individual status readouts for HTF Trend, ADX, Body Strength, and Volume Confirmation, allowing traders to instantly see which filters are passing or failing.
📖 How to Use
● Identifying Setups
Traders should monitor the chart for the appearance of the blue active squeeze background. During this phase, direct your attention to the Dashboard to monitor the "Delta Bias" and "Sqz Bars" count. A longer squeeze accompanied by a strong, building Delta Bias indicates a high-probability impending breakout. Wait for a confirmed candle close that breaks the channel limits, triggering the vibrant teal or crimson background.
● Managing Trades
Once an ignition signal fires, the script automatically projects the entry, stop-loss, and three take-profit levels. Traders can use the SL line to place their initial protective stop. As price approaches TP1, traders may consider scaling out a portion of their position and trailing their stop loss to the Entry line to secure a risk-free trade. The graphical risk and reward fills visually assist in quickly assessing if the projected trade meets your personal risk parameters before execution.
⚙️ Inputs and Settings
● Core Parameters
BB Range: Defines the calculation range for the standard deviation channel.
BB Mult: The standard deviation multiplier determining the width of the outer bands.
KC Range: Defines the calculation range for the average true range channel.
KC Mult: The multiplier dictating the width of the Keltner Channels.
Min Squeeze Bars: The absolute minimum number of consecutive compressed bars required before a valid ignition can be fired.
● Filters
Require Volume Confirmation: Toggles the volume delta tracking engine.
HTF Trend Filter: Activates the macro-trend alignment requirement, preventing counter-trend breakout signals.
ADX Trend Strength Filter: Enables a strict momentum threshold requiring the market to be actively trending.
Candle Body Strength Filter: Enforces a structural rule where the breakout candle's body must meet a minimum size relative to its wicks.
● Trade Tools & Alerts
SL Mode: Allows traders to select between a structural stop loss at the opposite channel edge or a volatility-based ATR stop.
TP1, TP2, TP3 Fib: Customizable Fibonacci multipliers that project the profit targets based on the original width of the market squeeze.
Dashboard Settings: Toggles the visibility and positional anchoring of the telemetry table.
Alert Actions: Advanced JSON-formatted string inputs allowing traders to define precise webhook payloads for entries, exits, and target hits, enabling seamless automated execution.
🔍 Deconstruction of the Underlying Scientific and Academic Framework
● Volatility Compression Theory
The fundamental architecture of this script is rooted in the cyclical nature of market volatility, which oscillates continuously between periods of extreme contraction and aggressive expansion. By cross-referencing standard deviation against an absolute measure of true range, the algorithm quantitatively identifies the inflection points where liquidity providers pull back and the market reaches a state of unnatural equilibrium. The mathematical locking of the channel width captures the precise kinetic energy stored during this phase, applying principles of mean reversion and standard deviation expansion to project the statistical probability of the ensuing vector move.
● Order Flow and Delta Mechanics
To move beyond simple price derivatives, the system incorporates an approximated order flow model through its volume delta profiling. By segmenting traded volume into up-closing and down-closing aggregates during the compression state, the script builds a proxy for aggressive market participation. This mechanism relies on Auction Market Theory, assessing the imbalance between aggressive buyers lifting the offer and aggressive sellers hitting the bid. When the mathematical breakout aligns with the underlying delta accumulation, the script confirms that the price displacement is driven by genuine institutional or macroscopic participation, significantly reducing the statistical likelihood of a mean-reverting liquidity sweep.
⚠️ 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. Indicator

ICT Killzones & Key Levels -DST- By SpartanICT Killzones & Key Levels -DST- By Spartan
This tool brings together the reference levels that ICT-style session traders build their bias around, so you are not stacking four or five separate indicators on one chart to get them. Killzone session ranges, their pivot highs and lows, Fibonacci retracements of each session's range, and the higher-timeframe opens, highs, lows, and time markers that traders use to judge context all come from the same underlying session and time data. Keeping them in one script means they stay in sync with each other and with the timeframe/timezone settings you choose, instead of drifting apart the way separately-configured indicators can.
This indicator's strongest feature is the automatic daylight saving time adjustment for each session as it uses real time zones of each session and adjusts automatically rather than having to change them each time the clock is changed anywhere
WHAT IT DOES
Killzone sessions
Draws boxes around the Asia, London, and New York killzone sessions. Each session's time range is entered in that session's own local time (UTC for Asia, Europe/London for London, America/New York for New York) and automatically adjusts for daylight saving, so you never have to manually shift the input twice a year.
Pivots
Marks each session's high and low as extending lines, with optional labels showing price. Pivots can extend until price mitigates them or continue past mitigation, and can alert you when a session high or low is broken.
Fibonacci levels (new in this version)
Each session can independently plot 0, 0.25, 0.5, 0.75, and 1 retracement levels of its own range. These update live while the session is still forming and lock in place once the session closes, so you can watch how a session's midpoint and quartiles evolve in real time rather than only seeing them after the fact. Colors automatically match each session's own color so the chart stays readable.
Midpoints
Optional midpoint line for each session's pivot range, with the choice to stop tracking once price mitigates it or keep tracking through the session.
Killzone range table
An optional table showing each session's most recent range and its rolling average over a configurable number of past sessions, so you can gauge whether the current session is expanding or contracting relative to its recent history.
Day / Week / Month tools
Optional open lines, high/low lines, and separators for the daily, weekly, and monthly timeframes, each with independent alerting on high/low breaks.
Custom opening prices and timestamps
Up to eight custom time-of-day open markers (for marking things like true day open or other reference times you track) and four vertical timestamp lines, both independently configurable.
Day-of-week labels
Optional labels marking the start of each weekday on intraday charts, with the option to hide weekend labels.
HOW TO USE IT
Turn on the sessions you trade, set the killzone range and pivot options to match how you use highs/lows and mitigation, and enable Fibonacci levels on whichever sessions you want retracement context for. The killzone range table is useful for a quick read on whether the current session is unusually wide or narrow. The Day/Week/Month and custom time tools are there if you also reference higher-timeframe opens or specific times of day, but are fully optional and off by default so the chart stays clean if you only want killzones.
CREDIT AND ORIGINALITY
The killzone box, pivot, and DST-safe session-detection logic in this script is built on tradeforopp's open-source "ICT Killzones & Pivots" indicator. This version adds session-independent live-updating Fibonacci retracement levels (not present in the original), a reorganized and more clearly labeled settings panel, and several fixes to line/label handling in the underlying session logic. Published open-source in keeping with the license of the code it builds on.
This is a level-marking and context tool, not a signal generator or a strategy. It does not predict future price movement or guarantee any outcome; it plots historical and forming session data so you can build your own read of the market around it. Indicator

Buy Sell Badge with DMI by ByblloBuy Sell Badge with DMI by Bybllo
At its core, this indicator combines two independent Buy/Sell signal sources into one badge system: (1) a basic Fast/Slow EMA crossover ("BSB"), and (2) a DMI-based signal built from the golden cross (DI+ crossing above DI-) and dead cross (DI- crossing above DI+) of the Directional Movement Index, filtered by a minimum ADX threshold.
The EMA crossover generates the base Buy/Sell signal, then automatically manages an ATR-based stop loss and a risk:reward-based take profit for each signal, showing the resulting entry/stop/target levels directly on the chart along with a live status table. The DMI golden-cross / dead-cross engine can be enabled as a confirmation filter on top of that: when turned on, a badge is only shown if a matching DMI cross (with ADX above a configurable threshold) occurs within a set number of bars of the EMA signal. In practice, this acts as a noise-reduction filter — choppy, low-conviction EMA crossovers with no matching directional strength behind them are suppressed, so only badges backed by both a trend-following signal and a directional-strength signal are actually displayed.
Key Features
Fast/Slow EMA crossover generates the base Buy/Sell signal, with an optional candle-confirmation requirement (close beyond open in the signal direction).
Automatic ATR-based stop loss and configurable Risk:Reward take profit are calculated for every new signal, with intermediate take-profit levels plotted when Risk:Reward is greater than 1.
Optional "BSB + DMI" confirmation filter: a badge is only shown when a DMI golden cross or dead cross, confirmed by ADX above your threshold, occurs within a configurable bar window of the EMA signal, in either order. This suppresses noisy, low-conviction EMA crossovers and leaves only the badges that are backed by both signals.
On-chart entry / stop-loss / take-profit lines and an SL distance (in points) label, both toggleable and only shown while a badge has actually been displayed for the active position.
Take-profit, stop-loss, and "invalidated" (opposite signal fired before target/stop was hit) markers are plotted separately so you can see exactly how each trade idea played out.
A live status table (top-right) shows the current position, entry, stop loss, take profit, and realized Risk:Reward.
Real-price calculation via request.security() keeps signals consistent regardless of chart type (Heikin Ashi, Renko, etc.).
A full set of alertcondition() calls for BSB-only signals, BSB+DMI confirmed signals, take-profit hits, stop-loss hits, and invalidated entries.
How to Use
Leave "BSB + DMI" unchecked to use the EMA crossover badges on their own (fastest signals, no directional-strength filter).
Check "BSB + DMI" to require that a DMI golden cross (for Buy) or dead cross (for Sell), confirmed by ADX, also occurs near the EMA signal — this filters out noise and typically reduces the number of badges, but favors signals that also have directional strength behind them.
Watch the on-chart entry/SL/TP lines and the status table to track an open idea's risk and progress in real time.
Set up alerts on the "BSB+DMI Buy/Sell", "Buy/Sell Signal", "Take Profit Hit", "Stop Loss Hit", or "Entry Invalidated" conditions depending on which events you want to be notified about.
Notes
The "EMA Badge Spacing" and "DMI Badge Spacing" inputs each apply their own cooldown to prevent duplicate signals firing on consecutive bars; keep the DMI spacing aligned with the badge spacing you use on other DMI-based indicators if you compare them side by side.
Stop-loss and alert-sensitivity offsets are point-based and will need adjusting per instrument (see the tooltips on those inputs).
This indicator does not place real orders; it is a visual / alerting tool for tracking a rules-based EMA + DMI golden-cross/dead-cross trade idea. Indicator

DMI DI Gap by ByblloDMI DI Gap by Bybllo
This indicator plots the gap (difference) between the DI+ and DI- lines of the Directional Movement Index (DMI). Instead of visually comparing two separate DI+ / DI- lines to spot a crossover, the difference (DI+ minus DI-) is calculated directly and plotted as a single line around a zero baseline.
A cross above the zero line signals a shift toward bullish momentum, while a cross below the zero line signals a shift toward bearish momentum — each crossing is automatically marked with a buy or sell arrow, so there is no need to eyeball where the two DI lines intersect.
Key Features
A single "DI Gap" line (DI+ minus DI-) replaces the need to watch two overlapping DI+ / DI- lines and spot their crossovers by eye.
Zero-line crossover / crossunder is detected automatically and marked with buy (upward) and sell (downward) triangle arrows, offset a configurable distance from the zero line.
An optional ADX line, rescaled from its native 0–100 range to a custom min/max range, can be overlaid to gauge trend strength alongside the directional gap.
A filled cloud area between the gap line and the zero line is colored according to whether the current gap is positive or negative.
+25 / -25 dotted reference lines help gauge how strong the current directional imbalance is.
Real-price calculation via request.security() ensures values stay consistent regardless of chart type (Heikin Ashi, Renko, etc.).
How to Use
When the DI Gap line crosses above zero, a buy arrow appears below the zero line, indicating directional momentum has turned bullish (DI+ has overtaken DI-).
When the DI Gap line crosses below zero, a sell arrow appears above the zero line, indicating directional momentum has turned bearish (DI- has overtaken DI+).
Use the optional rescaled ADX line to check whether the broader trend has enough strength to support the signal before acting on it.
The +25 / -25 dotted lines can be used as a rough guide for how pronounced the current directional imbalance is.
Notes
The rescaled ADX line is for visual reference only; it does not represent the standard 0–100 ADX scale unless the scale inputs are set to 0 and 100.
Works consistently across chart types since real market price data is always pulled via request.security(), regardless of the chart type currently displayed. Indicator

Rolling Trend Pointer. Identify the True Market TrendRolling Trend Pointer is designed to provide an objective assessment of market direction, confirm trending conditions, and filter trading signals that occur in weak or conflicting market environments. Instead of relying on a conventional moving average, the indicator analyzes price position relative to VWAP, trading volume, the statistical magnitude of price deviations, the slope of Anchored VWAP, and directional agreement across multiple calculation periods.
Its main advantage is that it does not simply show whether price is above or below an average line. It evaluates the current trend direction, the strength of the active price impulse, and the degree of agreement between short-term price behavior and the broader volume-weighted market direction.
Two Indicators Combined into One
Rolling Trend Pointer combines two interconnected indicator components:
1. "Rolling VWAP Trend Pointer", displayed in a separate indicator panel below the chart.
2. "Monthly Anchored VWAP with Multi-Period Confirmation", displayed directly on the main price chart.
The first component measures the current deviation of price from a rolling VWAP and determines whether the movement is statistically significant.
The second component determines the broader market direction based on the slope of the Monthly Anchored VWAP. It can also confirm that direction using Quarterly, Semiannual, and Annual Anchored VWAP calculations.
The "Synchronized Mode" checkbox connects both components into a single trend-confirmation system. When synchronization is enabled, the background fill on the main chart appears only when the Anchored VWAP direction agrees with the direction of the Rolling VWAP histogram.
Part 1: Rolling VWAP Trend Pointer
The first component is displayed in a separate indicator panel and consists of:
* a green and red histogram;
* an upper positive boundary;
* a lower negative boundary;
* a zero line;
* a colored background indicating a strong breakout beyond the corresponding boundary.
The calculation is based on a Rolling VWAP, which is a volume-weighted average price calculated over the selected number of bars.
After calculating the VWAP, the indicator measures the distance between price and the VWAP:
* positive values are generated when price is positioned above the VWAP;
* negative values are generated when price is positioned below the VWAP.
The green histogram represents positive price deviation from the Rolling VWAP. The red histogram represents negative deviation.
The larger the absolute histogram value, the further price has moved away from its current volume-weighted center.
Separate Positive and Negative Boundary Calculations
The upper and lower blue boundary lines are calculated independently.
The upper boundary uses only historical values above zero. It is designed to evaluate positive deviations and bullish price impulses.
The lower boundary uses only historical values below zero. The indicator analyzes the absolute magnitude of these negative deviations and then returns the calculated boundary to the negative area.
As a result, the lower boundary is not simply a mirrored version of the upper boundary. Each side adapts independently to the historical characteristics of bullish and bearish price movements.
This distinction is important because upward and downward volatility are often structurally different. Declines may occur quickly and aggressively, while bullish movements may develop more gradually and persist for longer periods.
Using separate calculations allows the indicator to adapt to this asymmetry instead of assuming that positive and negative price behavior is identical.
Detecting Strong Price Impulses
When the histogram remains between the two blue boundaries, the price deviation is considered normal for the current market environment.
When the positive histogram rises above the upper boundary, the indicator identifies a strong bullish impulse. The background of the separate indicator panel becomes green.
When the negative histogram falls below the lower boundary, the indicator identifies a strong bearish impulse. The background becomes red.
A boundary breakout should not automatically be treated as an independent entry signal. It indicates that the current movement has become significantly stronger than the price deviations recently observed in the instrument.
Part 2: Monthly Anchored VWAP
The second component is displayed directly on the main price chart.
It includes:
* the Monthly Anchored VWAP;
* upper and lower statistical bands;
* a VWAP line color based on its slope;
* a colored fill between the VWAP bands;
* optional confirmation from Quarterly, Semiannual, and Annual Anchored VWAP calculations.
The Monthly VWAP calculation resets at the beginning of every calendar month.
Unlike the Rolling VWAP, which uses a continuously moving lookback window, the Monthly Anchored VWAP accumulates price and volume data from the beginning of the current month.
When the Monthly VWAP slope is positive, the central line becomes green.
When the Monthly VWAP slope is negative, the central line becomes red.
The upper and lower bands are calculated using the volume-weighted standard deviation of price around the Monthly VWAP. These bands create a dynamic range that reflects the current price structure and volatility within the month.
Multi-Period Trend Confirmation
By default, the trend direction is determined by the Monthly Anchored VWAP.
The following additional confirmation periods can be enabled in the settings:
* "Use Quarterly VWAP Confirmation"
* "Use Semiannual VWAP Confirmation"
* "Use Annual VWAP Confirmation"
The additional confirmation periods use AND logic.
For example, when Quarterly and Annual confirmation are enabled, a bullish trend will be confirmed only when the Monthly, Quarterly, and Annual VWAP slopes are all positive at the same time.
A bearish trend will be confirmed only when all enabled VWAP periods have negative slopes.
The more confirmation periods that are enabled, the stricter the trend filter becomes.
This reduces the number of confirmed trend conditions but increases the degree of agreement across different market horizons.
Synchronized Mode
The "Synchronized Mode" setting is one of the main features of the indicator.
When synchronization is disabled, the fill between the VWAP bands on the main chart is determined only by the Monthly Anchored VWAP direction and the selected additional confirmation periods.
When synchronization is enabled, two conditions must be satisfied simultaneously:
* the Anchored VWAP direction must be confirmed;
* the Rolling VWAP histogram must be positioned on the corresponding side of the zero line.
A green fill requires:
* bullish Anchored VWAP confirmation;
* a positive Rolling VWAP histogram.
A red fill requires:
* bearish Anchored VWAP confirmation;
* a negative Rolling VWAP histogram.
When the two indicator components point in opposite directions, the background fill disappears.
This indicates that there is no complete agreement between the current price impulse and the broader Anchored VWAP trend.
How to Interpret the Background Color on the Main Chart
The background fill between the Monthly Anchored VWAP bands is one of the most important visual elements of the indicator.
Particular attention should be paid to both the color and intensity of this background.
A light green fill indicates a confirmed bullish trend.
A stronger green fill indicates a confirmed bullish trend combined with a strong positive histogram breakout above the upper statistical boundary.
A light red fill indicates a confirmed bearish trend.
A stronger red fill indicates a confirmed bearish trend combined with a strong negative histogram breakout below the lower statistical boundary.
No background fill means that the indicator has not detected a synchronized directional condition.
This may occur during:
* sideways market conditions;
* transitional periods;
* weakening trends;
* disagreement between the Rolling VWAP component and the Anchored VWAP component;
* disagreement between the enabled Anchored VWAP confirmation periods.
The background color therefore represents the confirmed trend direction, while its intensity indicates whether the trend is also accompanied by an unusually strong statistical price impulse.
Rolling Trend Pointer Settings
VWAP Length
This setting determines the amount of positive and negative historical observations used to calculate the Rolling VWAP environment and the adaptive channel boundaries.
A lower value makes the indicator more responsive to recent market changes but may produce more frequent directional changes.
A higher value creates more stable statistical boundaries but causes the indicator to adapt more slowly when volatility conditions change.
The default value is "200".
Band Multiplier
This setting controls the distance between the zero line and the independent positive and negative boundaries.
A lower value moves the boundaries closer to zero and increases the number of detected breakouts.
A higher value moves the boundaries further away from zero and filters out weaker movements, leaving only stronger price impulses.
The default value is "0.5".
Channel Mode
Two channel calculation modes are available.
Current VWAP Variance
This mode uses the current volume-weighted variance of the positive and negative samples.
It adapts more quickly to the current distribution and volatility structure of the market.
Channel Width
This mode uses the historical variance of deviations from the corresponding positive and negative mean values.
It evaluates the established width of the distribution based on accumulated historical residuals.
For most trend-detection applications, testing should begin with "Current VWAP Variance".
Histogram Smoothing
The following histogram smoothing methods are available:
* None;
* SMA;
* EMA;
* WMA;
* RMA.
Smoothing reduces small histogram fluctuations and limits unnecessary directional changes around the zero line.
It is important to understand that smoothing is applied to the displayed histogram and to the histogram breakout conditions.
The statistical upper and lower boundaries continue to be calculated from the original positive and negative observations.
Histogram Smoothing Length
This setting controls the length of the selected histogram smoothing method.
A lower value preserves responsiveness.
A higher value produces a more stable histogram but increases calculation lag.
The default value is "10".
Synchronized Mode
This checkbox synchronizes the Rolling VWAP Trend Pointer with the Monthly Anchored VWAP component.
When enabled, the background fill on the main price chart appears only when both components agree on the market direction.
For normal visual analysis, this setting should generally remain enabled.
Show Breakout Background
This setting enables or disables the green and red background in the separate indicator panel when the histogram moves beyond its corresponding statistical boundary.
Monthly Anchored VWAP Settings
VWAP Source
This setting determines the price source used for the Anchored VWAP calculation.
The default source is "HLC3", which represents the average of the high, low, and close prices.
Band Multiplier
This setting determines the width of the upper and lower bands around the Monthly Anchored VWAP.
A lower value produces a narrower range.
A higher value produces a wider range and includes more substantial price deviations.
VWAP Slope Length
This setting determines the number of bars used to evaluate the direction of the VWAP slope.
A lower value reacts more quickly to changes in direction but may create more frequent trend switches.
A higher value produces a more stable trend direction but introduces additional delay.
The default value is "2".
Line Width
This setting changes the thickness of the Monthly Anchored VWAP line and its upper and lower bands.
Show VWAP Bands
This setting enables or disables the display of the upper and lower Monthly Anchored VWAP bands.
Use Quarterly VWAP Confirmation
When enabled, the Monthly VWAP direction must agree with the Quarterly Anchored VWAP direction.
Use Semiannual VWAP Confirmation
When enabled, the Monthly VWAP direction must agree with the Semiannual Anchored VWAP direction.
Use Annual VWAP Confirmation
When enabled, the Monthly VWAP direction must agree with the Annual Anchored VWAP direction.
Trend Direction Output for Strategy Integration
The indicator outputs the detected trend direction through a separate numerical variable called `trend_dir`.
This variable can be selected as an external data source and connected to other PulseWire indicators or strategies.
The output ranges from "−2 to +2".
Possible values are:
* "+2" — confirmed strong bullish trend with a bullish histogram breakout;
* "+1" — confirmed bullish trend without a strong histogram breakout;
* "0" — neutral, conflicting, or unsynchronized market condition;
* "−1" — confirmed bearish trend without a strong histogram breakout;
* "−2" — confirmed strong bearish trend with a bearish histogram breakout.
This structure allows the indicator to be used not only for visual market analysis but also as a systematic trend filter inside automated trading strategies.
For example, a strategy can:
* allow long positions only when `trend_dir` equals +1 or +2;
* allow short positions only when `trend_dir` equals −1 or −2;
* disable entries during neutral conditions;
* test the neutral value separately;
* apply different trend requirements to long and short trades;
* distinguish between regular trends and statistically strong trend impulses.
My Strategy Test Results
In my case, the strategy produced the highest long-trade win rate when the value "+1" was used as the trend filter for long entries.
For short trades, the best result was obtained when the value "0" was used.
This means that long entries performed best during a confirmed bullish trend that was not accompanied by an extreme positive histogram breakout.
Short entries performed best during neutral or unsynchronized market conditions rather than during an already confirmed bearish impulse.
The value "0" is not inherently bearish.
It indicates that the indicator has not detected complete directional agreement between its components.
These results apply to the specific strategy, instrument, timeframe, settings, and historical period that were tested.
Each of the five `trend_dir` states should be tested independently before being applied to another strategy or market.
Practical Applications
Rolling Trend Pointer can be used for:
* identifying the main market direction;
* filtering entries against the prevailing trend;
* confirming breakout conditions;
* avoiding trades during conflicting market states;
* separating regular trends from strong trend impulses;
* providing an external trend variable to automated strategies;
* optimizing different filters for long and short positions;
* identifying periods of agreement between short-term momentum and broader volume-weighted direction.
For visual trading, it is recommended to keep "Synchronized Mode" enabled and focus primarily on the fill between the Monthly Anchored VWAP bands on the main chart.
A green or red fill indicates a synchronized directional condition.
A stronger fill indicates that the synchronized trend is also supported by a statistically significant histogram breakout.
The absence of a fill indicates that the current impulse and the broader Anchored VWAP direction are not fully synchronized.
Use Rolling Trend Pointer to identify market direction, filter weak signals, and connect an objective trend state to your trading strategies.
Indicator

Indicator

RSI Divergence Hunter [JOAT]RSI Divergence Hunter
Automatically detects the four classic RSI divergence types on confirmed pivots and frames each one as a trade.
What it is
Divergence between price and momentum is one of the oldest reversal and continuation reads, but marking it by hand is subjective and easy to force. This indicator detects all four divergence types algorithmically on confirmed pivots, so what you see is defined and repeatable, and then attaches a full trade structure to each. It is an original divergence engine, not a plain RSI plot.
How it works
• RSI core — the relative strength index measures the speed and size of recent moves. It is the momentum reference every divergence is measured against.
• Confirmed pivots — the engine waits for pivots on both price and RSI to confirm a set number of bars back before comparing them. Because pivots are only evaluated once confirmed, a plotted divergence does not repaint into or out of existence.
• The four types — regular bullish (price lower low, RSI higher low) and regular bearish (price higher high, RSI lower high) point to potential reversals; hidden bullish and hidden bearish point to trend continuation after a pullback. Each is drawn with a connecting line on both price and RSI and labelled by type.
• Zones and gating — overbought and oversold zones give context, and a minimum-gap control keeps divergence signals from stacking on lower timeframes.
Trade levels
Each qualifying divergence draws a red risk box to the stop and a green reward box to the third target, with inner dividers and right-edge labels for entry, stop and each take-profit at your R multiples. The stop is anchored beyond the pivot that formed the divergence.
The dashboard
An adjustable divergence-scope panel shows the current RSI value and zone, the most recent divergence type detected, the active signal, a conviction estimate, and a live first-target-before-stop tally from closed bars only.
How to use it
• Works on any asset and timeframe.
• Treat regular divergences as counter-trend reversal cues and hidden divergences as with-trend continuation cues — the distinction matters.
• Combine with structure or a trend filter; divergence works well as confluence, not in isolation.
Settings
RSI length and source, pivot strength, which divergence types to display, overbought/oversold levels, risk multiple and target R multiples, plus visual and dashboard controls.
Originality and usefulness
The contribution is a complete, confirmed-pivot detector for all four divergence classes with clear per-type labelling and integrated, non-repainting trade framing. By fixing the definition of a divergence and waiting for pivot confirmation, it removes much of the hindsight bias that makes manual divergence unreliable.
Notes and limitations
• Divergence signals can persist and reappear in strong trends; a divergence is a condition, not a timing guarantee.
• Confirmed pivots introduce a natural delay equal to the pivot strength — this is the cost of not repainting.
• The tally reflects only past bars on the current chart and is not a forecast.
• Educational and analytical tool, not financial advice.
— made with passion by officialjackofalltrades
Indicator

ORB & Session Liquidity Model [JOAT]ORB and Session Liquidity Model
Builds the opening range for your chosen session, maps the liquidity around it, and signals breakouts with session-aware trade control.
What it is
The first minutes of a session set a reference range that the rest of the session repeatedly reacts to. This indicator defines that opening range, tracks the liquidity sitting above and below it, and signals confirmed breakouts — with session timing, a daily trade cap and full trade framing built in. It is an original session-driven model, not a generic breakout line.
How it works
• Opening range — during a user-defined opening window (for example the first N minutes of your session), the tool records the high and low. Once the window closes, that range is locked as the reference for the rest of the day and drawn as a box.
• Session logic — the model resets cleanly each new day using a real session-change test, so counters and levels do not carry stale values across sessions. Trading is only permitted inside the active session window you define.
• Liquidity ladder — levels around the range (its extremes and projections) are drawn and labelled as the liquidity price is likely to seek. These give context for where a breakout may run to or reverse from.
• Breakout signals — a Buy fires on a confirmed close beyond the range high plus a buffer; a Sell on a confirmed close below the range low minus the buffer. A per-day maximum-trades cap and a minimum-gap control prevent the level from generating repeated prints as price oscillates around it.
Trade levels
Each breakout draws a red risk box to the stop and a green reward box to the third target, with inner dividers and right-edge labels for entry, stop and each take-profit at your R multiples. Stops relate to the range, which is the structure the trade is based on.
The dashboard
An adjustable session-console panel shows the current session phase (pre-range, range building, or live), the locked range, the directional bias relative to it, the trades used against the daily cap, the active signal, a conviction estimate, and a live first-target-before-stop tally from closed bars only.
How to use it
• Set the opening window and session to match the market you trade (indices, futures, forex sessions, crypto day boundaries).
• Wait for the range to lock, then trade confirmed breakouts in the direction of your bias; use the liquidity ladder for targets and invalidation.
• The daily cap keeps the model disciplined — respect it rather than overriding on every wiggle.
Settings
Opening-range window, session hours, breakout buffer, maximum trades per day, liquidity options, risk multiple and target R multiples, plus visual and dashboard controls.
Originality and usefulness
Opening-range breakout is a known concept; the contribution here is the integrated liquidity mapping around the range, the strict session reset and daily trade governance, the confirmed-close breakout logic, and the full non-repainting trade framing — assembled into one session-aware model and explained so each element's role is clear.
Notes and limitations
• Breakouts can fail, and range-bound sessions produce whipsaws around the levels — the buffer and daily cap reduce but do not eliminate this.
• Session settings must match the instrument; a mismatched window will define the range at the wrong time.
• The tally reflects only past bars on the current chart and is not a forecast.
• Educational and analytical tool, not financial advice.
— made with passion by officialjackofalltrades
Indicator

Regression Channel AutoRegression Channel Auto is a visual trend-structure tool based on least-squares linear regression.
The script draws a regression channel on the chart using either a fixed lookback length or an automatically selected best-fit length. In Auto mode, the script evaluates the available lookback lengths between the user-defined minimum and maximum settings, then selects the window with the highest absolute Pearson correlation. This helps identify the recent price segment that is most closely aligned with a straight-line regression structure.
What the script shows
- A center regression line
- Inner regression bands
- Outer regression bands
- Optional channel fill
- Direction-based coloring for rising, falling, or flat channel slopes
- Optional visual extension to the right
- Optional outside-channel break markers
- Optional alerts for closes outside the outer channel
How it works
The script calculates a least-squares regression line over the selected lookback window. It then measures the residual deviation around that regression line and plots inner and outer bands at user-defined deviation distances.
The channel color changes according to the slope of the regression line:
- Rising channel: positive slope above the flat threshold
- Falling channel: negative slope below the flat threshold
- Flat channel: slope inside the selected flat threshold
Auto Length mode
In Auto mode, the script scans the lookback range selected by the user and chooses the length with the strongest absolute Pearson correlation. This means the selected channel is the one whose recent price structure is most linear within the evaluated range.
A high correlation value describes how closely price followed a linear path during the selected window. It does not predict future price movement.
Fixed Length mode
Fixed mode uses one user-defined lookback length. This is useful when the user wants a stable channel length instead of an automatically changing one.
Main settings
Channel:
- Length mode
- Fixed length
- Auto minimum length
- Auto maximum length
- Source
- Flat threshold
Bands:
- Inner band deviation
- Outer band deviation
- Show inner bands
- Show channel fill
Display:
- Extend channel right
- Show info label
- Show current outer break marker
Lines:
- Center line width
- Inner band width
- Outer band width
- Center line style
- Inner band style
- Outer band style
Colors:
- Rising channel color
- Falling channel color
- Flat channel color
- Inner band transparency
- Channel fill transparency
Alerts
The script includes optional alert conditions for:
- Close above the upper outer regression channel
- Close below the lower outer regression channel
These alerts describe price moving outside the selected regression channel. They are not buy or sell signals.
How to use
Use this indicator to review whether price is moving inside a structured linear channel, near the upper or lower side of the channel, or outside the outer deviation bands.
The tool can be useful for visual trend review, mean-deviation context, and identifying when price has moved outside its recent regression structure.
Important note on refitting
This script is recalculated as new bars develop. In Auto mode, the selected lookback length can also change when new price data changes which window has the highest absolute Pearson correlation.
For this reason, the channel should be understood as a dynamic descriptive tool. It is not a fixed historical signal and it should not be interpreted as a prediction model.
Limitations
- The channel is based on recent price structure only.
- A high Pearson correlation measures linearity, not future performance.
- A close outside the channel does not automatically mean continuation or reversal.
- Outer-band contact is not a standalone trading signal.
- The optional right extension is a visual reference only and is not a forecast.
This indicator is intended for chart analysis, educational use, and visual review of regression-channel structure. Indicator

Trend Context Trend Context is a market-regime indicator designed to help traders identify whether the current market environment is predominantly bullish, bearish, or neutral.
Rather than relying on a single moving-average crossover or momentum oscillator, the indicator combines several normalized market characteristics into one composite regime model:
• Price location relative to an adaptive baseline
• Direction and strength of the baseline slope
• Recent price momentum
• Position within the recent trading range
• Directional efficiency
• Current volatility relative to its historical average
The objective is not to predict the next candle. Trend Context is designed to provide structured directional context that can be used as a market filter, confirmation layer, or visual framework for an existing trading strategy.
✦ Core Concept
Not every movement above or below a moving average represents a meaningful trend.
Markets frequently move in an irregular, inefficient manner, producing price fluctuations without sustained directional progress. Trend Context evaluates both the direction of price movement and the quality of that movement before confirming a new market regime.
A directional state is activated only when several independent components support the same conclusion.
This helps reduce unnecessary regime changes caused by isolated candles or short-term market noise.
⚙️ How the Indicator Works
1. Directional Efficiency
The indicator first measures how efficiently price has moved over the selected lookback period.
Directional efficiency compares:
• The absolute distance between the current price and the price at the beginning of the measurement period
• The sum of all individual price changes during that same period
A value closer to 1 indicates a relatively direct movement.
A value closer to 0 indicates that price has moved back and forth without making meaningful directional progress.
Directional efficiency influences both the adaptive baseline and the confidence applied to the final regime score.
2. Adaptive Baseline
Trend Context calculates a fast exponential moving average and a slow exponential moving average.
The directional-efficiency value determines how these two averages are blended:
• During efficient directional movement, the baseline shifts closer to the faster average
• During noisy or inefficient movement, the baseline remains closer to the slower average
The blended value is then smoothed again to reduce unnecessary fluctuations.
This creates a baseline that can respond more quickly during directional conditions while remaining more stable during irregular or sideways markets.
3. Volatility-Adjusted Context Zone
The indicator creates an upper and lower context boundary around the adaptive baseline.
The width of this zone is based on Average True Range, or ATR. It is also adjusted by comparing current ATR with its average value over the selected volatility lookback period.
This adjustment is bounded to prevent unusually quiet or volatile conditions from producing excessively narrow or wide zones.
As a result:
• The context zone expands as volatility increases
• The context zone contracts as volatility decreases
The active boundary provides a visual representation of the current directional context. It should not be interpreted as guaranteed support or resistance.
📊 Composite Regime Score
The market regime is calculated using four normalized components.
Price Location
Measures how far price is positioned above or below the adaptive baseline.
The distance is normalized by ATR so that the calculation remains comparable across instruments with different prices and volatility levels.
Baseline Slope
Measures whether the adaptive baseline is rising or falling.
The slope is normalized using ATR and the selected slope period.
Momentum
Measures the change in price over the selected momentum period.
This component is also normalized by ATR.
Range Position
Measures where the current price is located within its recent high-to-low range.
A position near the upper part of the range supports a bullish regime, while a position near the lower part supports a bearish regime.
The four components are combined using configurable weights. The resulting value is then adjusted by directional efficiency.
The final regime score is constrained between -1 and +1:
• Positive values support a bullish regime
• Negative values support a bearish regime
• Values close to zero indicate an uncertain or neutral environment
◇ Confirmed Three-State Regime Model
Trend Context uses three market states:
UP
NEUTRAL
DOWN
UP Regime
An UP regime requires:
• The composite score to exceed the activation threshold
• Price to remain above the adaptive baseline
• Directional efficiency to meet the minimum requirement
• The conditions to remain valid for the selected number of confirmation bars
DOWN Regime
A DOWN regime requires:
• The composite score to move below the negative activation threshold
• Price to remain below the adaptive baseline
• Directional efficiency to meet the minimum requirement
• The conditions to remain valid for the selected number of confirmation bars
Neutral Regime
The indicator returns to a neutral state when the absolute regime score remains inside the defined neutral zone for the required number of bars.
Regime transitions and UP/DOWN labels are confirmed only after the candle closes.
This confirmation process is intended to reduce rapid state changes caused by individual candles.
🎯 Visual Interpretation
UP Context
During an UP regime:
• The lower context boundary is displayed
• The area between price and the lower boundary is highlighted with the selected UP color
• An optional UP label appears when the regime changes into the bullish state
The active lower boundary represents bullish market context. It is not an automatic entry level or guaranteed support zone.
DOWN Context
During a DOWN regime:
• The upper context boundary is displayed
• The area between price and the upper boundary is highlighted with the selected DOWN color
• An optional DOWN label appears when the regime changes into the bearish state
The active upper boundary represents bearish market context. It is not an automatic entry level or guaranteed resistance zone.
Neutral Context
During a neutral regime, neither directional ribbon is active.
This means that the combined calculations do not currently provide sufficient evidence for a confirmed bullish or bearish market state.
How to Use Trend Context
Directional Filter
The indicator can be used to filter trades according to the active market regime.
For example:
• Consider bullish setups while the indicator is in the UP state
• Consider bearish setups while the indicator is in the DOWN state
• Reduce directional exposure or wait for additional confirmation during neutral conditions
Trend Context is not a complete entry system. Entry timing, stop-loss placement, position sizing, and profit targets must be defined separately.
Pullback Context
The active boundary and ribbon can help traders assess pullbacks within the current directional regime.
A return toward the active context zone is not an automatic trade signal.
It may be combined with:
• Market structure
• Support and resistance
• Candlestick confirmation
• Volume analysis
• A separate execution model
Higher-Timeframe Context
Trend Context can also be applied to a higher timeframe to identify the broader market regime while entries are managed on a lower timeframe.
Because market behaviour differs between instruments and timeframes, settings should be tested on the specific market being traded.
⚙️ Main Settings
Adaptive Baseline
Price Source
Selects the price series used in the calculations.
Fast Smoothing Length
Controls the faster exponential moving average.
Slow Smoothing Length
Controls the slower exponential moving average.
Efficiency Measurement Length
Defines the period used to measure directional efficiency.
Final Baseline Smoothing
Controls the final smoothing applied to the adaptive baseline.
Regime Model
Volatility Length
Sets the ATR calculation period.
Volatility Context Length
Defines the period used to compare current ATR with its historical average.
Baseline Slope Length
Controls the period used to calculate the baseline slope.
Momentum Length
Defines the period used for the momentum component.
Range Position Length
Sets the recent high-to-low range used in the range-position calculation.
Context Zone Multiplier
Controls the width of the volatility-adjusted context zone.
Regime Activation Threshold
Determines how strong the composite score must be before a directional regime can be activated.
A higher value produces fewer and more selective regime changes. A lower value increases sensitivity.
Neutral Zone Threshold
Defines how close the composite score must be to zero before the market can return to a neutral state.
Minimum Directional Efficiency
Prevents directional states from being activated when price movement is considered too inefficient.
Direction Confirmation Bars
Defines how many consecutive confirmed bars are required before an UP or DOWN state is activated.
Neutral Confirmation Bars
Defines how many consecutive bars inside the neutral zone are required before the indicator returns to a neutral state.
Component Weights
The indicator allows users to adjust the relative contribution of:
• Price location
• Baseline slope
• Momentum
• Range position
The total weight is normalized automatically, so the settings represent the relative importance of each component.
Visual Settings
Users can independently control:
• UP, DOWN, and neutral colors
• Trend ribbon visibility
• Active boundary visibility
• Adaptive baseline visibility
• Baseline visibility during neutral conditions
• Price-bar coloring
• UP and DOWN transition labels
🔔 Alerts
Alert conditions are available for:
• A confirmed transition into the UP regime
• A confirmed transition into the DOWN regime
These alerts indicate a change in market context. They should not be interpreted as automatic buy or sell orders.
Important Limitations
Trend Context is a reactive indicator based on historical price and volatility data. It does not predict future prices.
Like all trend and market-regime tools, it may react with a delay after sudden reversals and may produce repeated state changes during sideways or unstable conditions.
Increasing the activation threshold, minimum directional efficiency, or confirmation-bar settings may reduce sensitivity, but it will also delay regime transitions.
Decreasing these values will make the indicator respond faster, but may increase the number of short-lived or false regime changes.
Trend Context should be used together with independent risk management, position sizing, and trade validation.
This indicator is provided for analytical and educational purposes and does not constitute financial advice. Indicator

Supply & Demand Zones Liquidity & Stop Hunt [LunqFX]Supply and demand zones are where price reacts — but most indicators draw every swing as a box and leave you to guess which one matters. Liquidity Zones ranks them: it marks the key supply and demand zones, scores each one by how much liquidity it holds, and shows whether it is still fresh — so you know which level to trade and which to ignore.
❶ WHAT EACH ZONE SHOWS
Every zone is a coloured block — magenta = SUPPLY (sellers, above), teal = DEMAND (buyers, below) — and carries three readings that are original to this script:
LIQ SCORE (0–100) — how much volume traded inside the zone versus the strongest zone on the chart. 100 = the heaviest zone (the real magnet); a low score = a thin, weak level.
VOLUME ▲ / ▼ — the up-volume vs down-volume that built the zone: did buyers or sellers do the work inside it.
FRESH / TESTED N× — FRESH = price has not returned yet (strongest reaction expected); TESTED N× = already retested N times, weaker each time.
❷ HOW TO TRADE IT
1 — Read the BIAS in the panel. ▲ BUY-SIDE = favour longs, ▼ SELL-SIDE = favour shorts. Trade with it, not against it.
2 — Pick a zone with a HIGH LIQ Score (70+). Low-score zones are thin and unreliable — skip them.
3 — Prefer FRESH zones. A FRESH high-LIQ zone is the highest-probability reaction. A many-times-TESTED zone is more likely to break than hold.
4 — Wait for price to return to that zone. The bright edge line is your reference level.
5 — Enter on the reaction: LONG — bias BUY-SIDE, price drops into a FRESH teal DEMAND zone, LIQ 80, Volume ▲ (buyers dominant). Long on the reaction, stop below the zone, target the next supply zone above. SHORT — bias SELL-SIDE, price rallies into a FRESH magenta SUPPLY zone, LIQ 76, Volume ▼ (sellers dominant). Short on the reaction, stop above the zone, target the next demand zone below.
❸ WHAT TO AVOID
Trading low-LIQ zones — they hold little liquidity. Fading a zone whose Volume split disagrees with its side (e.g. a supply zone built on heavy up-volume) — the level is weak. Chasing a many-times-TESTED zone expecting a clean bounce.
Works on any symbol and timeframe — forex, gold (XAUUSD), indices, crypto and stocks — intraday and higher timeframes alike.
❹ DASHBOARD
The panel lists every zone with its price, LIQ Score, FRESH/TESTED status and side (BUY/SELL), plus a LIQ-weighted overall bias — the full picture at a glance. Optional neon candles can be turned off to keep your own style.
❺ HOW IT WORKS
1 — Swing highs and lows are found from confirmed pivots (closed bars — no repainting). Each swing high opens a supply zone, each swing low a demand zone. 2 — Each zone is a block centred on the swing, its height scaled to ATR so it fits the instrument's volatility. 3 — For every zone the script measures the volume traded inside it, the up/down-volume split, and how many separate times price entered it. 4 — LIQ Score = the zone's volume ÷ the strongest zone's volume, scaled 0–100. 5 — The bias is weighted by LIQ Score, so one heavy zone counts for more than several thin ones — an honest read of whether liquidity leans buy or sell.
No repainting
Zones are built only from confirmed pivots and rendered on the last bar over a fixed lookback. A zone that appears in a screenshot is a zone that was there live — history is never recalculated.
This indicator is an educational market-analysis tool, not financial advice. Zone strength and past reactions describe historical behavior and do not guarantee future results. Always confirm with your own analysis and manage risk. Indicator

Trendline Architect [Quantum Algo]Trendline Architect
====================================================
🔶 OVERVIEW
Trendline Architect is an automatic trendline indicator that does what most trendline tools skip: it validates every line before drawing it, makes each line earn its status through real touches, grades every breakout by quality, and then automates the break-and-retest sequence that trendline traders normally track by hand. Lines are born as dotted candidates, promoted to solid confirmed trendlines only after the market validates them with a third touch, graded on breakout, kept on a retest watch after they break, and paired into parallel channels automatically — all with a deliberately quiet chart: one-letter signals whose full context lives in hover tooltips.
The problem this script solves is trendline spaghetti and trendline noise. Automatic trendline tools typically draw every pivot-to-pivot connection and alert on every violation. This engine rejects invalid lines at birth, refuses duplicates, caps how many lines can exist per side, silences the breaks of unproven lines by default, and filters weak breakouts by grade — so what remains on the chart is only what the market has actually respected.
🔶 WHAT IS A TRENDLINE BREAK AND RETEST?
A trendline connects successive swing points and acts as dynamic support or resistance while price respects it. A breakout occurs when price closes decisively through the line. The retest is what disciplined traders wait for next: price returning to the broken line from the other side and rejecting — old support acting as new resistance, or old resistance reclaimed as support. That return-and-reject is one of the most traded patterns in classical charting, and this engine detects the entire sequence automatically: validated line, graded break, watch window, confirmed retest.
🔶 WHY THIS SCRIPT IS ORIGINAL
1. Geometric validity at birth. A candidate line is rejected before it is ever drawn if any candle close violated the segment between its two anchor pivots. Lines that were never respected never reach the chart.
2. Touch-earned lifecycle. Every line starts as a dotted, untagged candidate. Each validated touch — a wick into tolerance with a close that respects the line — is counted, and only at the configured touch count is the line promoted: solid, thicker, fully colored, with a live ×N touch tag. The chart itself shows which lines the market obeys.
3. Anti-spaghetti engineering. Duplicate candidates with similar slope and position are refused, each side is capped at a configurable number of active lines with the weakest evicted first, and stale lines expire by age. The chart stays readable on every timeframe.
4. Breakout quality grading. Every breakout is scored from three observable components — volume z-score, penetration depth in Average True Range units, and breakout candle body ratio — into grades A, B, and C. Grade A signals highlight in the accent color.
5. A retest engine. Broken lines are not deleted; they turn into gray watch lines for a configurable window. A return to the broken line with a rejecting close prints the Retest signal — the classic polarity flip, automated.
6. Silence by default, depth on demand. Signals print as single letters — B for breakout, R for retest — with the full context (direction, grade, volume, penetration) in the hover tooltip. Two noise filters ship enabled: breaks of unconfirmed lines retire silently, and breakouts below a minimum grade stay off the chart and out of the alerts.
7. Automatic channel detection. When an active support line and resistance line run parallel within a slope tolerance, the engine fills the channel between them and reports it on the dashboard.
8. A live architecture dashboard. Active support and resistance counts, the nearest line with its distance in Average True Range units, a trend read derived from confirmed line slopes, the last break grade, the retest watch count, and channel status — in a compact, fully themeable panel.
🔶 HOW IT WORKS
Line construction: Confirmed swing pivots anchor every candidate line. Each new pivot is paired with the previous same-side pivot, the segment is checked for historical violations, duplicates are rejected, and side capacity is enforced before the line is created.
Touch validation: A touch counts only when the wick enters the tolerance band around the line and the close still respects it. Touches accumulate on the line's tag; the confirming touch promotes the line and, from that point, validated touches are marked with dots.
Breakouts: A close through the line beyond the buffer triggers the break. Confirmed lines produce graded signals; forming lines retire silently when the default filter is on. The broken line converts to a gray dashed watch line.
Retests: Within the watch window, a return to the broken line with a rejecting close prints R — upward reclaim of broken resistance, or downward rejection at broken support. Watch lines that see no retest expire quietly.
Channels: Active opposite-side lines are compared by slope; the closest parallel pair within tolerance is filled as a channel.
Non-repainting: Pivots require confirmation, and all touches, promotions, breaks, and retests are evaluated on closed bars only. Once printed, nothing moves.
Chart hygiene: Completed lines, touch dots, and signals are all capped by input, keeping the chart clean and the auto-scale anchored to current price.
🔶 HOW TO USE IT
1. Works on any market — cryptocurrency, forex, gold, indices, stocks, futures — and any timeframe. Raise the pivot length for larger structures.
2. Trust the visual hierarchy: dotted lines are candidates, solid lines with ×N tags are market-validated, gray dashed lines are broken and on retest watch.
3. Treat B signals as regime information: grade A breakouts with volume and penetration carry far more weight than the minimum-grade ones, and the grade is one hover away.
4. The R signal is the classic entry location: the broken line has flipped roles and price has confirmed the flip. Stops belong on the far side of the retested line.
5. Use the dashboard's Nearest row to know how far price is from the closest active line in Average True Range units before it gets there.
6. If you want the raw, unfiltered feed, disable the two noise filters in Signals — the engine detects everything either way.
🔶 SETTINGS
- Detection: pivot length, maximum anchor span, active lines per side, line expiry, completed lines to keep.
- Touches, breaks and retests: touch tolerance, touches to confirm, breakout buffer, retest watch window.
- Signals: breakout and retest toggles, confirmed-lines-only filter, minimum breakout grade.
- Channel detection with slope similarity tolerance.
- Full color customization, extension length, touch dots toggle.
- Themeable dashboard: position, four text sizes, title band, background, frame, grid, and three text colors.
🔶 ALERTS
- Trendline Confirmed — a line collected its confirming touch.
- Bullish / Bearish Trendline Breakout — a qualified close through a line, honoring the grade filter.
- Bullish / Bearish Retest Confirmed — a broken line was retested and rejected.
- Parallel Channel Detected — an active support and resistance pair is running as a channel.
🔶 FREQUENTLY ASKED QUESTIONS
Does the indicator repaint? No. Anchors are confirmed pivots and every touch, break, and retest is evaluated at bar close. Pivot confirmation introduces intentional lag equal to the pivot length.
Why do I see so few lines? By design. Between geometric validation, duplicate rejection, side caps, and expiry, only lines with genuine market respect survive. Raise the per-side cap or lower the confirmation count for a busier chart.
What do B and R mean? B is a graded breakout and R is a confirmed retest of the broken line. Hover either label for direction, grade, volume, and penetration details.
Why did a breakout print no signal? Either the line was still unconfirmed while the confirmed-only filter is on, or the break graded below your minimum. The line still changed state; only the signal was filtered.
What makes a grade A breakout? Elevated volume, deep penetration beyond the line in Average True Range terms, and a strong-bodied breakout candle — all three together.
🔶 CREDITS
Trendline analysis, breakout trading, and the break-and-retest pattern are classical charting techniques in the public domain, refined by generations of technicians. This script gratefully acknowledges that shared lineage. The geometric validity engine, touch-earned lifecycle, breakout grading model, retest watch engine, channel detection, noise-filtering architecture, and all code in this script are original work — no third-party or open-source script code was reused.
🔶 LIMITATIONS
Trendlines are geometry, not guarantees: valid lines break and graded breakouts fail. Pivot confirmation delays anchor recognition by design. Volume grading is less meaningful on symbols with unreliable volume reporting. Channel detection reports the closest parallel pair, not every possible channel. No indicator replaces independent analysis.
🔶 DISCLAIMER
This script is provided strictly for educational and informational purposes. It is not financial advice, an investment recommendation, or a solicitation to buy or sell any financial instrument. Past behavior of any trendline, breakout, or retest does not guarantee future results. Trading involves substantial risk. Always do your own research and manage risk independently.
Indicator

True Order Blocks & Liquidity LevelsTrue Order Blocks & Liquidity Levels — a comprehensive price action toolkit for market structure analysis, liquidity mapping, and institutional zone detection across any instrument and timeframe.
The logic behind order blocks, imbalances, and internal pullbacks is built in strict accordance with the inside bar methodology — one of the most precise approaches to identifying institutional points of interest. Every module accounts for whether a bar is an inside bar, which significantly improves signal quality and eliminates false zones that commonly appear with traditional approaches.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
MODULES
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
▸ Internal Pullbacks
Displays market structure as lines connecting sequential pivot highs and lows. Inside bars are ignored during structure building, keeping pullback lines clean and noise-free. The last open line redraws in real time as price develops.
Adjustable number of visible lines
Color, style (solid / dashed / dotted) and width customization
▸ Internal Liquidity
Horizontal lines automatically placed at each confirmed pivot high and low. A line persists until price crosses it — at that moment the line is removed and an alert fires. These levels mark clusters of stop orders and serve as potential targets for liquidity sweeps.
Independent limit on the number of visible levels
Color and style customization
Alert on level breach
▸ Imbalance (FVG)
Fair Value Gap detector built on three consecutive non-inside bars. The algorithm steps over inside bars when searching for the FVG — this means the gap can span more than 3 candles visually if inside bars appear in between, which is intentional and produces cleaner zones. Open-price gaps are handled by clipping FVG boundaries to the body of the middle candle.
Separate colors for bullish and bearish FVG zones
Maximum number of displayed zones
Midline drawn inside each zone for easier reference
▸ Order Blocks
Institutional interest zones formed by a strict algorithm: an order block is drawn only when the bar preceding a FVG performed a liquidity sweep — meaning it broke the high or low of the prior significant pivot. The block is placed on the candle immediately preceding the impulsive move. If an absorption candle stands between the OB candidate and the FVG, the candidate is reset — preventing false blocks from forming on overly aggressive moves.
Automatic mitigation tracking: when price touches the zone, the block changes to a "mitigated" color
Option to hide mitigated blocks entirely
Separate colors for bullish, bearish, and mitigated blocks
Adjustable history depth
Alerts on new block formation and on mitigation
▸ Inside Bars
Highlights bars that fit entirely within the range of the previous mother candle. A series of consecutive inside bars signals compression and accumulation ahead of a directional move.
Barcolor highlight with customizable color
Adjustable lookback depth
▸ Absorption
Marks candles that fully engulf the range of the previous mother candle (high > mother high and low < mother low). These candles often indicate absorption of accumulated positions and a short-term shift in intent.
Separate highlight color independent of Inside Bars
Alert on absorption candle formation
▸ PDH / PDL — Previous Day High & Low
Displays high and low levels from previous trading days (up to 7 days). Levels that have been fully engulfed by price are automatically hidden. Each level is labeled: the most recent is marked "PDH" / "PDL", older ones show the date in month/day format.
Adjustable number of days displayed
Unified color for all PDH/PDL levels
Alert when price crosses a level
▸ Market Sessions
Draws session boxes for each trading session over the last N days. Five fully independent sessions are supported — defaults are Asia, Frankfurt, London, New York, and one custom user-defined session.
Custom name, start and end time (UTC), and background color per session
Optional horizontal border lines showing session high and low
Border style and width customization
Adjustable display depth (number of days)
Alerts when price crosses the high or low of a closed session
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
TREND FILTER
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Colors the chart background based on WaveTrend oscillator alignment across up to three independent timeframes. When all selected timeframes show WT above zero simultaneously — bullish background. When all show WT below zero — bearish background. When timeframes disagree — no background, signalling an unclear or transitional market state.
How WaveTrend is calculated: WT is built as a double-smoothed normalized channel index on HLC3. The first EMA measures the average deviation of price from its mean; the result is normalized and smoothed again to produce the final oscillator value. Values above zero indicate bullish bias, below zero — bearish.
Show trend filter — master on/off switch
WT Channel Length — EMA length for channel calculation. Shorter = more reactive
WT Average Length — smoothing EMA applied on top. Larger = calmer signal
TF 1 / TF 2 / TF 3 — each row has an enable toggle and a timeframe selector. Defaults: 15m, 1h, 4h. A disabled timeframe is treated as neutral and excluded from alignment check
Confirm trend on bar close — when enabled, background and alerts only react to values from the last closed HTF bar, eliminating intra-bar repainting. When disabled, the background updates in real time as the HTF bar forms
Bullish / Bearish background colors — customizable with transparency
Trend Changed alert — fires on bar close on any of the six possible state transitions: uptrend ↔ neutral ↔ downtrend and direct flip. Alert message specifies the exact transition
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
DASHBOARD
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
A compact table showing WaveTrend values for each enabled timeframe. Only enabled timeframes are displayed — from one to three rows.
Column 1: timeframe label (15m, 1h, 4h etc.)
Column 2: current WT value rounded to one decimal. Cell background reflects signal strength: neutral grey (−10 to +10), weak green/red (±10 to ±40), saturated green/red (beyond ±40)
Position — 9 placement options across the chart
Text size — Tiny / Small / Normal / Large
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ALERTS
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Every module has its own independent alert toggle. All messages can optionally be prefixed with the instrument ticker — useful when monitoring multiple charts simultaneously.
Liquidity level breached
Absorption candle formed
New order block created
Order block mitigated
Session high or low crossed
PDH / PDL level crossed
Trend changed (WaveTrend multi-TF)
Indicator
