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

TIS_SwingOVERVIEW
TIS_Swing detects swing highs and swing lows and, unlike most pivot tools, publishes the last confirmed level as a continuous value that other scripts can read.
Standard pivot indicators return a number only on the bar where the pivot is confirmed and nothing on every other bar. That is fine for drawing a dot on the chart, but it makes the level unusable for comparison: on any given bar you cannot ask whether the current price is above the last confirmed swing high, because on that bar the pivot series holds no value. TIS_Swing keeps the level alive between pivots, so that question can be answered on every bar, by you visually or by another script through the source dropdown.
HOW IT WORKS
A bar qualifies as a swing high when its high is greater than or equal to the highs of the bars that follow it, and strictly greater than the highs of the bars that precede it. The number of bars checked on each side is set by Strength Left and Strength Right. Swing lows use the mirrored rule. The comparison on the right side is inclusive, so a candidate that ties with a later bar still qualifies; this produces slightly more pivots than a strictly greater definition, and is intentional.
A pivot can only be confirmed once the bars to its right exist, so a pivot is always confirmed Strength Right bars after it forms. It is never confirmed earlier and it is never revised afterwards, so nothing repaints.
Once a pivot is confirmed, its price becomes the current level for that side and stays there until the next pivot on the same side replaces it. When the series trades through the level, the level is marked as broken. What happens next depends on Remove Broken Pivot Lines:
- ON, the default: the visible level is dropped and no level is shown until a new pivot forms. This is the familiar behaviour of most pivot tools.
- OFF: the visible level stays where it was until a new pivot replaces it, so a broken level remains on screen as a reference.
Either way, a second pair of values keeps the last level regardless of the setting. Those are the plots marked (persistent), and they exist so that comparisons are always possible.
WHAT YOU CAN DO WITH IT
Market structure on price. With the level available on every bar, a higher high is simply the current price trading above the last confirmed swing high, and a lower low is the mirror. You can read it off the chart or compute it in your own script by selecting Last Swing High (persistent) as a source and comparing it against the close.
Divergence on an oscillator. Turn on Use Other Source, point it at a stochastic, an RSI or any other plotted series, and move the script to its own pane. The pivots are then detected on the oscillator instead of on price. A higher swing low on the oscillator while price is still making lower lows is a classic divergence, and here it is visible as a stepped level moving up while price moves down.
Breakout timing. With Remove Broken Pivot Lines on, the moment the level disappears is the moment the last swing was taken out. That transition is also available as an alert.
PARAMETERS
Parameters
- Strength Left: bars to the left of the candidate that must be lower for a high, or higher for a low. Default 5.
- Strength Right: bars to the right required to confirm the pivot. Also the confirmation delay, in bars. Default 2.
- Remove Broken Pivot Lines: drop the visible level once it is broken. Default on. Does not affect the (persistent) plots.
- Use Other Source: detect pivots on another plotted series instead of the bar highs and lows. Both sides then use the selected series.
- Source: the series used when Use Other Source is on.
Visual Settings
- Show Levels: opacity of the stepped level lines.
- Show Persistent Levels: opacity of the thin lines that always keep the last level. Off by default to keep the chart clean.
- Show Pivot Markers: diamonds drawn on the confirmed pivot bars.
- Extend to the Right: horizontal line projected forward from the last pivot on each side.
- Swing High Color, Swing Low Color, Line Width, Extension Line Style.
The Show options change opacity only. The four series are always published, so another script can read them even when they are not visible on the chart.
OUTPUTS
Four values are available in the source dropdown of any other indicator or strategy:
- Last Swing High and Last Swing Low: the level as shown, honouring Remove Broken Pivot Lines.
- Last Swing High (persistent) and Last Swing Low (persistent): the last confirmed level, kept regardless of that setting.
Four alerts are available: New Swing High, New Swing Low, Swing High Broken, Swing Low Broken.
LIMITATIONS
- A pivot is confirmed Strength Right bars after the bar that forms it. On the chart this looks like a delay, and it is one. It is inherent to any pivot definition that requires confirmation from the right, and it is the price of not repainting.
- These levels are reference points, not entry signals. Nothing here tells you which way to trade.
- With Remove Broken Pivot Lines on, the level is dropped on the same bar as the break. A comparison such as close above Last Swing High will therefore never be true, because the value is already gone by the time it would be. Use the (persistent) plots for that comparison, or detect the break as the transition of the visible plot to no value.
- Before the first pivot on a side is confirmed, that side publishes no value.
- Pine fixes the pane at compile time, so with a non-price source the script has to be moved to its own pane manually.
- Larger Strength values give fewer and more significant levels but a longer confirmation delay. There is no setting that avoids that trade-off. Индикатор

MACD Matrix [Quantum Algo]MACD Matrix
═══════════════════════════════════════════════
🔶 OVERVIEW
MACD Matrix reads the Moving Average Convergence Divergence as a complete momentum system rather than a single line and histogram. It classifies momentum into four quadrants instead of one sign, aligns four timeframes into a live matrix with a scored consensus, detects histogram divergence and draws it on both the oscillator and the price candles, tracks histogram compression before expansion, and paints a momentum river through price so the entire reading lives on the chart — not only in the pane below it.
The result is a MACD you can read from the candles alone: the river's color tells you the quadrant, the aura tells you whether momentum is expanding or fading, gold beacons mark full multi-timeframe alignment, and every signal carries its own historical record on the exact symbol you are trading.
═══════════════════════════════════════════════
🔶 WHAT IS MACD?
The Moving Average Convergence Divergence, created by Gerald Appel, measures momentum as the distance between a fast and a slow exponential moving average. A signal line smooths that distance, and the histogram — introduced by Thomas Aspray — shows the gap between the two. MACD above zero means the fast average leads the slow one (bullish regime); the histogram rising means momentum is accelerating.
═══════════════════════════════════════════════
🔶 WHAT ARE THE FOUR MACD QUADRANTS?
Most traders read MACD as bullish or bearish. It actually has four distinct states, and the difference between them is where the money is:
— Expanding ▲: above zero and the histogram rising — momentum accelerating in an uptrend.
— Fading ▲: above zero and the histogram falling — the uptrend losing thrust, the earliest warning.
— Expanding ▼: below zero and the histogram falling — momentum accelerating in a downtrend.
— Fading ▼: below zero and the histogram rising — the downtrend losing thrust, the earliest turn.
MACD Matrix names the quadrant on every bar, colors the river and the aura by it, and stamps it into every signal's tooltip.
═══════════════════════════════════════════════
🔶 WHY IS THIS ORIGINAL?
1. The quadrant engine. Four momentum phases instead of two, made visible on the price chart through the momentum river and aura, so fading momentum is caught before the sign ever flips.
2. The timeframe matrix. Four configurable timeframes, each read as side-of-zero × expanding-or-fading, with a consensus score. A gold beacon prints on price the moment all four align with expanding momentum — a threshold event, not a vague "trend agreement."
3. Dual-canvas divergence. Histogram divergences are drawn as connectors in the pane AND as dashed twins across the corresponding price pivots on the chart, so the divergence is visible exactly where you trade it.
4. The histogram squeeze. Histogram amplitude is ranked inside its own recent history; when it compresses below a low percentile the momentum is coiled, marked with gold dots, and the expansion out of the coil fires a directional release signal — a compression concept almost never applied to MACD.
5. Signal families with per-symbol records. Zero-line crosses, early signal crosses on the correct side of zero, divergences and squeeze releases are tracked as separate families, each with ten-bar outcome statistics shrunk toward neutral at small samples and a Wilson lower bound — quoted in every tooltip and on the dashboard.
═══════════════════════════════════════════════
🔶 HOW IT WORKS
— MACD, signal and histogram are computed from configurable lengths; the quadrant is derived from the sign of MACD and the direction of the histogram.
— Four higher-timeframe MACD states are requested without lookahead and scored into the matrix.
— Histogram pivots are compared against price pivots to detect regular divergences, drawn on both canvases.
— Histogram amplitude is ranked against its own history for the squeeze; a mature coil that expands fires a release.
— Every signal family feeds its own first-in-first-out outcome samples; statistics are reported with sample counts.
Signals are evaluated on confirmed bars and do not repaint. Higher-timeframe matrix rows finalize when their own bar closes, as with any multi-timeframe reading. All drawings are capped.
═══════════════════════════════════════════════
🔶 HOW TO USE IT
— Trade the quadrant, not the sign: Expanding phases favor continuation entries; Fading phases favor taking profit or tightening risk, and they precede most zero-line crosses.
— Use the matrix as a filter: a 4/4 beacon is the highest-conviction environment; a divided matrix (2/4) warns that timeframes disagree.
— Divergence on the candles: when the dashed price line and the pane connector appear together, you have a momentum-versus-price disagreement located precisely on structure.
— Watch the coil: a long squeeze followed by a release is the setup for expansion; the R family record tells you how reliably releases have followed through here.
— Works on all markets and timeframes; configure the four matrix timeframes to match your trading horizon.
═══════════════════════════════════════════════
🔶 SETTINGS
— MACD: fast, slow and signal lengths.
— Timeframe Matrix: four timeframes.
— Signals & Squeeze: divergence pivot length, squeeze window and percentile, cooldown, signal visibility.
— Statistics: sample cap, minimum samples, shrinkage strength, Wilson z-score.
— Visuals and dashboard: river and aura toggles, river length, full color and position control.
═══════════════════════════════════════════════
🔶 ALERTS
— Matrix Aligned Bullish / Bearish — all four timeframes aligned with expanding momentum.
— Zero-Line Cross — MACD crossed zero.
— Histogram Divergence — a divergence printed.
— Squeeze Release — the histogram expanded out of its coil.
═══════════════════════════════════════════════
🔶 FAQ
Q: Does it repaint?
A: Signals are evaluated on confirmed bars and never change once printed. The higher-timeframe rows of the matrix update while their own bar is open and finalize at its close — this is inherent to any multi-timeframe reading, and no lookahead is used.
Q: How is this different from a standard MACD?
A: A standard MACD shows one line, one signal and one histogram in a pane. This tool adds the quadrant classification, the four-timeframe matrix and beacons, divergence drawn on the price chart itself, the histogram squeeze, the momentum river and aura on price, and per-family statistics.
Q: What does the momentum river represent?
A: A short exponential average of price colored by the current MACD quadrant. Its purpose is purely to carry the momentum reading onto the candles — bright when momentum expands, dimmed when it fades — so you can read momentum without looking away from price.
Q: What do the family percentages mean?
A: The share of past signals in that family after which price had moved favorably ten bars later, on the current symbol and timeframe, shrunk toward fifty percent at small samples. They describe history — they are not predictions.
Q: Which settings should I change first?
A: The four matrix timeframes, so the matrix reflects your own trading horizons. The MACD lengths follow the classic 12, 26, 9 defaults.
═══════════════════════════════════════════════
🔶 CREDITS
The Moving Average Convergence Divergence is by Gerald Appel; the MACD histogram is by Thomas Aspray (1986). The Wilson score interval is by Edwin B. Wilson (1927). The quadrant engine, timeframe matrix and beacon logic, dual-canvas divergence rendering, histogram squeeze, per-symbol statistics and all code in this script are original work — no third-party or open-source script code was reused.
═══════════════════════════════════════════════
🔶 LIMITATIONS
— MACD is a lagging momentum measure; the quadrant engine reduces but cannot eliminate lag.
— Divergences can extend before resolving; the family record exists to quantify this on your chart.
— Statistics describe the current chart's history only; past frequencies never guarantee future outcomes.
═══════════════════════════════════════════════
🔶 DISCLAIMER
This indicator is a research and charting tool provided for educational purposes. It is not financial advice, and nothing it displays is a recommendation to buy or sell any asset. Trading involves substantial risk of loss. Always do your own analysis and manage risk responsibly. Индикатор

Divergence Scanner - Multi-Oscillator Confirmation [Dots3Red]📉 DIVERGENCE SMART SCANNER — MULTI-OSCILLATOR CONFIRMATION STATS
A single-oscillator divergence — price makes a new high while RSI doesn't confirm it — is treated as a reversal warning almost everywhere. Whether adding a second or third oscillator's agreement actually makes that warning more reliable is rarely tested. This script tests it, directly, on the chart in front of you.
✨ WHY THIS MATTERS
"More confirmation means more reliable" is one of the most repeated pieces of trading folklore. This script checks whether that's actually true here, rather than assuming it. Every divergence is checked against three separate oscillators — RSI, MACD histogram, and Williams %R — and graded by how many of them agreed. The outcome of every divergence is then tracked, sorted by that confirmation count:
📊 1 oscillator confirms: 54% reversed (n=28)
📊 2 oscillators confirm: 63% reversed (n=19)
📊 3 oscillators confirm: 71% reversed (n=9)
If confluence genuinely matters on this chart, these numbers should step upward. If they don't, that's useful information too — either way, it's measured, not assumed.
⚙️ HOW IT WORKS
📐 Swing detection — confirmed pivot highs and lows, each stored alongside the value every oscillator held at that exact moment, so structure is compared pivot-to-pivot rather than pivot-to-current-bar.
📊 Multi-oscillator confirmation — a bearish divergence requires price making a higher high; each oscillator that simultaneously makes a *lower* high adds one to the confirmation count. Bullish divergence is the mirror case at swing lows. The count (1, 2, or 3) is shown directly on the chart label.
🎯 Tiered outcome grading — every divergence is tracked forward. If price genuinely moves in the expected reversal direction by a meaningful distance within a set window, it's graded as reversed; otherwise it isn't. The result feeds into that specific confirmation tier's running statistic — 1-oscillator divergences are never mixed together with 3-oscillator ones, since that's exactly the comparison the whole tool exists to make.
🔒 Non-repainting — all detection and grading happens strictly on confirmed bars.
🧭 HOW TO USE
1️⃣ Read the confirmation count on the label before reacting to a divergence. "▼ 1/3 confirm" and "▼ 3/3 confirm" look like the same event on the chart but carry very different weight once you check their respective tiers.
2️⃣ Check the dashboard's tier stats, not just the current divergence. The measured reversal rate and sample size (n=) for that specific tier tell you how much history actually backs it up on this chart.
3️⃣ Let the sample size guide your confidence. A tier with 4-5 recorded events is still forming; one with 30+ is telling you something real about how this instrument has behaved.
4️⃣ Use the tier comparison to decide whether waiting for more confluence is worth it. If reversal rates climb clearly from 1 to 2 to 3 oscillators, holding out for stronger confirmation is justified here. If the tiers are flat or don't separate meaningfully, a single-oscillator divergence is just as informative as a rarer triple-confirmed one — and waiting for 3/3 may just mean missing setups for no real benefit.
5️⃣ Treat it as context, not a trigger. Like every tool in this catalog, it describes what has already happened — it doesn't predict what happens next.
⏱️ WHICH TIMEFRAMES WORK BEST
Divergence needs enough bars between swings to form and then resolve meaningfully, which generally makes 15-minute through 4-hour the most effective range — the same window where most swing-based structure tools perform best.
On very short timeframes (1-3 minute), pivots form so frequently that many flagged divergences will be closer to noise than genuine structure — the tier sample sizes will grow quickly, but individual signals may carry less weight. On daily or weekly charts, genuine divergence setups are naturally rarer, so expect fewer signals and a longer wait before any tier's sample size becomes large enough to trust. The tool still functions on both ends of that range — it simply takes longer, or shorter, for its statistics to become genuinely informative.
🛠️ SETTINGS
📐 Swing Detection — Pivot Leg (bars required on each side to confirm a pivot)
📊 Oscillators — independent length settings for RSI, MACD, and Williams %R
🎯 Outcome Grading — Reversal Confirmation distance (in ATR) and Outcome Window (bars)
🎨 Visualization — toggle divergence lines and confirmation labels independently; line width, line style, label size, and label position style (natural above/below placement, or pointing left)
🎨 Colors — independent bullish/bearish line and label text colors, label background, and full dashboard color control including separate good/bad outcome indicators
🖥️ Dashboard — show/hide, position — all three confirmation tiers with their measured reversal rates and total signal count
📝 NOTES
Statistics accumulate from when the indicator is added to the chart. Higher-confirmation tiers (2 and especially 3 oscillators) will naturally take longer to build a meaningful sample than the 1-oscillator tier, since triple-confirmed divergences are rarer by definition.
⚠️ DISCLAIMER
This is an analytical and visualization tool. It does not generate trade signals and does not constitute financial advice. Historical reversal rates do not guarantee how any future divergence will resolve. Индикатор

Trend Dashboard - Direction and StrengthTrend Dashboard - Direction and Strength.
A single compact table that reads eleven trend, momentum, volatility, structure and volume-flow indicators on up to four timeframes at once. The directional readings are condensed into a score and a categorical verdict for each timeframe, while trend strength is reported separately by the ADX row and never enters the sum, so direction and strength stay two distinct answers. Built for top-down traders who want the confluence check they normally perform by switching charts to happen in one place, on the chart they are already trading.
How it works:
Every indicator for a given timeframe is computed inside one function and delivered by a single request.security call per timeframe, with lookahead disabled, so the table never reads data that was not available at the time of the bar. The four timeframe slots are user-assigned and default to daily, 4 hours, 1 hour and 5 minutes. Column headers are derived from the assigned timeframe itself, so reassigning a slot relabels the column. Market structure is delivered by a second request per timeframe: it tracks confirmed swing highs and lows over a configurable pivot window, registers the direction of the last break, and counts how many continuation breaks have followed the last change of character.
The table is rebuilt on the last bar only and cells are wiped before each refill, so toggling a timeframe off cannot leave stale values in a column that has shifted. Rows are ordered by the weight of the information they carry: structural context first, then macro regime, then medium-term structure, momentum, strength and the local price position, followed by the three context rows and the score and verdict at the bottom. A marker column carries a coloured dot for rows that must not be read as ordinary trend votes: orange for mandatory context that stays outside the score, white for indicators running on simplified parameters or on an approximation, blue for market structure. The script also detects whether the symbol reports volume. On symbols with no volume feed, cumulative volume delta and OBV divergence print a dash instead of a neutral reading, and the volume delta vote is dropped from the score, which lowers the maximum from eight to seven while the verdict thresholds stay absolute.
What it calculates:
- Market structure — direction of the last swing break, with a phase suffix (C, C+1, C+2 and higher) counting continuation breaks since the last change of character.
- EMA mid/slow — macro regime, the golden and death cross relation.
- EMA fast/mid — medium-term trend structure.
- SuperTrend — ATR trailing direction, computed from a configurable ATR length and factor.
- Ichimoku Kumo — price against the cloud built from the 9, 26 and 52 bar ranges.
- MACD — bullish only when the MACD line leads the signal line and the histogram agrees.
- RSI — directional reading around the midline, with the raw value shown in the cell.
- CVD — cumulative volume delta approximated from the position of the close inside the bar range, read as the agreement between flow slope and price slope.
- Price vs fast EMA — the local position of price, the most sensitive of the trend votes.
- ADX and DMI — trend strength with the raw ADX value shown in the cell, and direction from the DMI pair once the threshold is met.
- OBV divergence — price extreme of the window not confirmed by cumulative volume.
- RSI divergence — price extreme of the window not confirmed by momentum.
- Score — the sum of the eight directional votes per timeframe, shown against the maximum available on the symbol.
- Verdict — STRONG BULL, BULL, MIXED, BEAR or STRONG BEAR, derived from absolute score thresholds.
Key features:
- Four independently assignable timeframe slots, each with its own visibility toggle. Hidden columns shift the remaining ones left and are excluded from the alignment alerts.
- Column headers derived from the assigned timeframe, formatted as 1D, 4H, 1H, 5M rather than fixed labels.
- Separation of directional votes from context. Market structure, ADX and the two divergence rows are displayed but never summed into the score, so trend strength and reversal warnings are not confused with direction.
- Automatic handling of symbols without volume: the affected rows print a dash and the score maximum drops to seven, with verdict thresholds left absolute.
- Per-row tooltips that state what the indicator measures, how to read the three states, its role inside the system and its known failure modes.
- Configurable parameters for every indicator: EMA lengths, RSI length and thresholds, MACD triplet, ADX length and threshold, SuperTrend ATR and factor, CVD lookback, OBV and RSI divergence windows, and the market structure pivot window with a choice between candle close and wick confirmation.
- Ten alert conditions: a bullish and a bearish verdict transition for each of the four timeframes, plus full bullish and bearish alignment across all visible timeframes.
- Table position and text size selectable, with all signal and table colours exposed as colour inputs.
Who it's for:
Trend followers, swing traders and intraday traders who work top-down and want the higher timeframe bias, the execution frame and the entry frame visible at the same time. It suits price-action and SMC or ICT workflows that treat break of structure and change of character as the primary context, and momentum-based approaches that need a strength filter before acting on a directional signal. The outcome is one table that answers whether a trend exists, which way it points on each timeframe, and where the timeframes disagree, without stacking a dozen overlays on the chart. Индикатор

Reversal Radar PRO | Market Tops & Bottoms
↺ Reversal Radar PRO — Tops & Bottoms
Most “reversal” tools fire one arrow and disappear. This one runs three layers: a heads-up while the bar is still forming, a confirmed print after the swing is locked, and a live status on whether that reversal is still valid.
The point is not to catch every wick. It is to grade the turn, map the zone, and tell you when the chase is already late.
① Early-warning
Live-bar gauge. It can repaint — that is stated on purpose. Use it as danger / opportunity forming, not as an entry.
② Confirmed
Pivot-locked after the right-side bars. Does not repaint. Weighted 0–100 confidence with a grade, a vote floor, and a cooldown. Factors that can vote: RSI extreme, RSI divergence (quality-scored), volume climax, Bollinger pierce, over-extension from the mean, Stoch-RSI, wick rejection, engulfing, higher-TF RSI, liquidity sweep. Regime can boost or cut the score. Hidden divergence trims it — that is continuation, not a turn.'
③ Follow-through
Once a confirmed top or bottom is on, the radar tracks:
Active / late / soft invalid / hard invalid / target hit
Soft and hard invalidation distances
Chase quality (good → poor) vs progress to target
Mapped target and R:R
🗺 On the chart
Confirmed labels (confidence + grade) or simple arrows
Tiny diamonds for early-warning
Reversal zone boxes at the pivot
Clustered S/R that merge nearby swings, count touches, and flip when broken
📟 Dashboard
Regime and “best play” (fade the trend, or both sides). Trend efficiency. Volatility state. RSI / HTF RSI / Stoch-RSI. Bollinger position. Extension. Volume vs average. Divergence quality. Early-warn reading. Active signal, status, chase, target. Nearest S/R. Last print and how many bars ago.
🎯 How to use it
Wait for confirmed unless you accept that early-warning will flicker. In a strong uptrend, bottoms are the preferred fade — not every red wick. If chase already reads late, you missed the turn; do not market-order the remainder. Hard invalidation ends the idea. Soft invalidation is a warning, not a rewrite of history. Индикатор

Divergence Confirmation Oscillator [Pineify]Divergence Confirmation Oscillator
Overview
This RSI divergence indicator starts from one timing fact: a pivot is knowable only after its right-side bars close. It scores regular and hidden events, showing both the formation location and the later confirmation time.
Problem Definition
A divergence line drawn back to a pivot can look actionable there, although several bars were still required to confirm it. Binary markers also give equal weight to shallow disagreements and well-separated price/RSI moves. The failures are timing ambiguity and absent evidence quality. This script exposes the delay and ranks completed events; it does not assume divergence predicts reversal.
Design Rationale
Price pivots are the anchors, with RSI sampled on those exact bars. A solid diagonal shows formation; a dotted track from the second pivot to the confirmation bar shows knowledge time. Quality combines spacing, ATR-normalized price movement, RSI movement, threshold context, and RSI departure by confirmation. ATR avoids raw-point scale dependence. Unconfirmed turns would appear earlier, but would break the timing invariant. The chosen tradeoff is delay and selectivity for auditable events.
Key Features
Confirmed regular/hidden bullish and bearish divergence.
Adjustable 0–100 quality gate.
Pivot bridge plus confirmation wait track.
Bounded follow-through, invalidation, or expiry state.
Four close-confirmed alerts and optional dashboard.
How It Works
RSI uses closes. Price highs/lows become pivots only after the configured bars on both sides; processing occurs when the right-side bar closes.
Regular bullish means lower price low and higher RSI; hidden bullish means higher price low and lower RSI. Bearish definitions are symmetric at highs.
Only consecutive confirmed pivots inside the separation range interact. Each new pivot becomes the next reference even if no event passes.
The score weights spacing 25%, ATR-normalized price displacement 25%, RSI displacement 25%, threshold context 15%, and departure from the second pivot 10%. Price ATR and RSI delta inputs define full component scores.
Passing events receive a solid bridge, a dotted pivot-to-confirmation track, and a REG/HID label with Q at confirmation. Nearby labels rotate through three vertical lanes.
After confirmation, the watch records favorable ATR movement or RSI midpoint reclaim as follow-through, a buffered close beyond the pivot as invalidation, or the time limit as expiry. Circles and crosses mark these later outcomes without duplicate edge text; they are not alert signals.
Warm-up requires valid RSI, ATR, and pivot history; invalid spacing suppresses events.
How Multiple Indicators Work Together
Price pivots supply auditable anchors; RSI measures momentum there; ATR normalizes price distance; the score ranks the completed disagreement; and the lifecycle observes only later evidence. Removing any part changes the result: without pivots timing is undefined, without RSI divergence disappears, without ATR price scale leaks into quality, and without the wait track confirmation delay is hidden. This is one causal chain, not an unrelated mashup.
Trading Ideas and Insights
Regular events show price extending while RSI disagrees; hidden events show price holding structure while RSI pulls back. Compare the confirmation bar, Q, and lifecycle before forming a thesis. Repeated invalidation suggests retuning the pivot scale. The indicator supplies no entry, stop, size, or expected return.
Unique Aspects
Confirmation geometry is the structural contribution. The diagonal shows where the relationship formed; the dotted track and label show when it became knowable. Five score components rank evidence without altering RSI, and the bounded lifecycle keeps later behavior separate. A historical bridge is therefore created at confirmation, not proof of availability at the pivot.
How to Use
Start with defaults. Cyan/green lower labels show bullish confirmations; orange/red upper labels show bearish ones. Nearby labels rotate through three lanes. Follow the dotted track to confirmation and read Q. Triangles mark events; circles/crosses mark later outcomes named in the dashboard. Use the four close-confirmed alerts.
Customization
Short pivot sides reduce delay but admit noise; long sides select broader swings and confirm later. Separation limits choose pivots. Price ATR, RSI delta, quality, and context calibrate scoring. Follow distance, buffer, and window control lifecycle. Label spacing sets the clustering window. Visual layers and retained events are switchable.
Assumptions and Limitations
Confirmed does not mean correct or profitable. Pivots lag, and historical bridges are drawn only at confirmation. Events and lifecycle changes require a closed bar. ATR is scale, not probability. Consecutive-pivot logic can miss a relationship that skips an intermediate pivot. Trends may invalidate regular divergence; ranges may create many pivots; gaps, thin trading, parameters, and synthetic chart prices can distort results. The script uses chart OHLC only, requests no external or lower-timeframe data, infers no order flow, and performs no execution backtest.
Conclusion
The oscillator makes RSI divergence auditable through confirmed anchors, scale-aware quality, explicit knowledge time, and bounded follow-up. It exposes delay and evidence while preserving uncertainty.
Индикатор

CCI Divergence Volume Breakout [josseliani]CCI Divergence Volume Breakout combines confirmed CCI divergence with a relative-volume candle level. It waits for a confirmed close beyond that candle's high or low before displaying a BUY or SELL signal, and it can optionally map Entry, a volume-candle-based stop, 1R, and historical R-reach statistics.
The default settings are tuned for XAUUSD on the 7-minute chart, but the indicator can be adapted to other instruments and timeframes. The statistics dashboard updates for the current symbol, timeframe, loaded chart history, and selected inputs, making it easy to see how different settings affect the sample size and historical R-reach rates.
→ HOW I USE IT
The default settings are the configuration I currently use for XAUUSD on the 7-minute chart.
Seven minutes is the favorite timeframe of my wonderful wave-analysis teacher. I built this version around the way he studies the market: first CCI divergence, then a meaningful volume spike. After that, he moves on to his own wave-analysis methods, including trendlines, wave count, structure, and broader market context. This indicator does not reproduce or replace his complete method. I use it as a supporting tool within my own wave analysis.
With the default settings, the script first searches for a confirmed CCI divergence. It then selects a qualifying volume candle connected to that divergence. The first search covers the divergence span; if necessary, it checks the area around the second pivot and then watches the post-confirmation candidate window. A qualifying candle must have volume of at least 1.5 times its 20-bar average.
For a bullish divergence, the high of the selected volume candle becomes the confirmation level. A BUY signal appears only after a candle closes above that high within the permitted breakout window.
For a bearish divergence, the low of the selected volume candle becomes the confirmation level. A SELL signal appears only after a candle closes below that low within the permitted breakout window.
The optional trade map starts from the open of the candle after the signal. It displays an Entry line, a stop behind the opposite edge of the exact volume candle plus the selected ATR delta, and a 1R reference target.
I use the dashboard to compare configurations rather than to treat one historical percentage as a promise. For example, changing the minimum volume multiple, pivot-matching radius, maximum distance between pivots, candidate-search window, or breakout window changes how often historical observations reached 0.5R, 1R, 2R, and 3R. This helps me see the trade-off between signal selectivity and historical excursion.
→ HOW THE INDICATOR WORKS
→ 1. Automatic CCI pivot scan
The script evaluates confirmed CCI pivots using strengths 3, 5, 7, and 9. The first pivot must be beyond the selected extreme threshold. The second pivot may form closer to the center of the oscillator.
A bullish divergence requires price to form a lower low while CCI forms a higher low. A bearish divergence requires price to form a higher high while CCI forms a lower high.
CCI pivots require bars on the right to become confirmed. For that reason, divergence lines are anchored to their historical pivot candles only after confirmation. They do not represent information that was available on the original pivot candle. BUY and SELL signals are evaluated only on confirmed closes after the divergence has been confirmed.
→ 2. Price-pivot matching
CCI and price do not always turn on exactly the same candle. Price Pivot Match Radius searches on both sides of each CCI endpoint for the corresponding price high or low.
Maximum Price/CCI Span Difference then checks that the two price pivots and the two CCI pivots describe approximately the same market swing. Lower values require tighter alignment; higher values allow more flexibility.
→ 3. Relative-volume candle selection
When a divergence becomes confirmed, the script first searches its pivot-to-pivot span for qualifying volume candles and selects the qualifying candle with the greatest reported volume. If that search finds none, it also checks the area around the second pivot. Search After Divergence then defines how many new bars after confirmation may supply a qualifying candidate. Volume is measured relative to its moving average:
Relative volume = candle volume / average volume
The default requirement is 1.5 times the 20-bar average. Candle direction is not used. For a bullish setup, the selected candle's high becomes the level. For a bearish setup, its low becomes the level.
Maximum Candidates controls how many qualifying volume levels one divergence may create. You can use up to three qualifying volume-candle candidates for each confirmed divergence. The default is one to keep the chart and signal source unambiguous. With this default, an already selected historical candidate fills the single slot; otherwise, the first qualifying post-confirmation candidate can fill it.
→ 4. Breakout confirmation and signal window
The volume level begins as gray. It changes to the bullish or bearish color only when price closes beyond it on a confirmed candle:
Bullish divergence: confirmed close above the selected volume candle's high.
Bearish divergence: confirmed close below the selected volume candle's low.
Breakout Signal Window defines how many bars that exact volume level is permitted to produce a BUY or SELL signal. The count begins when the level is created. Once the window expires, the level cannot trigger a late signal and cannot add a late observation to the statistics.
→ 5. Expired levels
Keep Expired Levels Visible separates signal validity from visual analysis.
When it is enabled, an unbroken level continues as a gray reference after its signal window expires. The expired line is visual only: it cannot produce a BUY or SELL signal and is not reactivated by a new calendar day, exchange day, or session. It remains visible until a newer qualifying volume level replaces it.
When Keep Expired Levels Visible is disabled, the gray line ends when its breakout signal window expires.
This indicator does not carry or re-arm levels according to a calendar boundary or timezone.
→ OPTIONAL TRADE MAP
The trade map is a visual measurement tool, not an automated order-placement system.
Entry: open of the candle following the confirmed BUY or SELL signal.
Stop: opposite edge of the exact volume candle that produced the signal, plus the selected ATR delta.
1R: one initial-risk unit from Entry.
The map helps compare the signal with the user's own execution, market structure, and risk plan. It is not financial advice and does not account for spread, slippage, commissions, or individual position sizing.
→ STATISTICS DASHBOARD
The dashboard reports historical reach rates for the current symbol, timeframe, loaded chart history, and selected inputs. It is designed for configuration comparison.
Completed: observations that reached the stop, reached 3R, or reached the maximum evaluation window.
Reached >=0.5R: completed observations whose maximum favorable excursion reached at least half of the initial risk.
Win Rate >=1R: completed observations that reached at least 1R before the stop.
Reached >=2R / >=3R: completed observations that reached those excursion levels before the stop.
Average MFE: average maximum favorable excursion, expressed in R, across completed observations.
Active / Invalid: observations still being evaluated and observations rejected because a valid positive risk distance could not be constructed.
Only breakouts confirmed while their volume level is inside its active signal window create statistical observations. An expired gray reference does not create a trade in the dashboard.
If the stop and a target fall inside the same historical candle, the script gives the stop priority because OHLC data cannot reveal the intrabar sequence. This is intentionally conservative.
These figures are descriptive historical measurements, not a backtest equity curve, not a profit factor, and not a forecast of future results. They can change with the data provider, symbol, timeframe, available history, and settings.
→ DEFAULT XAUUSD 7-MINUTE PRESET
CCI Length: 20
CCI Source: Typical Price (HLC3)
First Pivot Extreme Level: +/-150
Maximum Bars Between Pivots: 60
Price Pivot Match Radius: 7
Maximum Price/CCI Span Difference: 35%
Volume Average Length: 20
Minimum Volume x Average: 1.5
Search After Divergence: 15 bars
Maximum Candidates per Divergence: 1
Breakout Signal Window: 40 bars
Keep Expired Levels Visible: On
Show Entry / SL / 1R Markup: On
→ ALERTS
Bullish CCI Divergence: fires when a bullish divergence becomes confirmed.
Bearish CCI Divergence: fires when a bearish divergence becomes confirmed.
CCI Volume Long Signal: fires after a confirmed close above an active bullish volume level.
CCI Volume Short Signal: fires after a confirmed close below an active bearish volume level.
→ ORIGINALITY
This script is not a standard CCI divergence plot and not a generic volume-spike marker. Its purpose is to connect four separate stages in one workflow: multi-strength confirmed CCI divergence, price-pivot alignment, relative-volume candle mapping, and close-confirmed breakout authorization.
Candidate search, signal lifetime, visual reference lifetime, trade measurement, and historical R-reach analysis are kept separate. This makes it possible to change one part of the workflow and see how it affects signal frequency and the historical statistics without confusing an expired visual level with an active signal source.
→ LIMITATIONS
CCI, volume, and divergence are analytical tools, not guarantees of reversal or continuation. Pivot confirmation introduces an intentional delay. Historical volume and results can differ between data providers. Signals should be evaluated with market structure, liquidity, volatility, wave context, and personal risk management. The default preset was developed for how I analyze XAUUSD on 7 minutes; other markets and timeframes require independent testing.
Индикатор

RSI Extreme Value Labels [DotGain]RSI Extreme Value Labels
A standard RSI that writes the actual number on the chart whenever the indicator turns at an extreme. Instead of eyeballing how deep a spike went, you see it: 82, 74, 19.
How it works
The script looks for confirmed pivot highs and lows in the RSI line. A pivot high only gets a label if it sits at or above the overbought level; a pivot low only gets one if it sits at or below the oversold level. Everything in between stays clean.
Because pivots need bars on both sides to be confirmed, labels appear a few bars after the actual turn. That is the trade-off for not repainting — a label, once printed, stays where it is.
Settings
RSI length, source and line color
Overbought / oversold thresholds, plus an optional shaded zone
Pivot bars left and right — larger values mean fewer but more significant labels
Decimal places, vertical offset, text color and size
Notes
Useful for comparing the strength of successive extremes, spotting divergences at a glance, and reviewing past reactions without hovering over the line. Works on any symbol and timeframe.
Have fun :)
Disclaimer
This RSI Extreme Value Labels indicator is provided for informational and educational purposes only. It does not, and should not be construed as, financial, investment, or trading advice.
This indicator is an independent implementation of a standard Relative Strength Index combined with a pivot-based labeling routine, and is not affiliated with, or endorsed by, any third-party trading systems, strategies, protocols, or trademarked methodologies. The labels, overbought and oversold zones, and RSI values displayed by this indicator are generated by a predefined set of algorithmic rules based on historical price data and user-defined input settings. They do not constitute a direct recommendation to buy, sell, or hold any financial instrument or digital asset.
All trading and investing in financial markets involves a substantial risk of loss. You may lose part or all of your invested capital. Past performance does not guarantee future results. This indicator marks momentum extremes only after the required confirmation bars have closed, and may therefore produce lagging, incomplete, or misleading signals. An extreme RSI reading can persist for a long time in a strong trend and does not by itself indicate a reversal. Market behavior is influenced by many external factors and can deviate significantly from historical patterns or expectations.
The creator DotGain assumes no responsibility or liability for any financial losses, damages, or decisions made based on the use of this indicator or the information it provides. You are solely responsible for your own trading and investment decisions. Always conduct your own research (DYOR), use proper risk management, validate insights with additional tools or analysis, and consider your personal financial situation and risk tolerance before making any financial decision. Индикатор

On Balance VolumeOverview
This indicator is based on On Balance Volume (OBV) and is designed to analyze the relationship between price and volume, helping traders identify potential accumulation, distribution, trend confirmation, and changes in volume flow.
In addition to the traditional OBV, the indicator allows users to apply different moving-average types to smooth the OBV and, optionally, add Bollinger Bands around the smoothed OBV.
The indicator also uses dynamic colors, making it easier to visually identify the direction of both the OBV and its moving average.
1. On Balance Volume (OBV)
OBV accumulates or subtracts volume according to price movement:
If the current closing price is higher than the previous close, volume is added to OBV.
If the current closing price is lower than the previous close, volume is subtracted from OBV.
If there is no change in price, OBV remains unchanged.
Interpretation
Rising OBV:
May indicate increasing buying pressure, accumulation, or confirmation of an uptrend.
Falling OBV:
May indicate increasing selling pressure, distribution, or confirmation of a downtrend.
OBV should not be used in isolation. Combining it with price action, trend structure, support and resistance, and other technical factors may improve the quality of the analysis.
2. OBV Dynamic Colors
The main OBV line uses three colors:
🟢 Green
OBV is increasing compared with the previous period.
This indicates positive volume flow.
🔴 Red
OBV is decreasing compared with the previous period.
This indicates negative volume flow.
🟡 Yellow
OBV has not changed compared with the previous period.
3. Smoothing
The Type setting allows users to apply a moving average to the OBV.
Available options:
None
SMA
SMA + Bollinger Bands
EMA
SMMA (RMA)
WMA
VWMA
Smoothing can be used to reduce short-term fluctuations and make the underlying direction of OBV easier to identify.
4. Moving Average Type
None
No moving average is applied.
Only the original OBV is displayed.
Useful for:
Faster analysis;
Immediate identification of OBV changes;
Traders who prefer raw volume-flow information.
SMA — Simple Moving Average
Calculates the arithmetic average of OBV over the selected number of periods.
Characteristics:
Smoother than the raw OBV;
Slower to react to sudden changes;
Useful for identifying the broader direction of volume flow.
SMA + Bollinger Bands
Applies an SMA to OBV and adds Bollinger Bands.
This option displays:
A central moving average;
An upper Bollinger Band;
A lower Bollinger Band.
The bands help identify periods when OBV is moving relatively far from its recent average.
EMA — Exponential Moving Average
The EMA gives greater weight to recent OBV values.
Characteristics:
Responds faster to changes in OBV;
Useful for short- and medium-term analysis;
Generally more responsive than an equivalent SMA.
SMMA (RMA)
The SMMA/RMA is a smoother moving average designed to reduce short-term fluctuations.
It can be useful for traders who want a more stable view of the underlying OBV trend.
WMA — Weighted Moving Average
The WMA assigns greater weight to more recent values.
It generally responds faster to changes in OBV than an equivalent SMA.
VWMA — Volume Weighted Moving Average
The VWMA weights values according to volume.
Because OBV itself is already volume-based, this option may produce a different smoothing behavior compared with traditional moving averages and should be evaluated according to the trader's strategy.
5. Length
The Length parameter determines the number of periods used to calculate the moving average.
The default value is:
14 periods
Shorter Length
Examples: 5, 9, or 10.
The moving average becomes faster and more sensitive.
Potentially useful for:
Short-term trading;
Faster detection of changes in volume flow;
Scalping and intraday strategies, depending on the market.
However, shorter lengths can also generate more noise and false signals.
Longer Length
Examples: 20, 50, or 100.
The moving average becomes slower and smoother.
Potentially useful for:
Trend analysis;
Swing trading;
Identifying the dominant volume-flow direction.
The longer the length, the greater the delay in reacting to changes in OBV.
6. Moving Average Dynamic Colors
The OBV moving average also changes color dynamically.
🟢 Green
The moving average is rising.
🔴 Red
The moving average is falling.
🟡 Yellow
The moving average is unchanged.
This allows traders to quickly identify the direction of the smoothed OBV.
7. Bollinger Bands
Bollinger Bands are available only when:
Type = SMA + Bollinger Bands
The bands are calculated using the standard deviation of OBV.
The indicator displays:
Upper Bollinger Band
SMA / Middle Band
Lower Bollinger Band
The distance between the bands expands or contracts according to changes in OBV volatility.
8. BB StdDev
The BB StdDev parameter controls the distance of the Bollinger Bands from the moving average.
Default value:
2.0
Lower value
Example: 1.0–1.5.
The bands become narrower.
This increases sensitivity and causes OBV to reach the bands more frequently.
Higher value
Example: 2.5–3.0.
The bands become wider.
This reduces the frequency of band touches and can help highlight more extreme OBV movements.
9. How to Interpret the Indicator
The indicator can primarily be used for four types of analysis:
1. Trend Confirmation
During an uptrend:
Price rising + OBV rising
may indicate volume confirmation of the bullish trend.
During a downtrend:
Price falling + OBV falling
may indicate confirmation of selling pressure.
2. Bullish Divergence
A potential bullish divergence occurs when:
Price makes lower lows while OBV makes higher lows.
This may indicate weakening selling pressure and a possible loss of bearish momentum.
3. Bearish Divergence
A potential bearish divergence occurs when:
Price makes higher highs while OBV makes lower highs.
This may indicate weakening buying pressure.
Important: Divergences do not guarantee a reversal. They should be considered warning signals and ideally confirmed by price action or other technical factors.
10. Using Bollinger Bands on OBV
When Bollinger Bands are enabled, they can help identify unusual movements in volume flow.
OBV near or above the Upper Band
May indicate an unusually strong positive OBV movement relative to its recent average.
OBV near or below the Lower Band
May indicate an unusually strong negative OBV movement.
However, touching or crossing a Bollinger Band does not automatically mean buy or sell.
During strong trends, OBV may remain near one of the bands for extended periods.
11. Suggested Settings
There is no universally optimal configuration. The appropriate settings depend on the asset, timeframe, volatility, and trading strategy.
Short-Term Analysis
A possible starting configuration:
Type: EMA
Length: 9 or 14
This provides a faster response to changes in OBV.
Medium-Term Analysis
A possible starting configuration:
Type: SMA
Length: 20
This provides a balance between responsiveness and smoothing.
Longer-Term Trend Analysis
A possible starting configuration:
Type: SMA
Length: 50
This provides greater smoothing and reduces sensitivity to short-term fluctuations.
Bollinger Band Analysis
A possible starting configuration:
Type: SMA + Bollinger Bands
Length: 20
BB StdDev: 2.0
These settings are reference points for testing and are not investment recommendations.
12. Practical Usage
One possible approach is to use the indicator together with price structure.
Potential Bullish Setup
Look for a combination such as:
Price showing a bullish market structure;
OBV rising;
OBV moving average turning green;
OBV confirming upward price movements;
A breakout or recovery of an important price level.
Potential Bearish Setup
Look for a combination such as:
Price showing a bearish market structure;
OBV falling;
OBV moving average turning red;
OBV confirming downward price movements;
A breakdown or rejection of an important price level.
The indicator is best used as a confirmation tool, rather than as the sole reason to enter a trade.
13. Recommended Starting Configuration
For traders who are new to the indicator, a simple starting configuration is:
Type: SMA
Length: 14
Then compare it with:
Type: EMA
Length: 14
Observe which configuration better represents the behavior of the asset and timeframe being analyzed.
For Bollinger Band analysis:
Type: SMA + Bollinger Bands
Length: 20
BB StdDev: 2.0
14. Important Notes
OBV is a cumulative indicator. Therefore, its absolute values can vary significantly depending on the available historical data and the asset being analyzed.
Signals should be interpreted in the context of:
Market trend;
Price structure;
Support and resistance;
Volume;
Volatility;
Timeframe;
Overall market conditions.
No parameter should be considered universally superior.
It is recommended to test different configurations using historical data, Bar Replay, and paper trading before applying any strategy to live trading.
This indicator is a technical analysis tool and does not constitute financial, investment, or trading advice. Индикатор

Liquidity Wave IndexLiquidity Wave Index is a momentum, pressure and divergence oscillator designed to combine three related forms of market information in one pane:
* OHLCV-based directional pressure
* An adaptive market-cycle oscillator
* Price-versus-oscillator divergence
The purpose of combining these components is to separate directional pressure from cycle timing. The Liquidity Pressure histogram shows whether candle structure and reported volume are contributing more positively or negatively, while the Cycle Engine measures normalized price displacement and momentum rotation. Divergence analysis then compares confirmed price swings with confirmed oscillator swings to identify disagreement between price structure and momentum.
The components can be used independently or combined through optional confirmation filters.
LIQUIDITY PRESSURE
Liquidity Pressure is an OHLCV-derived analytical measure.
For each candle, directional pressure begins with the candle body relative to the full candle range:
(close - open) / (high - low)
This value is multiplied by reported volume, smoothed with an EMA, and then normalized by smoothed volume.
The Scale input changes the displayed magnitude without changing the underlying directional relationship.
Positive values indicate that the recent combination of candle direction, candle range and reported volume is weighted toward positive pressure.
Negative values indicate the opposite.
This is not true bid/ask delta, order-book data or exchange trade-direction data. It is an OHLCV-based approximation derived from chart data, and volume characteristics may differ between symbols, exchanges and data providers.
ADAPTIVE CYCLE ENGINE
The Cycle Engine is based on an adaptive WaveTrend-style framework.
The selected price source, HLC3 by default, is compared with an adaptive EMA baseline. Price displacement from that baseline is normalized using an adaptively smoothed measure of absolute deviation.
The resulting normalized oscillator is then adaptively smoothed into:
Cycle Line
Signal Line
The adaptive smoothing rate changes according to recent price movement rather than remaining completely fixed.
Additional EMA smoothing is applied through the Ribbon Smooth setting.
The ribbon between the two lines visually represents the current relationship between the Cycle Line and Signal Line.
BULL AND BEAR SIGNALS
A Bull signal occurs when the Cycle Line crosses above the Signal Line.
A Bear signal occurs when the Cycle Line crosses below the Signal Line.
Signals are only accepted on confirmed bars. A crossover that appears temporarily while the current candle is still forming will therefore not become a confirmed signal unless the crossover remains present when the candle closes.
The Threshold Filter and Liquidity Pressure Confirmation settings can optionally make these signals more selective.
THRESHOLD FILTER
With the Threshold Filter enabled:
Bull signals require the Cycle Line to be below the negative threshold when the bullish cross occurs.
Bear signals require the Cycle Line to be above the positive threshold when the bearish cross occurs.
The threshold does not represent probability, expected performance or a statistically defined overbought/oversold level. It is a user-controlled signal filter.
LIQUIDITY PRESSURE CONFIRMATION
Liquidity Pressure Confirmation optionally connects the pressure module directly to the Bull and Bear Cycle signals.
Three modes are available:
Off
Liquidity Pressure does not affect Bull or Bear signals.
This is the default setting.
Same Direction
A Bull Cycle cross is only accepted when Liquidity Pressure is above zero.
A Bear Cycle cross is only accepted when Liquidity Pressure is below zero.
This mode requires pressure to agree with the direction of the Cycle signal.
Zero Cross
A Bull Cycle cross is only accepted when Liquidity Pressure crosses above zero on the same confirmed candle.
A Bear Cycle cross is only accepted when Liquidity Pressure crosses below zero on the same confirmed candle.
This is the most restrictive mode because both the Cycle cross and Liquidity Pressure zero-line cross must occur together.
Liquidity Pressure Confirmation is a directional filter. It does not represent probability, expected accuracy or guaranteed signal quality.
DIVERGENCES
The indicator detects divergence by comparing confirmed price pivots with nearby confirmed Cycle Line pivots.
Regular bullish divergence occurs when price forms a lower low while the matched oscillator structure forms a higher low.
Regular bearish divergence occurs when price forms a higher high while the matched oscillator structure forms a lower high.
Hidden divergence can optionally be enabled.
Hidden bullish divergence compares a higher price low with a lower oscillator low.
Hidden bearish divergence compares a lower price high with a higher oscillator high.
Regular and hidden divergences are calculated independently so enabling hidden divergences does not replace the regular divergence calculation.
Regular Bull, Regular Bear, Hidden Bull and Hidden Bear divergence colors can be configured independently.
PIVOT MATCHING
Price pivots and oscillator pivots do not always occur on exactly the same candle.
The Max Price/Osc Pivot Gap setting determines how far apart a confirmed price pivot and oscillator pivot may be while still being treated as a matched swing.
The divergence engine stores several recent matched pivot pairs rather than comparing only the immediately previous swing. This allows the detector to identify divergence structures that may span an intermediate pivot.
Min Bars Between Price Pivots and Max Bars Between Price Pivots control the permitted distance between the two price swings being compared.
DIVERGENCE PRESETS
Aggressive
Uses shorter pivots and allows a larger price-to-oscillator pivot gap. This generally produces more divergence detections and reacts more quickly.
Balanced
The default profile and intended general-purpose setting.
Conservative
Uses stronger pivots, requires wider swing separation and allows a smaller price-to-oscillator matching gap. This generally produces fewer but more structurally developed divergence detections.
Custom
Uses the manually configured Pivot Length, Min Bars, Max Bars and Max Price/Osc Pivot Gap values.
ZERO-LINE CONTEXT
Require Zero-Line Context is an optional divergence filter.
When enabled:
Bullish divergences require both oscillator pivot values to be at or below zero.
Bearish divergences require both oscillator pivot values to be at or above zero.
This can be used to restrict divergence detection to the corresponding side of the oscillator.
IMPORTANT PIVOT CONFIRMATION BEHAVIOUR
Divergence detection uses confirmed pivots.
A pivot cannot be known when the actual swing high or swing low first occurs. It becomes confirmed only after the required number of bars to the right of that swing have completed.
For example, with Pivot Length 4, a pivot is confirmed four bars after the historical pivot candle.
Divergence lines are drawn between the actual historical pivot locations after confirmation.
Their historical placement therefore does not mean the divergence was available on the earlier pivot candle.
Any divergence alert occurs when the divergence becomes confirmed, not when the earlier pivot originally formed.
This confirmation delay is an inherent part of pivot-based divergence detection.
TARGET / STOP STATISTICS
The tables provide simplified historical Target/Stop outcome statistics for confirmed Cycle signals and confirmed divergence events.
They are not TradingView Strategy Tester results and do not simulate actual orders.
For a confirmed Bull Cycle signal:
The confirmation-bar close is used as the reference price.
The Target is placed above that reference price according to the Target % input.
The Stop is placed below the reference price according to the Stop % input.
For a confirmed Bear signal, the directions are reversed.
Divergence outcomes use the same principle with the separate Div Target % and Div Stop % settings.
Outcome checking begins on the bar after the signal or divergence confirmation.
Price movement occurring earlier on the confirmation candle is therefore not used to determine the result.
Every confirmed event is tracked independently. A new event does not overwrite an unresolved previous event.
If both the Target and Stop are touched during the same candle, the Stop is counted first.
This is a conservative assumption because the script does not have access to the exact intrabar price sequence from standard OHLC bars.
T represents Target reached.
S represents Stop reached.
The percentage shown beside these counts represents:
Targets / (Targets + Stops) x 100
Only resolved events are included in that percentage. Events that have not yet reached either level remain unresolved and are not counted as either Target or Stop.
STATISTICS LIMITATIONS
The Target/Stop statistics are simplified historical measurements.
They do not model:
Commissions
Spread
Slippage
Liquidity
Position sizing
Order execution
Market impact
Partial fills
Funding costs
Intrabar execution sequence
They should therefore not be interpreted as strategy profitability, expected win probability or future performance.
Historical outcomes do not imply future results.
ALERTS
Alerts are available for:
Bullish Cycle Cross
Bearish Cycle Cross
Bullish Divergence
Bearish Divergence
Liquidity Pressure crossing above zero
Liquidity Pressure crossing below zero
Cycle and Liquidity Pressure alerts use confirmed bars.
When Liquidity Pressure Confirmation is enabled, Bull and Bear Cycle alerts follow the filtered Bull/Bear signal conditions.
Divergence alerts depend on confirmed pivots and therefore include the pivot confirmation delay described above.
HOW TO USE
A practical workflow is to use the Cycle Engine for timing, Liquidity Pressure for directional context and divergence for potential disagreement between price and momentum.
Example bullish workflow:
Look for improving or positive Liquidity Pressure.
Watch for bullish regular or hidden divergence.
Wait for a confirmed bullish Cycle Line cross.
Optionally enable Same Direction Liquidity Pressure Confirmation if Bull signals should only occur while pressure is positive.
Use Zero Cross mode if a Bull signal should only occur when both the Cycle cross and Liquidity Pressure transition above zero happen together.
The optional Threshold Filter can further restrict Bull crosses to deeper negative oscillator conditions.
Example bearish workflow:
Look for deteriorating or negative Liquidity Pressure.
Watch for bearish regular or hidden divergence.
Wait for a confirmed bearish Cycle Line cross.
Optionally enable Same Direction Liquidity Pressure Confirmation if Bear signals should only occur while pressure is negative.
Use Zero Cross mode if a Bear signal should only occur when both the Cycle cross and Liquidity Pressure transition below zero happen together.
The optional Threshold Filter can further restrict Bear crosses to higher positive oscillator conditions.
These components do not need to align on every setup unless the user deliberately enables the available confirmation filters.
TIMEFRAMES
The indicator can be used on different chart timeframes, but the default settings are primarily intended as a general-purpose starting point around the 15-minute to 1-hour range.
15-minute charts provide a relatively responsive balance between Cycle signals, Liquidity Pressure and swing structure.
1-hour charts generally produce slower and cleaner pivot structures.
Lower timeframes such as 1-minute to 5-minute charts usually contain considerably more market noise and may require different divergence or smoothing settings.
Higher timeframes produce fewer signals and substantially longer pivot-confirmation delays.
IMPORTANT SETTINGS
Smoothing Length
Controls smoothing of the Liquidity Pressure calculation. Higher values produce a smoother and slower histogram.
Scale
Changes the displayed magnitude of Liquidity Pressure.
Base Length
Controls the adaptive baseline used by the Cycle Engine.
Slow Length
Controls smoothing of the primary Cycle calculation.
Adaptation Lookback
Controls the lookback used to adjust adaptive EMA responsiveness.
Fast Lag / Slow Lag
Control the adaptive response characteristics of the Cycle Line and Signal Line.
Ribbon Smooth
Adds final EMA smoothing to the displayed Cycle lines.
Threshold Filter
Optionally requires Cycle crosses to occur beyond the selected positive or negative threshold.
Liquidity Pressure Confirmation
Determines whether Liquidity Pressure is ignored, must already agree with signal direction, or must cross zero on the same candle as the Cycle signal.
Pivot Length
Controls pivot confirmation strength. Larger values require more bars to confirm a swing and therefore increase confirmation delay.
Max Price/Osc Pivot Gap
Controls how far apart price and oscillator pivots may occur while still being matched.
Regular Bull / Regular Bear Color
Control the colors of regular divergence lines.
Hidden Bull / Hidden Bear Color
Control the colors of hidden divergence lines.
Target % / Stop %
Define the virtual outcome levels used by the Cycle signal statistics.
Div Target % / Div Stop %
Define the virtual outcome levels used by the divergence statistics.
LIMITATIONS
Liquidity Pressure is calculated from OHLCV data and is not true order-flow or bid/ask delta.
Volume availability and quality vary between markets and data providers.
Adaptive smoothing introduces some lag.
Pivot-based divergences require future bars for confirmation.
Divergence lines are drawn back to the historical pivot positions only after those pivots have been confirmed.
Divergence does not necessarily produce a reversal.
Current market conditions can differ substantially from historical conditions.
Target/Stop tables are simplified analytical statistics and are not execution-based backtests.
Same Direction and Zero Cross confirmation modes reduce the number of Cycle signals and can cause signals visible with confirmation Off to disappear.
The indicator should be used as an analytical tool rather than as a prediction or guarantee of future market direction.
CODE ORIGIN AND ATTRIBUTION
The adaptive cycle foundation of Liquidity Wave Index was developed from the open-source Wave Oscillator by Claye Weight, used under the Mozilla Public License 2.0.
Liquidity Wave Index substantially extends that foundation with an OHLCV-based normalized pressure module, optional Liquidity Pressure signal confirmation, confirmed-bar signal handling, rewritten pivot-based divergence detection, price/oscillator pivot matching, independent regular and hidden divergence processing, configurable divergence presets, separate divergence colors, independent Target/Stop outcome tracking and configurable statistics tables.
The complete source code of this publication is provided openly in accordance with the applicable open-source licence.
Индикатор

Wave-Ocean Trend Wave-Ocean Trend
Description
Wave-Ocean Trend is a momentum indicator based on a combination of Exponential Moving Averages (EMA), mean deviation, and Simple Moving Average (SMA).
The indicator is designed to help visualize market direction and momentum changes through the relationship between two waves:
* X1 — Aqua: the fast wave, designed to respond to changes in momentum.
* X2 — Orange: the smoothed wave, used as a reference for identifying changes in market momentum.
## How to Use
🌊 Bullish Crossover
When X1 (Aqua) crosses above X2 (Orange), an Aqua ball appears.
This event represents a potential shift in momentum to the upside and can be used as a reference when analyzing possible bullish movements.
🔻 Bearish Crossover
When **X1 (Aqua)** crosses below **X2 (Orange)**, a **red-orange ball** appears.
This event represents a potential shift in momentum to the downside and can be used as a reference when analyzing possible bearish movements.
Reference Zones
The indicator includes two main reference zones:
* Above +60: elevated momentum zone.
* Below -60: negative momentum zone.
* Between +60 and -60: intermediate momentum zone.
These zones should not be interpreted independently as automatic buy or sell signals. They are intended to provide additional context when evaluating momentum.
## X1-X2 Area
The area between X1 and X2 helps visualize the difference between the two waves:
* Green: X1 is above X2.
* Red: X1 is below X2.
A wider separation between the waves indicates a larger momentary difference between fast momentum and its smoothed reference.
Settings
The indicator has two main parameters:
Fast Wave ⚡ — Default: 10
Controls the responsiveness of the fast wave.
Slow Wave 🐌 — Default: 21
Controls the smoothing of the reference wave.
Lower values may make the indicator more responsive to market changes, while higher values generally produce a smoother reading.
Suggested Use
Wave-Ocean Trend can be used together with:
* Market structure
* Support and resistance
* Higher-timeframe trend
* Volume
* Price action
* Risk management
One possible approach is to identify the broader trend on a higher timeframe and then use Wave-Ocean Trend crossovers on a lower timeframe to evaluate momentum within that context.
Important
Wave-Ocean Trend is a **technical analysis tool and does not guarantee financial results.
No crossover should be considered, by itself, a recommendation to buy or sell. Signals may occur during consolidation, choppy markets, or periods of high volatility and should be evaluated within the broader market context.
Use proper risk management and perform your own testing before using the indicator in live trading.
Индикатор

Dual Shock SPMA | NAL1. Overview
Dual Shock SPMA | NAL is a dual-memory trend indicator designed to separately track how significant bullish and bearish price shocks are developing through time.
Unlike the standard Shock Percentile Moving Average, the Dual Shock SPMA maintains two independent adaptive baselines. Positive shocks update the Bull Shock SPMA, while negative shocks update the Bear Shock SPMA.
This creates two separate memories of where statistically stronger directional moves have occurred, allowing the indicator to evaluate the relationship between bullish and bearish shock structure rather than treating all large movements as one stream.
2. Calculation
The indicator begins by calculating the percentage return of the selected source and ranking the absolute magnitude of that return against recent history.
Ret = not na(source ) ? (source - source ) / math.max(math.abs(source ), syminfo.mintick) : 0.0
ShockRank = ta.percentrank(math.abs(Ret), percentrank_lookback)
Because the percentile calculation uses the absolute return, bullish and bearish shocks are ranked against the same magnitude distribution.
The direction of the return then determines which baseline is allowed to update.
BullGate = Ret > 0.0 and not na(ShockRank) and ShockRank > percentile_gate
BearGate = Ret < 0.0 and not na(ShockRank) and ShockRank > percentile_gate
A qualifying positive shock updates only the Bull Shock SPMA. A qualifying negative shock updates only the Bear Shock SPMA. Otherwise, each baseline retains its previous value.
BullMA := na(BullMA ) ? emaValue : BullGate ? emaValue : BullMA
BearMA := na(BearMA ) ? emaValue : BearGate ? emaValue : BearMA
Each shock stream then maintains its own directional memory.
A rising Bull SPMA means significant positive shocks are occurring at progressively higher price levels. A rising Bear SPMA means significant negative shocks are also occurring at progressively higher levels. The inverse applies when either baseline is declining.
BullTrend := BullSPMA > BullSPMA ? 1 : BullSPMA < BullSPMA ? -1 : nz(BullTrend , 0)
BearTrend := BearSPMA > BearSPMA ? 1 : BearSPMA < BearSPMA ? -1 : nz(BearTrend , 0)
The final state requires agreement between both shock memories.
For a bullish regime, both baselines must be trending upward and the Bull SPMA must remain above the Bear SPMA. For a bearish regime, both must be trending downward and their ordering must reverse.
An optional midpoint gate can additionally require price to remain aligned with the center of the dual-shock structure.
ShockMid = math.avg(BullSPMA, BearSPMA)
Long = BullTrend == 1 and BearTrend == 1 and (not UseMidGate or close > ShockMid) and BullSPMA > BearSPMA
Short = BearTrend == -1 and BullTrend == -1 and (not UseMidGate or close < ShockMid) and BullSPMA < BearSPMA
3. Key Features
Separate bullish and bearish shock-memory baselines.
Absolute-return percentile ranking for directly comparable shock magnitude.
Event-driven updates restricted to statistically stronger price movements.
Independent directional memory for positive and negative shocks.
Dual-baseline agreement and relative-position logic.
Optional price midpoint confirmation.
Optional neutral state during unresolved shock structure.
Shock-memory spread visualization and state-based candle coloring.
4. Use
Dual Shock SPMA is designed to analyze how significant positive and negative price events are evolving relative to one another.
Rather than treating volatility as a single undifferentiated stream, the indicator preserves separate memories for each side of the market. This makes the relationship between bullish and bearish shock structure itself part of the signal.
The spread between the two baselines visually represents this evolving relationship, while the midpoint provides a central reference for the combined shock structure.
Dual Shock SPMA is designed as a specialized structural component within a complete strategy framework. Its role is to identify when independently maintained bullish and bearish shock memories begin establishing directional agreement, providing a distinct layer of information about the underlying development of larger price movements.
Индикатор

Cumulative Delta Divergence Suite## Cumulative Delta Divergence Suite
The underlying cumulative-delta calculation and CDV candle construction are adapted from “Cumulative Delta Volume” by LonesomeTheBlue, licensed under MPL 2.0. This version adds independently developed divergence detection, multi-factor scoring, higher-timeframe analysis, absorption and exhaustion conditions, alerts, timeframe presets, and historical target/stop outcome analysis.
### Overview
Cumulative Delta Divergence Suite is a multi-module volume-pressure analysis indicator built around a cumulative delta oscillator.
The script compares confirmed price pivots with confirmed cumulative-delta pivots and combines divergence analysis with configurable scoring, higher-timeframe context, absorption conditions, Z-score extreme zones, timeframe presets, alerts, and simplified historical target/stop outcome tables.
The purpose of combining these components is to examine disagreement between price structure and directional volume pressure from several related perspectives. The modules are not simply displayed independently. Divergence magnitude, delta momentum, relative volume, trend alignment, higher-timeframe agreement, and pivot spacing can contribute to a shared scoring and classification process.
The displayed conditions are analytical observations. They do not predict that price will reverse, continue, or reach a particular level.
### Cumulative delta calculation
Standard chart volume does not directly separate executed buying volume from executed selling volume.
The cumulative-delta calculation used by this script derives directional volume from each candle's:
* total volume;
* body size;
* upper wick;
* lower wick;
* closing direction.
The resulting directional volume value is accumulated over time to construct the cumulative delta series.
The oscillator is displayed as candles in a separate pane. Users can display either the raw cumulative delta candles or an internally calculated Heikin-Ashi representation.
The Heikin-Ashi option smooths the oscillator structure, but this additional averaging can delay changes and alter the location of oscillator pivots.
The calculation is derived from chart OHLCV data. It does not use exchange bid/ask transaction classifications, footprint data, or order-book data.
### Divergence framework
The script compares confirmed pivots in price with confirmed pivots in the cumulative delta oscillator.
It identifies four divergence structures:
* Regular bullish divergence occurs when price forms a lower low while cumulative delta forms a higher low.
* Regular bearish divergence occurs when price forms a higher high while cumulative delta forms a lower high.
* Hidden bullish divergence occurs when price forms a higher low while cumulative delta forms a lower low.
* Hidden bearish divergence occurs when price forms a lower high while cumulative delta forms a higher high.
Regular divergence highlights disagreement between a new price extreme and the cumulative-delta structure.
Hidden divergence highlights a different form of structural disagreement that traders commonly examine within an existing trend.
Neither type establishes what price will do afterward.
### How the modules work together
The script is designed as a cumulative-delta analysis workflow rather than a collection of unrelated indicators.
Divergence provides the primary structural condition by comparing price pivots with cumulative-delta pivots.
The scoring system then evaluates additional characteristics surrounding that divergence, including divergence magnitude, recent delta-momentum change, relative volume, trend alignment, higher-timeframe agreement, and the distance between the compared pivots.
Absorption conditions examine bars where comparatively strong directional volume occurs with limited price progress under the selected volume, range, body, and confluence filters.
Z-score zones identify cumulative-delta readings that are unusually high or low relative to their recent distribution.
Higher-timeframe analysis provides broader confirmed divergence, trend, and volume context.
These components therefore perform different roles within the same analysis process rather than simply duplicating one another.
### How to use the indicator
Apply the indicator to a symbol that provides usable volume data.
The cumulative delta candles appear in a separate pane below the price chart.
A practical workflow is:
1. Review the broader price trend and market structure.
2. Observe whether cumulative delta generally confirms or disagrees with price.
3. Wait for a confirmed regular or hidden divergence condition.
4. Inspect the optional price and oscillator divergence lines to see which pivots were compared.
5. Review the divergence strength score and A+, B, or C category.
6. Check whether confirmed higher-timeframe context agrees with the current structure.
7. Review nearby absorption conditions and Z-score extreme zones.
8. Examine support, resistance, volatility, liquidity, and candle structure separately.
9. Treat all markers as analytical conditions rather than automatic trade instructions.
10. Test settings, alerts, and historical outcome assumptions on the intended symbol and timeframe.
### Regular bullish divergence
Regular bullish divergence is confirmed when:
* price forms a lower confirmed low;
* cumulative delta forms a higher confirmed low.
Price has therefore reached a new lower pivot while the cumulative-delta oscillator has not produced a corresponding lower pivot.
Traders may examine this disagreement together with market structure, support, momentum, cumulative-delta behaviour after confirmation, Z-score context, absorption conditions, and higher-timeframe structure.
The condition can fail, and price can continue lower after confirmation.
### Regular bearish divergence
Regular bearish divergence is confirmed when:
* price forms a higher confirmed high;
* cumulative delta forms a lower confirmed high.
Price has therefore reached a new higher pivot while the cumulative-delta oscillator has not produced a corresponding higher pivot.
Traders may examine this disagreement together with market structure, resistance, momentum, cumulative-delta behaviour after confirmation, Z-score context, absorption conditions, and higher-timeframe structure.
The condition can fail, and price can continue higher after confirmation.
### Hidden bullish divergence
Hidden bullish divergence is confirmed when:
* price forms a higher confirmed low;
* cumulative delta forms a lower confirmed low.
This structure is commonly examined within an existing upward trend because price retains a higher low while cumulative delta makes a deeper retracement.
It does not guarantee that the upward trend will continue.
### Hidden bearish divergence
Hidden bearish divergence is confirmed when:
* price forms a lower confirmed high;
* cumulative delta forms a higher confirmed high.
This structure is commonly examined within an existing downward trend because price retains a lower high while cumulative delta makes a stronger retracement.
It does not guarantee that the downward trend will continue.
### Raw and Heikin-Ashi CDV candles
When Heikin-Ashi CDV candles are disabled, the script uses the raw cumulative delta candle values.
When they are enabled, the script applies an internal Heikin-Ashi transformation to the cumulative delta series.
This affects only the oscillator displayed by the indicator. It does not convert the main TradingView price chart to Heikin-Ashi candles.
The smoothed representation can make broader cumulative-delta structure easier to inspect, but it may also delay short-term changes and alter oscillator pivot locations.
### Pivot settings and confirmation delay
Pivot Left controls how many earlier bars participate in identifying a pivot.
Pivot Right controls how many later bars must pass before that pivot becomes confirmed.
Higher pivot values generally produce fewer pivots, filter more short-term movement, and confirm conditions later.
Lower pivot values generally produce more pivots and react more quickly, but they are also more sensitive to short-term movement.
A pivot-based divergence is not known on the original pivot bar.
The script must wait for the configured number of Pivot Right bars before the pivot can be confirmed.
After confirmation, divergence markers and optional connecting lines are drawn at the original pivot location so users can visually inspect the price-versus-CDV structure.
For example, when Pivot Right is 5, five subsequent bars are required before the pivot is confirmed.
Consequently, a historical divergence marker appears on the earlier pivot bar even though the condition only became known several bars later.
Alerts for pivot-based divergences occur after confirmation, not on the earlier pivot bar.
### Divergence lines
The script can draw oscillator pivot-to-pivot lines in the indicator pane and corresponding price pivot-to-pivot lines on the main chart.
These lines show the exact pair of pivots used for the divergence comparison.
For example, regular bullish divergence connects two price lows where the newer price pivot is lower while the corresponding cumulative-delta pivot is higher.
The lines can be disabled when a cleaner chart is preferred.
### Divergence strength score
The optional divergence strength value measures the relative displacement between the compared price pivots and cumulative-delta pivots.
It is derived from the magnitude of the price movement and the magnitude of the oscillator movement between the compared pivots.
It is not a probability, win rate, or forecast.
The Minimum Divergence Strength setting can suppress conditions whose calculated magnitude is below the selected value.
### Composite scoring
Each confirmed divergence can receive a configurable composite score.
The score combines several measurements:
* divergence strength;
* recent change in smoothed delta momentum;
* volume relative to its recent average;
* alignment with the script's EMA-based trend state;
* agreement with confirmed higher-timeframe divergence context;
* distance between the compared pivots.
Each component performs a different function.
Divergence strength measures the magnitude of the structural disagreement.
Delta momentum examines recent directional change in the smoothed delta series.
Relative volume measures participation around the evaluated pivot.
Trend alignment provides directional price context.
Higher-timeframe agreement measures whether the selected confirmed HTF divergence context supports the same side.
Pivot spacing distinguishes closely grouped pivots from structures developing across a wider interval.
Users can adjust the contribution of these components through the scoring weights.
The active weights are normalized before the final composite value is calculated.
The score organizes conditions according to the selected model. It is not a prediction of future performance.
### Score categories
The script assigns A+, B, or C categories according to the configured score thresholds.
These categories are internal classifications.
They are not probabilities, win rates, accuracy measurements, guarantees, or independently validated performance rankings.
An A+ category means only that the condition reached the highest configured score range.
A B category means that the condition reached the middle configured range.
A C category represents conditions below the B threshold that remain eligible under the selected filter.
The Minimum Grade setting can suppress conditions below the selected category.
### Score transformation
The Score Boost Power applies a nonlinear transformation to the composite score before the A+, B, and C thresholds are evaluated.
Lower values compress scores upward and therefore allow higher categories to occur more frequently.
Higher values keep transformed scores closer to the underlying composite values and make the upper categories more selective.
This setting changes the script's internal classification behaviour. It does not increase the probability that a condition will succeed.
### Adaptive score scaling
When Adaptive Grade Scaling is enabled, the script compares the current raw composite score with the recent distribution of composite scores.
It uses a rolling mean and standard deviation to place the current value in the context of recently observed values before the category thresholds are applied.
When adaptive scaling is disabled, category thresholds are applied to the unscaled composite score.
Because adaptive scaling is relative to recent observations, the same general type of structure can receive different categories under different market conditions.
### Higher-timeframe context
The script can evaluate divergence context from a user-selected higher timeframe.
The HTF module calculates its pivot structure, trend context, and relative-volume component using confirmed data from the requested higher timeframe.
The script uses the last fully closed higher-timeframe information rather than relying on a still-forming HTF candle.
This means higher-timeframe information becomes available only after the required higher-timeframe data has been confirmed.
The HTF module identifies regular bullish, regular bearish, hidden bullish, and hidden bearish cumulative-delta divergence structures.
Its scoring process combines HTF divergence strength with HTF trend context and HTF volume participation.
Higher-timeframe conditions can be displayed separately and can also contribute to the chart-timeframe composite score.
An independent HTF Minimum Grade setting determines which higher-timeframe categories are displayed.
Because confirmed HTF data is used, higher-timeframe conditions can appear later than chart-timeframe conditions.
Higher-timeframe context should therefore be interpreted as broader confirmed information rather than an earlier signal.
### Absorption conditions
The absorption module searches for bars where comparatively large directional delta occurs while price progress remains constrained under the selected filters.
The module evaluates:
* directional delta relative to its recent average;
* volume relative to its recent average;
* candle range relative to its average;
* candle body as a proportion of the complete range;
* an optional close opposing the delta direction;
* optional proximity to a recently graded divergence.
A bullish absorption condition is associated with comparatively strong negative delta while downward price progress remains limited under the configured filters.
A bearish absorption condition is associated with comparatively strong positive delta while upward price progress remains limited under the configured filters.
The module is derived from chart OHLCV information. It does not prove that passive limit orders absorbed aggressive market orders.
The markers should therefore be interpreted as absorption-style analytical conditions rather than direct measurements of order-book behaviour.
### Absorption confluence and filtering
Absorption conditions can be filtered using recent divergence proximity, minimum divergence category, cooldown bars, volume thresholds, delta thresholds, range thresholds, body-to-range limits, and optional opposite-close confirmation.
When divergence confluence is enabled, the absorption condition must occur within the configured number of bars following a qualifying divergence.
The absorption grade displayed with a condition is derived from the nearby qualifying divergence category.
These filters change which conditions are displayed. They do not guarantee a particular subsequent price outcome.
### Z-score extreme zones
The script calculates a Z-score from the cumulative-delta oscillator's rolling mean and standard deviation.
A lower extreme zone appears when the oscillator moves below the selected negative Z-score threshold.
An upper extreme zone appears when the oscillator moves above the selected positive threshold.
These zones identify values that are unusually high or low relative to the oscillator's recent statistical distribution.
The Z-Score Length determines how much history contributes to the rolling mean and standard deviation.
The Z-Score Threshold determines how many standard deviations the oscillator must move from its rolling mean before an extreme zone is displayed.
Higher thresholds produce fewer extreme zones. Lower thresholds produce more frequent zones.
An extreme value does not establish that buying or selling pressure is exhausted and does not establish that price will reverse.
Extreme readings can persist or become more extreme.
### Using divergence, absorption, and Z-score context together
The modules provide different forms of information.
Divergence compares price pivot structure with cumulative-delta pivot structure.
Absorption examines strong directional delta occurring with constrained price progress.
Z-score analysis measures whether cumulative delta is unusually high or low relative to recent values.
Higher-timeframe analysis provides broader confirmed structural context.
Composite scoring organizes divergence conditions according to multiple characteristics of the setup.
The purpose of combining these modules is to provide several related perspectives on price-versus-volume-pressure disagreement without treating any one module as a complete trading system.
Confluence between modules provides additional analytical context but does not automatically validate a condition or guarantee reversal or continuation.
### Timeframe presets
The script contains lower-, medium-, and higher-timeframe preset bundles.
The presets adjust selected settings including:
* pivot lengths;
* score transformation power;
* adaptive score scaling;
* Heikin-Ashi CDV display;
* absorption averaging lengths;
* absorption thresholds;
* absorption confluence lookback.
The presets are intended as starting configurations.
They are not automatically optimized for the active symbol and have not been fitted to guarantee particular historical results.
Users can disable Apply Timeframe Preset to configure the corresponding settings manually.
### Cooldown settings
Independent cooldown controls can reduce repeated conditions of the same type.
Separate cooldown settings are available for regular divergences, hidden divergences, higher-timeframe divergences, absorption conditions, and Z-score extreme conditions.
A value of zero disables the relevant cooldown.
Higher cooldown values reduce repeated same-direction markers but can also suppress nearby structures that would otherwise qualify.
### Historical target/stop outcome tables
Optional tables provide a simplified historical outcome study for confirmed divergence and absorption conditions.
When a condition is confirmed, the script records the confirmation-bar closing price and calculates a fixed percentage target and fixed percentage stop level.
The target and stop percentages are user configurable.
Outcome evaluation begins on the bar after the condition is confirmed.
This prevents price movement that occurred earlier within the confirmation bar from being counted as a subsequent target or stop event.
Each confirmed condition is tracked independently.
If another qualifying condition appears before an earlier condition has resolved, the newer condition does not replace the earlier unresolved condition in the historical study.
For each tracked condition, the script records whether the target or stop is reached first.
If both the target and stop are touched during the same evaluation candle, standard OHLC chart data does not reveal which level was reached first. In this situation the script uses a conservative convention and counts the stop as occurring first.
Separate tables are available for:
* regular bullish divergence;
* regular bearish divergence;
* hidden bullish divergence;
* hidden bearish divergence;
* bullish absorption;
* bearish absorption.
The tables display the number of target-first outcomes, stop-first outcomes, and the resulting target-first percentage for the available chart history.
These tables are intended as a basic chart-based comparison tool.
They are not TradingView Strategy Tester results and are not a complete strategy backtest.
They do not model commissions, slippage, bid/ask spread, realistic order execution, position sizing, portfolio equity, liquidity, partial fills, or complete intrabar price sequencing.
Historical results depend on the symbol, timeframe, available chart history, target and stop distances, filters, indicator settings, and available volume data.
The table percentages describe only the simplified historical study produced under those settings. They do not imply future performance.
### Evaluation target and stop lines
The script can display the fixed target and stop levels associated with the most recently confirmed qualifying condition.
The Target and Stop labels remain anchored at the left side of their respective lines. While the outcome is unresolved, the lines extend to the right. Once either the target or stop is reached, the lines end at the resolution bar and remain visible until a newer qualifying condition replaces them.
These levels use the same configurable percentage distances as the historical outcome study and are provided for visual evaluation rather than as trading recommendations.
Only the most recent Target/Stop pair is displayed to limit chart clutter, while historical conditions continue to be tracked independently by the outcome tables.
### Alerts
Alerts are available for configured divergence, absorption, and exhaustion conditions.
Pivot-based regular and hidden divergence alerts occur only after the required Pivot Right bars have confirmed the pivot.
A+ divergence alerts require the underlying divergence to qualify for the A+ category.
Absorption conditions can depend on values from the current chart bar and can therefore change while that bar is still forming.
Z-score extreme conditions can likewise change as the current chart bar develops.
Users who require closed-bar confirmation should configure their TradingView alert frequency accordingly.
Higher-timeframe divergence context uses confirmed higher-timeframe information.
### What makes the implementation distinct
The script extends a cumulative-delta framework into a broader price-versus-volume-pressure analysis workflow.
Its distinguishing structure includes:
* cumulative delta candle visualization;
* optional internal Heikin-Ashi smoothing;
* regular and hidden pivot-based price/CDV divergence analysis;
* configurable divergence strength filtering;
* multi-factor divergence scoring;
* user-adjustable scoring weights;
* nonlinear score transformation;
* adaptive score scaling;
* A+, B, and C classification and filtering;
* confirmed higher-timeframe divergence analysis;
* higher-timeframe trend and volume context;
* absorption conditions that can be linked to recently graded divergences;
* Z-score extreme analysis;
* timeframe-based parameter presets;
* independent cooldown controls;
* independent tracking of historical target/stop outcomes;
* configurable target and stop evaluation levels;
* divergence, absorption, exhaustion, and grade-based alerts.
The purpose of this combination is to evaluate price-versus-cumulative-delta disagreement using several related measurements within a single workflow.
The divergence module identifies the structural event. The score measures characteristics of that structure and its surrounding context. Higher-timeframe analysis supplies broader confirmed context. Absorption examines directional volume occurring with limited price progress. Z-score analysis identifies statistically unusual oscillator readings. The historical tables provide a simplified way to inspect what happened after past qualifying conditions.
This integration is the reason the components are combined rather than published merely as separate common indicators placed together.
### Limitations
Cumulative delta in this script is derived from candle structure and chart volume rather than exchange bid/ask transaction classifications.
Volume quality and interpretation vary between exchanges, brokers, instruments, and symbols.
Pivot-based divergences are delayed by the selected Pivot Right value.
Confirmed pivot markers and divergence lines are drawn on the earlier pivot location after confirmation, so historical marker placement is earlier than the time at which the condition became known.
Heikin-Ashi smoothing changes the cumulative-delta oscillator structure and can introduce additional delay.
Higher-timeframe analysis waits for confirmed HTF information, which can delay HTF conditions.
Divergence conditions can fail and price can continue in the same direction after a divergence has been confirmed.
Hidden divergence does not guarantee trend continuation.
Absorption conditions are OHLCV-based analytical approximations and do not directly identify passive order-book absorption.
Z-score extremes can persist or become more extreme.
Composite scores and A+, B, and C categories are model outputs, not probabilities, win rates, accuracy measurements, or independently validated performance rankings.
Adaptive scaling can change classifications as the recent score distribution changes.
Lower timeframes can produce more frequent and noisier conditions.
Timeframe presets are starting configurations and are not automatically optimized for a symbol.
Historical target/stop tables are simplified outcome studies and do not represent complete strategy backtests.
Historical target-first percentages depend heavily on the selected target/stop distances, indicator settings, symbol, timeframe, available history, and market conditions.
The indicator does not model commissions, slippage, spread, liquidity, or realistic execution.
No divergence, score category, absorption condition, Z-score reading, target/stop outcome, or combination of these elements guarantees future market behaviour.
The indicator should not be used as the sole basis for a trading decision.
This script is an analytical tool and does not provide financial advice or guaranteed trading outcomes. Индикатор

MACD Pullback Validation with Divergence Filters [algotim]MACD Pullback Validation with Divergence Filters is a momentum confirmation indicator designed to identify continuation opportunities after temporary pullbacks rather than generating signals from every MACD crossover.
Instead of relying on a single event, the script evaluates multiple stages of market behavior. It begins by detecting pullbacks within an existing momentum cycle, waits for momentum recovery, confirms that price and the MACD histogram are no longer weakening, and optionally verifies that the setup occurs near significant price locations using pivot-derived support/resistance levels or Bollinger Band extremes.
The objective is to reduce low-quality MACD signals by requiring several independent conditions to align before a bullish or bearish signal is displayed.
Problem Statement
Traditional MACD crossover signals frequently occur during ranging markets or immediately after short-lived momentum fluctuations. Likewise, divergence signals alone often appear too early and do not necessarily indicate that momentum has already shifted back in the anticipated direction.
This indicator addresses that limitation by requiring multiple confirmation stages rather than treating each condition as an independent trading signal.
Instead of responding to isolated events, it evaluates whether a pullback has occurred, whether momentum is rebuilding, whether a recent divergence supports the move, and whether price is located in an area where reversals may be more meaningful.
Methodology
The analytical framework consists of several sequential validation layers.
First, MACD crossover events occurring above or below the zero line are monitored to identify temporary pullbacks within an existing momentum cycle. These crossover events establish the recent pullback state.
Next, the script monitors the MACD histogram. Bullish momentum requires the histogram to remain above zero while increasing relative to the previous bar. Bearish momentum requires the histogram to remain below zero while decreasing.
The indicator then waits for the MACD line itself to cross the zero line, treating this as evidence that momentum has shifted back in the direction of the prevailing move.
Histogram divergence is calculated using confirmed pivot highs and pivot lows. Regular bullish divergence requires price to form a lower low while the histogram forms a higher low. Regular bearish divergence requires price to form a higher high while the histogram forms a lower high. Hidden divergence calculations are also available for users who wish to visualize continuation-type divergence.
Finally, optional contextual filters may be enabled.
The Support/Resistance filter checks whether the current price is interacting with recently confirmed pivot-based levels.
The Bollinger Band filter requires bullish setups to occur after closing below the lower band and bearish setups after closing above the upper band, helping identify momentum reversals from statistically extended price conditions.
Signals are generated only after every enabled validation layer has been satisfied.
Signal Workflow
Bullish workflow
1. Detect a recent bearish MACD crossover occurring above the zero line to identify a pullback.
2. Confirm a regular bullish MACD histogram divergence using pivot comparisons.
3. Require the MACD histogram to begin strengthening.
4. Wait for the MACD line to cross back above the zero line.
5. Optionally require interaction with recent pivot-based support.
6. Optionally require price to close below the lower Bollinger Band.
7. Display a bullish signal.
Bearish workflow
1. Detect a recent bullish MACD crossover occurring below the zero line.
2. Confirm a regular bearish MACD histogram divergence.
3. Require bearish histogram acceleration.
4. Wait for the MACD line to cross below the zero line.
5. Optionally require interaction with recent pivot-based resistance.
6. Optionally require price to close above the upper Bollinger Band.
7. Display a bearish signal.
Why This Indicator Is Different
Many MACD indicators generate signals immediately after crossovers, while divergence indicators typically evaluate price and momentum independently.
This script integrates these concepts into a sequential validation framework where each condition serves a different analytical purpose.
The pullback logic identifies temporary counter-trend momentum.
The histogram evaluates whether momentum is rebuilding.
The zero-line crossover confirms broader momentum alignment.
Divergence provides evidence that momentum and price are no longer moving in agreement.
Optional pivot interaction and Bollinger Band filters add market-location confirmation before a signal is produced.
Rather than displaying every crossover or every divergence, the indicator waits until multiple independent conditions align before producing a trading signal.
Inputs
The script includes configurable parameters for:
* MACD fast, slow, and signal periods
* Pullback lookback window
* Divergence pivot lengths
* Divergence range settings
* Optional hidden divergence display
* Optional Support/Resistance validation
* Pivot sensitivity
* Optional Bollinger Band confirmation
* Bollinger Band length and standard deviation
Alerts
Built-in alert conditions are available for:
* Bullish Signal
* Bearish Signal
* Regular Bullish Divergence
* Hidden Bullish Divergence
* Regular Bearish Divergence
* Hidden Bearish Divergence
Practical Usage
The indicator is intended for traders who prefer waiting for momentum confirmation after temporary pullbacks instead of reacting to every MACD crossover.
Optional Support/Resistance and Bollinger Band filters can be enabled to make signal selection more restrictive when additional price-location confirmation is desired.
Limitations
MACD histogram divergence relies on confirmed pivot highs and lows, so divergence signals are only confirmed after the required pivot bars have formed.
Support and resistance levels are derived from pivot calculations and represent algorithmically identified swing points rather than manually drawn market structure.
Like any momentum-based indicator, performance may vary across different market conditions and should be evaluated alongside a broader trading plan and appropriate risk management.
Notes
This indicator is intended as an analytical decision-support tool. It combines momentum analysis, pullback recognition, divergence detection, and optional contextual filters into a structured confirmation process rather than relying on any individual condition as a standalone trading signal. Индикатор

Trend Conviction Divergence [ZynAlgo]1. Overview
Trend Conviction Divergence measures how much conviction is behind the current trend, not just its direction. It blends four proxies - Price Efficiency, Participation, Follow Through and Breakout Acceptance - into a single 0-100 Conviction Score shown in its own pane, and keeps trend direction separate so a fading trend stays visible.
2. What Builds the Conviction Score
Price Efficiency - a Kaufman-style efficiency ratio: net directional move divided by total bar-to-bar movement. Near 1 is a clean push, near 0 is chop.
Participation - recent volume average versus an older baseline; volume draining during a move flags weak participation (volume is a proxy and can be unreliable on some symbols).
Follow Through - size of the latest swing leg versus the average of prior legs; shrinking legs mean weakening follow-through.
Breakout Acceptance - the share of recent range breakouts that held instead of being rejected.
3. How to Read the Conviction Score
The score plots as columns: red below the Weak level (default 40), yellow between, green above the Strong level (default 70). Two dashed lines mark the 40 and 70 levels.
Divergence read: when direction stays BULLISH or BEARISH but the score slides toward or under the weak line, conviction is leaving the trend before price turns.
Confirming read: when price is trending and the score holds in the green zone above the Strong level, conviction is backing the move rather than fading.
Use it as a confirmation and filter layer over your own setups - lean in when conviction is high and rising, be cautious when it is weak or diverging. It is analytical context, not an entry trigger.
The dashboard shows PRICE (BULLISH or BEARISH), CONVICTION (the score as a percentage) and STATUS (WEAK TREND / MODERATE / STRONG TREND).
4. Inputs / Settings
Trend Reference Length - moving-average length that sets the BULLISH or BEARISH direction.
Efficiency Lookback - window used for the Price Efficiency ratio.
Participation - recent and baseline volume lengths plus the baseline offset.
Follow Through - swing pivot length and how many legs are remembered for the average.
Breakout Acceptance - breakout lookback, bars-later acceptance check, and how many recent breakouts are averaged.
Conviction Score Weights - the weight of each of the four components in the blend.
Display - Weak and Strong thresholds that drive the coloring and status.
5. Notes
Like any oscillator, the current bar value updates until the bar closes; closed bars do not change.
This is an analytical tool, not a signal generator, and does not guarantee any trading result. Always use your own analysis and risk management.
Индикатор

[davidev] RSI with Divergences**RSI with Divergences - Optimized**
An enhanced Relative Strength Index (RSI) indicator designed to combine classic momentum analysis, automatic divergence detection, and an EMA-based momentum filter in a single oscillator.
The script automatically detects both **regular** and **hidden RSI divergences** by comparing confirmed RSI pivot highs/lows with the corresponding price structure.
### Features
* Standard configurable **RSI**
* Configurable **EMA of RSI**
* Dynamic EMA coloring based on RSI momentum
* Optional **DMI directional filter** for EMA coloring
* Automatic **Regular Bullish Divergence**
* Automatic **Regular Bearish Divergence**
* Automatic **Hidden Bullish Divergence**
* Automatic **Hidden Bearish Divergence**
* Configurable pivot sensitivity
* Optional divergence labels
* Custom colors and divergence line width
* Strict or inclusive high/low comparisons
* Automatic management of historical divergence drawings
* Built-in TradingView alerts for individual and combined divergence signals
### Divergence Logic
**Regular Bullish Divergence**
* Price forms a **lower low**
* RSI forms a **higher low**
This can indicate weakening bearish momentum and a potential bullish reversal.
**Regular Bearish Divergence**
* Price forms a **higher high**
* RSI forms a **lower high**
This can indicate weakening bullish momentum and a potential bearish reversal.
**Hidden Bullish Divergence**
* Price forms a **higher low**
* RSI forms a **lower low**
Hidden bullish divergences are generally associated with potential **bullish trend continuation**.
**Hidden Bearish Divergence**
* Price forms a **lower high**
* RSI forms a **higher high**
Hidden bearish divergences are generally associated with potential **bearish trend continuation**.
### EMA of RSI Momentum
The indicator also plots an EMA of the RSI to provide a smoother view of momentum.
By default, its color combines:
* The direction of the RSI EMA
* The relationship between **+DI and -DI**
The EMA is considered bullish when it is rising and +DI is greater than or equal to -DI, while bearish momentum is highlighted when the EMA is falling and -DI is greater than +DI.
The DMI filter can be disabled from the settings, in which case EMA coloring is determined exclusively by whether the RSI EMA is rising or falling.
### Pivot Confirmation
Divergences are calculated using confirmed RSI pivots.
The **Pivot Left** and **Pivot Right** settings control how many surrounding bars are required to validate a pivot.
Because a pivot requires future bars for confirmation, a divergence is only confirmed after the number of bars specified by **Pivot Right** has elapsed. The divergence is visually connected to the actual historical pivot points, while alerts trigger on the bar where the divergence becomes confirmed.
This avoids treating an unconfirmed pivot as a completed divergence.
### Strict Comparison
When **Strict HH/LL Comparison** is enabled, equal price or RSI highs/lows are not considered valid higher-high, lower-high, higher-low, or lower-low conditions.
Disabling it allows equal values to satisfy the relevant comparison.
### Alerts
The script includes alert conditions for:
* Regular Bullish RSI Divergence
* Hidden Bullish RSI Divergence
* Regular Bearish RSI Divergence
* Hidden Bearish RSI Divergence
* Any Bullish RSI Divergence
* Any Bearish RSI Divergence
* Any RSI Divergence
Alerts are generated when the corresponding pivot and divergence are **confirmed**, rather than on the historical pivot bar itself.
### Usage
RSI divergences can help identify changes in momentum, possible trend exhaustion, reversals, and continuation setups. They should not be treated as standalone buy or sell signals.
For better results, consider combining them with market structure, support and resistance, trend direction, volume, volatility, or other forms of confirmation.
The indicator is designed to provide a clean visual representation of RSI momentum while keeping divergence detection systematic, configurable, and easy to interpret.
Индикатор

RvDiv Regular Divergence (Daily)Rv-Div — Regular Divergence (Daily)
Rv-Div marks confirmed regular divergences on the daily chart and draws the line that connects them, so you can see the structure the signal is based on instead of trusting an arrow.
**What it does**
A bullish divergence is price making a lower low while the oscillator makes a higher low: price is still falling, but with less force behind it. A bearish divergence is the mirror image — a higher high in price against a lower high in the oscillator.
Rv-Div marks the exact candle that confirms the divergence, draws the line between the two pivots it used, and can fire an alert.
**The problem it solves**
Most divergence tools compare each new pivot against the immediately previous one. That works until a small wrinkle appears between the two lows that actually matter — and then the line gets drawn between the wrinkle and the new low instead of between the two real lows. The divergence you see on screen is not the one your eye would have drawn.
Rv-Div compares each new pivot against the last N pivots, not just the previous one, and keeps the one that forms a valid divergence. That is what the eye does: connect the two lows that matter, skipping the noise in between.
It also spends each anchor. Without that, one old pivot gets reused against every new pivot that appears, and you end up with several lines fanning out from the same point — the same divergence counted three or four times, which inflates any count you make of them. Here, once an anchor is used it is discarded along with everything older.
**Quality filters**
Not every pair of pivots deserves to be called a divergence. Four filters, all adjustable:
- Minimum price difference between the two extremes, measured in ATR, so it travels across symbols and volatility regimes instead of using a fixed percentage.
- Minimum difference between the two oscillator pivots.
- Both oscillator pivots on the correct side of zero.
- Minimum and maximum bar separation between the two pivots.
**Settings**
Three oscillators to choose from — Awesome Oscillator, MACD histogram, and a linear-regression momentum. All three are public-domain formulas.
The pivot definition (bars to the left and right), the quality filters, the two EMAs, the colours, the label size and the line width are all adjustable. The default values are the ones I use on the daily chart.
**How to use it**
Daily chart only. The indicator says so on screen if you load it on any other timeframe.
Set alerts to **Once per bar close**. A forming candle keeps changing until it closes, and a divergence is not confirmed until then.
**Dropping to a lower timeframe to confirm**
The signal is a daily signal, but you do not have to take it blind on the daily close. Once the daily marks the entry, drop to 4h and wait for a break of the local high followed by a pullback — or go from 4h down to 1h and look for the same thing. You give up a little of the move in exchange for not entering into a candle that is still falling.
This is deliberately not built into the indicator. It is a judgement call, and judgement calls belong to the trader, not to a script that has to work the same way on every symbol and every market.
**What it does not do**
It does not manage exits. It marks an entry candle and nothing else — no targets, no stops, no position sizing. Those decisions are yours.
It is not a standalone system. A divergence tells you that momentum is fading, not that the trend has turned. What you do with that information is where your own judgement goes.
**About the confirmation delay**
A pivot does not exist until the required bars have closed to its right, so the signal arrives with that delay. This is deliberate. Removing it would mean signalling on unconfirmed pivots, which look excellent in hindsight and vanish in real time.
Historical signals do not repaint: once a pivot is confirmed, it stays confirmed. The forming candle is the only thing that can change, which is why alerts should be set to bar close.
---
**Español**
Rv-Div marca divergencias regulares confirmadas en gráfico diario y dibuja la línea que las une, para que veas la estructura en la que se apoya la señal en lugar de fiarte de una flecha.
Una divergencia alcista es el precio haciendo un mínimo más bajo mientras el oscilador hace un mínimo más alto: sigue cayendo, pero con menos fuerza detrás. La bajista es la imagen espejo.
La diferencia con la mayoría de detectores de divergencia está en el trazado. Casi todos comparan cada pivote nuevo con el inmediatamente anterior, y en cuanto aparece una arruga entre los dos suelos que de verdad importan, la línea sale mal dibujada. Rv-Div compara contra los últimos N pivotes y se queda con el que forma la divergencia válida — que es lo que hace el ojo. Además consume cada ancla, así que un mismo pivote antiguo no se reutiliza una y otra vez generando varias líneas en abanico desde el mismo punto.
Cuatro filtros de calidad ajustables (diferencia mínima de precio en ATR, diferencia mínima del oscilador, ambos pivotes del lado correcto del cero, y separación mínima y máxima), tres osciladores a elegir, y todo el aspecto configurable.
Solo diario. Alertas configuradas como "Una vez por barra al cerrar".
**Bajar a una temporalidad menor para confirmar.** La señal es del diario, pero no hace falta tomarla a ciegas en el cierre diario. Cuando el diario marca la entrada, se puede bajar a 4h y esperar una ruptura del máximo local con su retroceso — o de 4h bajar a 1h y buscar lo mismo. Se cede un poco del movimiento a cambio de no entrar en una vela que todavía viene cayendo. Esto no está metido en el indicador a propósito: es criterio del operador, y el criterio no se le delega a un script que tiene que funcionar igual en todos los símbolos.
No gestiona salidas ni es un sistema completo: marca la vela de entrada y nada más. Una divergencia dice que el impulso se está agotando, no que la tendencia ya giró.
El retraso de confirmación es deliberado: un pivote no existe hasta que cierran las velas que lleva a su derecha. Quitarlo significaría señalar sobre pivotes sin confirmar, que se ven perfectos en el pasado y desaparecen en vivo. Las señales históricas no repintan. Индикатор

Flow Sate CVD [by Oberlunar]Flow Sate CVD framework combining cumulative volume delta gap and fair-value gap geometry with an adaptive order-flow and market-state model. It maps Absorption, AAA and Exhaustion structures to price while continuously tracking Flow, Response, Structure and Regime states.
The indicator detects two CVD discontinuity models across configurable timeframes: two-bar TimeFixed CVD gaps and same-anchor three-bar CVD FVGs. Detected events are projected onto their corresponding price zones, with opacity determined solely by the relative magnitude of the CVD gap.
An adaptive classifier evaluates signed CVD pressure, flow persistence, price-impact efficiency, resistance, impact decay, ATR regime, EMA fan structure, multi-scale TRIX/RSI momentum, liquidity and price/CVD divergence. Internal thresholds and fast/mid/slow weights adapt to the observed market state automatically.
The resulting structures are classified as Absorption, AAA (Absorption-Acceptance-Aggression) or Exhaustion. Absorption and AAA create persistent, directionally polarised price zones; Exhaustion is displayed as a point event.
Four continuous lanes summarise the underlying model:
FLOW: directional pressure and persistence.
RESPONSE: The Drive, Resistance or Decay pattern.
STRUCTURE: simple EMA/TRIX/RSI alignment adjusted for price/CVD divergence.
REGIME: liquidity and volatility environment.
A Flow State meter provides the same four states in compact form. A separate composite combines FLOW, RESPONSE and STRUCTURE, while REGIME adjusts confidence. Its current state is displayed on the price chart through a colour-coded EMA(7): aqua for bullish consensus, red for bearish consensus and grey when the adaptive threshold is not reached.
The UK, US1, and US2 liquidity windows are shown with adaptive session backgrounds and opening labels and can be independently filtered for structural events.
The script uses confirmed historical information with barmerge.lookahead_off for its MTF requests and does not intentionally access future data.
How to Use
Set TF1 for the displayed CVD and optionally enable additional MTF references. Use TimeFixed GAP CVD, CVD FVG, or both. Read the four lanes and Flow State meter as contextual diagnostics; projected Abs/AAA zones identify persistent price areas associated with classified CVD events, while Exhaustion circles mark decay events.
The EMA(7) is a compact visualisation of the composite state: increasing aqua intensity indicates stronger bullish agreement across the model, increasing red intensity indicates stronger bearish agreement, and grey indicates insufficient consensus.
Some specifications
CVD is derived from the volume data available to TradingView and is not equivalent to full limit-order-book order flow. The FLOW component is therefore a CVD-derived signed-flow proxy, not true exchange-level OFI. Classification is contextual and descriptive; Absorption, AAA, Exhaustion and composite states do not imply future price outcomes. MTF structures may also become available later than lower-timeframe observations because higher-timeframe information must develop and be confirmed.
Enjoy,
Oberlunar 👁★ Индикатор

Professional Volume Delta & CVD SuiteEnglish Version
Professional Volume Delta & CVD Suite
Professional Volume Delta & CVD Suite is an all-in-one order flow and volume analysis indicator engineered to deliver institutional-grade market context across any timeframe. By combining Intrabar Volume Delta estimation, Cumulative Volume Delta (CVD), Order Flow Divergences, Volume Climax detection, and a dynamic Real-Time Data Table, this script condenses multiple advanced trading tools into a single, clean workspace.
Key Features & Internal Mechanics
Dual Volume Delta Calculation Engine:
Wick-Based Estimation (Recommended): Evaluates intrabar price action by analyzing high, low, and close prices (volume * (close - low) / (high - low)) to accurately distribute buying and selling volume within each candle.
Color-Based Alternative: Calculates net volume based strictly on candle close vs. open.
Automated Multi-Timeframe Adaptation (Auto-Adjust):
Intraday Mode (1m - 1H): Calculates a Session CVD that resets to 0 at the start of each trading day (00:00 UTC), ideal for tracking day-trading order flow absorption. Divergence lookback is set to 5 bars, Volume MA to 20 periods, and Climax Multiplier to 2.0x.
Daily & Weekly Mode (1D, 1W, 1M): Automatically switches to a Continuous Accumulated CVD (no daily reset) to track multi-week accumulation/distribution cycles. Sets the volume Moving Average to 21 periods (1 trading month) and divergence lookback to 10 bars for high-conviction swing signals.
In-Bar Buyer/Seller Percentage Labels:
Plots exact percentages of buying (%C) and selling (%V) pressure on each individual volume bar.
Fully customizable display: show both percentages, only the winning side, adjust font sizes, toggle % symbols, and control vertical offset distance.
Algorithmic Price vs. Delta Divergence Detection:
Bullish Divergence (Green Arrow): Triggers below the volume histogram when price marks a lower low but Volume Delta forms a higher low (indicates institutional supply absorption).
Bearish Divergence (Red Arrow): Triggers above the volume histogram when price marks a higher high but Volume Delta forms a lower high (indicates demand exhaustion/distribution).
Volume Climax & Trend Filters:
Volume Moving Average (MA): Smoothed volume baseline (default 21 periods for daily charts).
Volume Climax Highlights: Highlights exceptional volume spikes in bright gold when total volume exceeds the moving average by the configured multiplier (e.g., 1.8x or 2.0x), signaling heavy institutional positioning or potential exhaustion.
Dynamic Real-Time Information Table:
Candle Status: Live indicator (Bullish 🟢 / Bearish 🔴).
% Buyer / % Seller: Exact percentage breakdown for the current open candle.
Candle Delta: Net delta percentage of the active bar.
Session CVD / Accumulated CVD: Shows continuous capital flow adapted to the current timeframe.
Volume Activity: Displays current volume activity relative to the MA percentage or alerts CLIMAX ⚡.
Inputs & Customization Settings
Timeframe Configuration: Toggle auto-adaptation or manually enforce Intraday / Daily modes.
Calculations & Display: Choose calculation methods, toggle label modes, change text sizes, and adjust label offsets.
Divergences & MA Filters: Customize MA period, divergence lookback window (bars), and climax thresholds.
Table & Aesthetics: Full control over UI table placement (9 anchor points), table size, row visibility, and custom color palettes for buyers, sellers, climax bars, and divergence shapes.
Versión en Español
Professional Volume Delta & CVD Suite
Professional Volume Delta & CVD Suite es un indicador de análisis de flujo de órdenes (order flow) y volumen todo-en-uno, diseñado para proporcionar contexto de nivel institucional en cualquier marco temporal. Al combinar la estimación de Delta por vela, el Delta Acumulado (CVD), Divergencias de Order Flow, detección de Clímax de Volumen y una Tabla de Datos en Tiempo Real, este script sintetiza múltiples herramientas avanzadas en un único panel limpio y eficiente.
Características Principales y Mecánica Interna
Motor Doble de Cálculo de Volumen Delta:
Estimación por Mechas (Recomendado): Evalúa la acción del precio dentro de la vela analizando máximos, mínimos y cierres (volumen * (cierre - mínimo) / (máximo - mínimo)) para distribuir de manera precisa el volumen comprador y vendedor.
Alternativa por Color de Vela: Calcula el volumen neto basándose estrictamente en el cierre vs. la apertura.
Adaptación Automática según Temporalidad (Auto-Adjust):
Modo Intradía (1m - 1H): Calcula un CVD de Sesión que se reinicia a 0 al inicio de cada jornada (00:00 UTC), ideal para medir la absorción en el day trading. Configura la evaluación de divergencias en 5 velas, la Media Móvil en 20 períodos y el Clímax en 2.0x.
Modo Diario y Semanal (1D, 1W, 1M): Cambia automáticamente a un CVD Acumulado Continuo (sin reseteo diario) para medir ciclos de acumulación y distribución de mediano/largo plazo. Ajusta la Media Móvil de volumen a 21 ruedas (1 mes bursátil) y la evaluación de divergencias a 10 velas para señales swing de alta probabilidad.
Etiquetas de Porcentaje Comprador/Vendedor en Barras:
Muestra en tiempo real los porcentajes exactos de presión compradora (%C) y vendedora (%V) sobre cada barra de volumen.
Personalización visual total: muestra ambos porcentajes, solo el lado ganador, ajusta el tamaño de texto, activa/desactiva el símbolo % y modifica la distancia vertical.
Detección Algorítmica de Divergencias (Precio vs. Delta):
Divergencia Alcista (Flecha Verde): Salta debajo del histograma cuando el precio hace un mínimo más bajo pero el Delta de Volumen hace un mínimo más alto (señal de absorción de oferta institucional).
Divergencia Bajista (Flecha Roja): Salta arriba del histograma cuando el precio marca un máximo más alto pero el Delta de Volumen marca un máximo más bajo (señal de agotamiento de demanda o distribución).
Clímax de Volumen y Filtros de Tendencia:
Media Móvil de Volumen (MA): Línea base del volumen promedio (fijada en 21 ruedas para gráficos diarios).
Resaltado de Clímax: Pinta las barras en color dorado brillante cuando el volumen total supera drásticamente la media móvil según el multiplicador configurado (1.8x o 2.0x), alertando sobre volumen institucional masivo o posible agotamiento.
Tabla Informativa Dinámica en Tiempo Real:
Estado Vela: Indicador en vivo del sesgo actual (ALCISTA 🟢 / BAJISTA 🔴).
% Comprador / % Vendedor: Desglose porcentual exacto de la vela en formación.
Delta Vela: Porcentaje de delta neto de la barra activa.
CVD Sesión / CVD Acumulado: Flujo continuo de dinero adaptado dinámicamente según la temporalidad del gráfico.
Actividad Vol.: Muestra la actividad de volumen respecto a la Media Móvil o la alerta de CLÍMAX ⚡.
Parámetros y Opciones de Configuración
Configuración de Temporalidad: Activa/desactiva la autoconfiguración o fuerza manualmente los modos Intradía o Diario/Semanal.
Cálculos y Visualización: Elección del método de cálculo, formatos de etiqueta, tamaños de texto y distancias en el gráfico.
Divergencias y Filtros de MA: Ajuste de períodos de Media Móvil, rango de velas para divergencias (lookback) y umbrales de clímax.
Estética de la Tabla: Control total sobre la posición de la tabla (9 anclajes), tamaño de celda, visibilidad de filas y paletas de colores totalmente personalizables (compradores, vendedores, clímax y flechas de divergencia).
Индикатор

Andean Volume TrackerENGLISH DESCRIPTION
Andean Volume Tracker is an advanced technical indicator designed to identify market absorption and seller exhaustion points on macro timeframes (1D, 1W, 1M). By combining price momentum dynamics with climatic volume confirmation, this tool highlights high-probability institutional trap zones.
📌 Core Components & Logic
Andean Oscillator Engine
Based on the original mathematical model developed by @AlexGrover.
Calculates the true bullish (Bull) and bearish (Bear) market components alongside a dynamic moving average (Signal).
Measures continuous buyer vs. seller strength without lag.
Climatic Volume Filter
Uses a Simple Moving Average (SMA) multiplied by a customizable threshold (1.15 by default) to filter out market noise.
Isolates candles where institutional volume significantly exceeds average activity.
Pattern & Trap Identification
🚨 Buying Absorption (Bear Trap): Triggered when the bullish component crosses above the bearish component (bullCross) during a high-volume bullish candle. Indicates buyers actively absorbing selling pressure.
🚨 Selling Exhaustion (Bull Trap): Triggered when the bearish component crosses above the bullish component (bearCross) during a high-volume bearish candle. Indicates aggressive selling into an exhausted order book.
🛠️ Customization Options
Andean Oscillator Parameters: Adjustable length (26) and signal smoothing (12).
Volume Thresholds: Customizable SMA period and multiplier for precise volume spikes.
Visual Styling: Fully customizable color palette and adjustable signal sizes (Tiny, Small, Normal, Large).
Alerts: Built-in alert conditions for real-time notifications on absorption and exhaustion signals.
💡 How to Use
Best applied on daily, weekly, or monthly timeframes for long-term trend continuation or reversal setups.
Green background highlights bullish volume dominant bars, while red background highlights bearish volume dominant bars.
Look for Absorción signals near key support levels and Agotamiento signals near key resistance levels.
Disclaimer: This indicator is for educational and analytical purposes only and does not constitute financial advice. Credits to @AlexGrover for the original Andean Oscillator concept.
DESCRIPCIÓN EN ESPAÑOL
Andean Volume Tracker es un indicador técnico avanzado diseñado para identificar puntos de absorción compradora y agotamiento vendedor en temporalidades macro (1D, 1S, 1M). Combina la dinámica de momentum del precio con la confirmación de volumen climático para señalar zonas de trampa con alta probabilidad institucional.
📌 Componentes Clave y Lógica
Motor Andean Oscillator
Basado en el modelo matemático original desarrollado por @AlexGrover.
Calcula los componentes reales alcistas (Bull) y bajistas (Bear) del mercado junto con una media móvil dinámica (Signal).
Mide la fuerza continua de compradores vs. vendedores sin retraso.
Filtro de Volumen Climático
Utiliza una Media Móvil Simple (SMA) multiplicada por un umbral configurable (1.15 por defecto) para filtrar el ruido del mercado.
Aísla velas donde el volumen institucional supera de forma significativa la actividad promedio.
Identificación de Patrones y Trampas
🚨 Absorción Compradora (Bear Trap): Se activa cuando el componente alcista cruza por encima del bajista (bullCross) durante una vela verde con volumen climático. Indica que los compradores están absorbiendo la presión vendedora.
🚨 Agotamiento Vendedor (Bull Trap): Se activa cuando el componente bajista cruza por encima del alcista (bearCross) durante una vela roja con volumen climático. Indica ventas agresivas sobre un libro de órdenes agotado.
🛠️ Opciones de Configuración
Parámetros del Andean Oscillator: Longitud (26) y suavizado de señal (12) ajustables.
Umbrales de Volumen: Período SMA y multiplicador personalizables para adaptar la detección de picos de volumen.
Estilo Visual: Paleta de colores totalmente personalizable y tamaño de señales adaptable (Diminuto, Pequeño, Normal, Grande).
Alertas: Condiciones de alerta integradas para notificaciones en tiempo real ante señales de absorción o agotamiento.
💡 Cómo Utilizarlo
Diseñado para usarse en gráficos diarios, semanales o mensuales para confirmar setups de continuación de tendencia o reversión.
El fondo verde destaca barras dominadas por volumen comprador, mientras que el fondo rojo señala volumen vendedor relevante.
Buscá las señales de Absorción cerca de niveles clave de soporte y las de Agotamiento cerca de resistencias importantes.
Aviso: Este indicador tiene fines exclusivamente educativos y analíticos y no constituye asesoramiento financiero. Créditos a @AlexGrover por el concepto original del Andean Oscillator.
Индикатор

Adaptive Composite Oscillator (ACO)Adaptive Composite Oscillator (ACO)
A momentum oscillator that adapts its own lookback length, normalization bands, and signal logic to current market conditions, rather than relying on the fixed parameters and fixed 70/30-style bands used by traditional oscillators like RSI or Stochastic.
How it works
1. Adaptive lookback. The effective momentum length shortens when recent volatility (ATR relative to its own average) is elevated, and lengthens when volatility is calm. The oscillator speeds up in choppy or volatile stretches and slows down in quiet ones, instead of using one fixed period regardless of context.
2. Manual adaptive RSI. Pine's built-in ta.rsi() requires a fixed length, which a bar-by-bar adaptive length can't satisfy. So the RSI is built manually with a Wilder-style recursive average whose smoothing factor is derived from the adaptive length on every bar — same underlying math as RSI, just computed in a way that tolerates a variable length.
3. KAMA-style smoothing. The raw adaptive RSI is passed through a Kaufman Adaptive Moving Average-style filter, using an efficiency ratio between fast and slow EMA constants. This makes the line track efficient, directional moves closely while damping down noise during back-and-forth chop.
4. Statistical normalization. Rather than fixed overbought/oversold levels, the smoothed momentum is converted into a z-score against its own rolling mean and standard deviation. The ±2 SD bands self-calibrate to each instrument's own volatility character instead of using one arbitrary threshold for every market.
5. Regime filter (ADX/DMI). An ADX reading classifies conditions as ranging or trending. In ranging conditions, z-score extremes are treated as mean-reversion signals. In strong trends (ADX above threshold), those same extremes are deliberately ignored — since momentum can stay "overbought" for a long time inside a real trend — and instead a zero-line cross in the direction confirmed by +DI/−DI is treated as a trend-continuation signal.
6. Volume confirmation. Every signal additionally requires volume above its own moving average, filtering out low-participation moves that wouldn't hold up.
7. Algorithmic divergence with connecting lines. Bullish and bearish divergence is detected by comparing confirmed price pivots to oscillator pivots — a defined rule, not a discretionary read — and drawn as connecting lines on both the price chart and the oscillator pane, so the actual shape of the divergence is visible rather than marked with a single dot.
What's plotted
Oscillator line (z-score), colored by regime — gray for ranging, blue for confirmed uptrend, orange for confirmed downtrend
Dashed ±2 SD statistical bands and a zero line
Yellow background shading while in a strong-trend regime
Green/red triangles for volume-confirmed long/short signals
Magenta/lime connecting lines for bearish/bullish divergence, on both panes
How to use it
Start by reading the regime background: yellow shading means the market is trending strongly by ADX; no shading means it's ranging. That tells you which of the two signal modes is currently active. Then read the line color — gray, blue, or orange — which tells you the direction of any active trend. Triangles mark volume-confirmed signals: green below the line for long, red above for short. Connecting lines mark divergence: magenta between two price/oscillator highs for bearish, lime between two lows for bullish — these appear a few bars after the second pivot confirms, since a pivot needs bars on both sides to validate.
The strongest setups combine elements rather than relying on one signal alone — for example, a long triangle firing alongside a lime divergence line, or a trend-mode zero-cross that agrees with a higher-timeframe trend you've checked separately. Avoid taking ranging-mode mean-reversion signals against a clearly shaded trending background — that's exactly the mismatch the regime filter exists to prevent.
All lengths, the ADX trend threshold, volume multiplier, pivot lookback, and KAMA constants are adjustable in settings; the defaults are a reasonable starting point, not a finished strategy. Four alert conditions are built in (Long Signal, Short Signal, Bullish Divergence, Bearish Divergence) via TradingView's standard Add Alert dialog. Индикатор

Precedent [ThrowMaster]===============================================================
WHAT IT IS
===============================================================
Precedent does not predict. It measures.
Every time a defined market event confirms on your chart, Precedent
records what price actually did over the following N bars. Once enough
comparable records have accumulated, it displays the empirical
distribution of those recorded outcomes: how far price travelled, how
often it reached a given distance, and how many bars that took.
The question it answers is narrow and deliberately so:
"On this symbol, on this timeframe, when this kind of event happened
at this kind of price level in this kind of market condition, what
followed afterwards, and across how many cases?"
Every number shown is measured from the visible history of the chart you
are looking at. Nothing is imported from another market, no outcome
percentages are hard-coded, and no distribution shape is assumed. If the
chart has not yet produced enough comparable cases, the indicator stays
silent and tells you how many it has.
This is a context tool. It produces no buy or sell signals, no entry
prices, and no stop levels, and it is not designed to be used as one.
Please read the section titled THE MOST IMPORTANT WARNING before using
it on a live chart.
===============================================================
HOW IT WORKS
===============================================================
1. LEVEL MAP
A running inventory of prices that carry structural meaning is
maintained bar by bar:
- Swing pivots confirmed with a symmetrical left/right lookback
(default 21 bars each side for external structure, 5 for internal).
- Equal highs and equal lows: when a new pivot lands within the merge
tolerance of an existing level, that level's touch count increases
rather than a second level being created.
- Unfilled fair value gaps: a three-bar imbalance where the current
bar's low is above the high from two bars ago (or the mirror for
the bearish case). Each additional gap overlapping the same price
adds to that level's weight, so three gaps stacked at one price
are recorded as one level carrying three factors.
- Order blocks: the extreme of the last opposite-coloured candle
immediately before a displacement bar, where displacement means a
body in the top 15 percent of the last 100 bodies AND the move
takes out the most recent internal pivot. Displacement alone is not
enough; it must be tied to a structural break.
- Previous day and previous week high and low, requested with a
one-bar offset so no unclosed higher-timeframe data is used.
Each level accumulates a WEIGHT equal to the number of independent
factors coinciding there, plus a bonus for repeated touches and for age
beyond 200 bars. Two factors closer together than the merge tolerance
(default 0.25 x ATR) are treated as one level with two factors, never as
two levels. This prevents an order block that naturally sits inside a
fair value gap from being counted twice.
A level whose weight reaches the MAJOR threshold (default 4) is
classified MAJOR; weight 1 to 3 is MINOR; anything else is NONE.
Note on interpretation: a heavily touched level is treated as more
SIGNIFICANT, not as stronger. Repeatedly tested highs and lows are
exactly the prices that attract sweeps. The indicator does not assume
which way that resolves; it measures what actually followed.
2. EVENT CLASSES
Six event types are detected. Every one of them locks its state at bar
close.
SWP Sweep Price trades beyond a mapped level and closes back
inside it, with a wick in the top quartile of the
last 100 wicks on that side.
SHF Shift A close beyond the most recent confirmed external
swing, in either direction (break of structure or
change of character).
SQZ Squeeze Bollinger Bands (20, 2.0) contract entirely inside
Keltner Channels (20, 1.5 x ATR) for at least five
consecutive bars, then expand back out.
CLX Climax Volume in the top 5 percent of the last 200 bars
combined with a bar range in the top 10 percent.
Where volume is unavailable, range plus body size is
used instead and the dashboard states which.
REJ Reject A bullish or bearish engulfing bar, or a pin bar with
a wick in the top quartile of the last 100, but only
when it occurs at a mapped level. A rejection candle
floating in empty space is not recorded at all.
DIV Divergence Price makes a lower low while cumulative flow makes a
higher low, or the mirror case, measured at confirmed
pivots. Flow is signed by body position within the
bar range and scaled by volume where volume exists.
Divergence is measured against volume-weighted flow, not against an
oscillator. An oscillator derived from price and then compared back to
price adds no independent information; volume is a separate data source.
Two events of the same class are never recorded closer together than the
full horizon. This is a deliberate statistical constraint: it costs
sample size, and it buys the guarantee that no two stored outcomes share
an overlapping future.
3. CONTEXT SCORE
Three voices contribute to an additive score from 0 to 100. Nothing
gates. No voice can block a signal; each only adds weight.
STRUCTURE 35 Whether the recent sequence of confirmed swing highs
and lows agrees with the event's direction.
FLOW 30 The percentile rank of the bar's signed flow over the
last 200 bars, cut to one fifth when its sign
disagrees with the event direction.
HTF 35 Whether the higher timeframe close sits above or below
its own 50-period EMA, in agreement with the event.
The score is then discounted by regime and renormalised back to a 0-100
scale, so scores remain comparable across regimes:
RANGE structure x 0.70 (structure breaks constantly and means
little inside a range)
TRANSITION higher tf x 0.80 (higher timeframe bias is least
reliable while it is turning)
TREND flow x 0.85 (large volume is ordinary in a trend
and therefore less informative)
One correction is applied automatically: Climax and Divergence are
themselves defined from flow, so for those two classes the flow weight
is halved and the freed weight is split evenly between structure and
higher timeframe. Without this, the flow voice would confirm an event
that flow itself created.
The score is converted into a two-level tier by comparing it to the 60th
percentile of past scores for the same event class on this chart. There
is no fixed cut-off number.
4. SIGNATURE AND BACKOFF
Each recorded event is filed under a discrete key:
event class x location class x regime x direction x score tier
Direction is never merged at any level, because upward and downward
outcomes are not symmetrical.
When a new event confirms, the engine looks for stored outcomes sharing
that key. If fewer than the minimum sample (default 20) exist, it drops
the finest component and looks again:
L3 event + location + regime + direction + tier
L2 event + location + regime + direction
L1 event + regime + direction
L0 event + direction
The first level with a sufficient sample is used, and the dashboard
always states which level was used and how many records it contained.
If even L0 is short, nothing is drawn and the dashboard shows
CALIBRATING with the current count.
Seeing L1 or L0 rather than L3 is normal, not a fault. Non-overlapping
sampling produces a limited number of independent cases per chart, and
the backoff exists precisely to handle that honestly rather than
displaying a percentage built on four observations.
5. OUTCOME STORE
For each recorded event the engine tracks, for the following H bars
(default 24):
- excursion at H/4, H/2, 3H/4 and H, expressed in R where R is the
ATR(14) value at the event bar
- maximum favourable and maximum adverse excursion
- the bar number at which the move first reached +1R, +2R and +3R,
or zero if it never did
The record is written to the store only after H bars have fully elapsed.
A projection displayed today is therefore built exclusively from events
that had already finished before it was issued. This is a structural
property of the design, not a discipline that has to be maintained.
6. WHAT IS DRAWN
- An empirical quantile fan. The outer envelope traces the 5th and
95th percentiles of the matched outcomes at each of the four
checkpoints; the inner envelope traces the 25th and 75th; the
dashed centre line traces the 50th. The shape is asymmetric and
heavy-tailed whenever the underlying data is, because the values
are measured percentiles rather than a fitted curve.
- A target line. The median maximum favourable excursion of the
matched set is converted to a price, then snapped to a mapped
structural level if one lies within half an ATR. Statistics choose
the zone; structure chooses the exact price. The label states
"level" when a snap occurred and "stat" when it did not.
- Hit rate and expected bars. Both are read at the nearest whole R
ring (+1R, +2R or +3R) to the target distance, and the ring is
named on the label. Hit rate is the share of matched records that
reached that ring within H bars. The bar count is the median
first-passage time among those records that reached it.
7. RUN TRACKER
A run begins at a confirmed structure shift and ends at the next
confirmed shift in the opposite direction. Within a run, occurrences of
each event class and direction are counted. When the run closes, one
record per class is stored: how many had occurred before the reversal.
The observation unit is therefore the run, not the event. This matters:
counting events directly would produce heavily overlapping samples,
since several events inside one run share the same future. Counting runs
does not.
The panel answers a question most tools ignore entirely: given that a
third bearish divergence has now printed in this uptrend, in what
fraction of past runs on this chart did the reversal arrive by the
third, and in what fraction did the run extend to a fourth or beyond.
8. SELF-AUDIT
Every displayed projection resolves into exactly one of four states, and
these are never merged:
HIT the target was reached first
ADV the -1R reference was reached first
AMB both were touched inside the same bar, so the order is
unknowable from bar data and the case is discarded rather
than claimed
EXP H bars elapsed with neither touched
The dashboard reports the running counts, and separately compares the
average hit rate the tool projected against the hit rate it actually
realised. If those two numbers diverge, the tool is telling you its own
estimates are miscalibrated on this chart.
Two further panels report whether the classification axes carry any
information at all: median outcome for tier A versus tier B, and median
outcome for MAJOR versus MINOR versus NONE locations. If a pair does not
separate, that axis is not contributing, and you are meant to see that.
===============================================================
WHAT MAKES IT ORIGINAL
===============================================================
- Outcome statistics are conditioned on a discrete event signature
and computed from the chart's own history, rather than assumed from
a parametric distribution or imported as fixed percentages.
- Projection targets are snapped onto mapped structural levels, so
the displayed price is a real level rather than a quantile value
floating in empty space.
- The hierarchical backoff makes sparse conditioning explicit: the
display always names the level of specificity that was achievable
and the sample size behind it.
- Sequence statistics use the completed run as the observation unit,
which removes the sample overlap that direct event counting creates.
- The indicator scores its own past projections against outcomes and
displays projected versus realised hit rate on the chart.
===============================================================
HOW TO READ THE CHART
===============================================================
HORIZONTAL LINES
The image below shows the level map alone, with the projection layer
switched off, so the two grades of level can be compared directly: gold
solid lines mark MAJOR levels, thin dotted lines mark MINOR ones.
Two families of horizontal line exist, and they are drawn so that they
can never be confused with each other.
THE LEVEL MAP owns thin dotted lines and gold:
Gold, solid, width 2 A MAJOR level: four or more independent
structural factors coincide at this price.
Washed white, DOTTED, A MINOR level: one to three factors.
width 1
THE TARGET FAMILY owns solid width-2 lines in mint, coral and slate.
No target line is ever drawn dotted or at width 1.
Mint, solid, width 2, The target of the live projection.
full opacity Extends to the right. Only one is live at
a time.
Coral, dotted, width 1 The -1R adverse reference of the live
projection. Removed the moment the
projection resolves. This is a measurement
boundary used to classify the outcome. It
is NOT a stop loss and must not be used as
one.
Once a projection resolves, its target line keeps its full width and
stays solid. Only its colour and opacity change:
Mint, faded HIT: price reached it within the horizon.
Coral, faded ADV: price reached the -1R reference
first.
Slate blue-grey, faded EXP or AMB: the horizon elapsed with
neither touched, or both were touched in
the same bar and the case was discarded.
Resolved lines are retained deliberately. A price that the statistics
selected, and that was then snapped onto a structural level, often
remains structurally relevant afterwards, and it is useful to see where
those prices were. The number retained is configurable and defaults to
six.
Read the fade as expiry of a claim, not as expiry of the price. The
faded line is a record that this price was once selected as a target and
of what happened next. It is not a live target and carries no ongoing
claim about the future.
The image below shows several resolved projections on one chart, so the
three outcome colours can be compared side by side: a faded mint line
where price reached the target, a faded coral line where it reached the
adverse reference first, and a faded slate line where the horizon
elapsed without either being touched. The markers carry the matching
three-letter outcome. Projections that did not work out are shown here
deliberately; the indicator records its own failures and so should its
description.
Level lines are redrawn on each new bar and only levels within six ATR
of current price are displayed, up to fourteen at a time.
THE FAN
Outer shaded band 5th to 95th percentile of matched
historical outcomes.
Inner shaded band 25th to 75th percentile.
Dashed centre line 50th percentile, the median path.
Teal the event pointed upward.
Coral the event pointed downward.
The fan is frozen at the moment the projection is issued and is never
recalculated. It reaches forward exactly H bars.
The next image shows a single live projection close up: the two shaded
bands, the dashed median path, the mint target line, and the label
carrying hit rate, sample size and remaining bars. Note that the bands
are not symmetrical around the median, because they are measured
percentiles rather than a fitted curve.
EVENT MARKERS
A small label prints at each recorded event, below the bar for upward
events and above for downward ones. It contains a three-letter code and
a number:
SWP sweep SHF shift SQZ squeeze
CLX climax REJ rejection DIV divergence
The number is the count of that event class and direction so far inside
the current run. "DIV 3" means this is the third divergence of that
direction since the last structure shift.
When a projection resolves, its marker gains a suffix and changes
colour:
HIT green target reached first
ADV red the -1R reference reached first
AMB amber both touched in the same bar; discarded
EXP amber the horizon elapsed with neither touched
THE TARGET LABEL
Three lines at the right end of the projection:
line 1 the target price, followed by "level" if it was snapped onto
a mapped structural level or "stat" if no level was near
line 2 hit rate and sample size, for example: hit 61% n=38
line 3 while the projection is live: bars remaining and the R ring
the hit rate refers to. Once it resolves, this line is
replaced by "RESOLVED" followed by HIT, ADV, AMB or EXP, and
the whole label takes the matching colour.
The bar count was frozen when the projection was issued and only counts
down. Nothing behind it is recalculated.
THE DASHBOARD
EVENT class, direction, and sequence number in this run
LOCATION MAJOR / MINOR / NONE and the level weight
REGIME RANGE / TRANS / TREND, the context score, tier
SIGNATURE backoff level used and sample size
WITH q50 q75 q95 terminal excursion quantiles measured ALONG the
event's own direction, in R
AGAINST q25 q05 the same distribution's tail measured AGAINST the
event's direction, in R
TARGET price and hit rate
ETA bars remaining and the R ring, or "no open
projection"
RUN EXT how far the current run has extended, in R
FLOW SOURCE "volume" or "proxy"
SEQ 1 / 2 / 3 / 4+ share of past completed runs that reversed after
that many events of this class
RUNS median median count before reversal, and number of runs
TIER A / B median outcome in R for each tier, with counts
LOC MAJ/MIN/NONE median outcome in R for each location class
LEDGER running totals of hit, adv, amb and exp
CALIBRATION average projected hit rate against realised
The dashboard is reproduced below at readable size, since every claim
made in the HOW IT WORKS section is meant to be verifiable there: the
backoff level actually used, the sample size behind it, the quantiles,
the sequence distribution, the two axis-health rows, and the running
comparison of projected against realised hit rate.
WITH and AGAINST are measured relative to the event's own direction, not
relative to the chart. For a downward event, a WITH value of +1.4R means
price fell by 1.4 ATR, and an AGAINST value of -1.8R means price rose by
1.8 ATR before the horizon closed. AGAINST is the row that tells you how
violent the route can be, and it is the row most worth reading before
deciding on any position size.
===============================================================
THE MOST IMPORTANT WARNING
===============================================================
DO NOT TREAT THE GREEN LINE AS A TARGET TO TRADE TOWARD, AND DO NOT
TREAT ANY MARKER AS AN ENTRY SIGNAL.
You will observe the following, and it is the single most dangerous
thing about this indicator:
The projection expires. The bars run out. The label reads "closed". And
then, twenty or fifty bars later, price finally reaches the green line.
It is tempting to read that as the tool having been right after all. It
was not, and here is why that reading destroys accounts:
1. The green line is snapped to a structural level. Structural levels
get revisited eventually, because that is what they are. Price
arriving there after the horizon has expired is not evidence of
anything. It is what levels do.
2. The expected bar count is a median of the cases that reached the
ring. By definition, roughly half of the successful cases took
longer than that. "The estimate elapsed and it is not there yet"
is an ordinary outcome, not a malfunction.
3. Route is not measured. The indicator records where price ended up
and how far it travelled. It does not promise that the path there
was survivable. Price can travel far against you first, and still
arrive. The AGAINST row is the only place the route appears at all,
and even there it is a summary, not a guarantee.
A faded line is a closed case. It has no ETA, no live claim and no
implication that price is still heading there. If price later reaches a
faded line, that is not a delayed hit. It is a structural level being
revisited, which is what structural levels do.
That third point is what actually costs money. A leveraged position
opened on the strength of a hit rate can be liquidated by an adverse
excursion long before the target is reached. The account is closed; the
target being reached afterwards is irrelevant to it. This is not a
remote scenario. It is the ordinary case whenever leverage is applied to
a statistic that describes destinations rather than routes.
The -1R red line does not protect you either. It is a measurement
boundary chosen so outcomes can be classified consistently. It is not a
risk parameter and was never sized to be one.
Precedent is a context tool. It tells you what has typically followed
this kind of moment on this chart, with the sample size attached. Entry
timing, position size, stop placement, leverage and the decision to
trade at all remain entirely yours and must come from a method this
indicator does not contain and does not attempt to contain.
If the only thing you take from a projection is "hit 61 percent, so buy"
you have misread it. The intended reading is closer to: "in 38
comparable cases on this chart, price reached this level within 24 bars
in 61 percent of them, taking a median of 9 bars, and the adverse tail
of that distribution ran to -1.8R."
===============================================================
LIMITATIONS AND REPAINT POLICY
===============================================================
REPAINT BEHAVIOUR, ELEMENT BY ELEMENT
- Event detection, tier assignment and score sampling are locked at
bar close. They do not change afterwards.
- Swing pivots confirm with a delay equal to the pivot length in bars
(default 21). A level cannot appear before its pivot is confirmed.
That delay is the cost of not looking ahead, and it is not avoided
anywhere in this script.
- Higher timeframe values are requested with a one-bar offset, so
only completed higher timeframe bars are used. On the chart
timeframe this means the higher timeframe bias lags by one higher
timeframe bar.
- The fan, the target line and the adverse line are computed once, at
the confirmed bar that issued them, and are never recalculated.
- The dashboard and the countdown update live within the forming bar
by design. The countdown only subtracts from a number that was
frozen at issue; no statistic behind it is recomputed.
KNOWN LIMITATIONS
- The statistics are descriptive, not predictive. They summarise what
has already happened on the chart in front of you. They are not a
forecast and are not out-of-sample.
- Sample sizes are small by construction. Requiring non-overlapping
outcomes limits the number of independent cases available, which is
why the backoff and the visible sample counts exist.
- Until enough completed outcomes exist, nothing is drawn at all. The
image below shows that state: the dashboard reports CALIBRATING and
the current count against the required minimum, and no fan, target
or hit rate appears anywhere on the chart.
- Chart history is finite. On low timeframes the available bars may
cover only a matter of weeks, and possibly only one market regime.
Treat a large sample drawn from a single regime with caution.
- Outcomes are measured at bar resolution. When a bar touches both
the target and the adverse reference, the order is unknowable and
the case is marked ambiguous and discarded rather than assumed.
- Statistics apply only to events this indicator itself defined. If
you identify a setup it did not mark, no displayed percentage
describes it. Borrowing a number from a different occasion is a
misuse.
- Where a symbol provides no usable volume, flow falls back to a
body-position proxy on the same percentile scale. The dashboard
states which is in use. Mixing the two would corrupt the store, so
the fallback applies to the whole session or not at all.
- Changing the higher timeframe from Auto to Manual changes what the
signature key means. The stored outcomes are therefore cleared and
rebuilt from zero when you do it. This is intentional.
- Nothing here is tuned. There is no optimiser and no fitted weight.
Thresholds are percentiles over disclosed rolling windows. If a
parameter is changed, the level map and the statistics change with
it, and the sample must accumulate again.
===============================================================
DISCLAIMER
===============================================================
This script is published for educational and analytical purposes. It is
not financial advice, not a recommendation to buy or sell any
instrument, and not a trading system. It produces no entry signals, no
stop levels and no position sizing.
Historical measurement does not indicate future results. Markets change
regime, and a distribution measured on past bars may not describe the
next ones. Trading carries risk of loss, and leveraged trading carries
risk of total loss. Any decision taken while this indicator is on the
chart remains entirely the responsibility of the person taking it.
Индикатор
