MOYA Sessions & Volume Profile [RealSebastianMoya]Hello traders!
Introducing: "MOYA Sessions and Volume Profile"
This script rebuilds a full Volume Profile for any session length you choose — from a single Tokyo/London/New York session up to a full Yearly cycle — and layers on POC, Value Area High/Low, a live in-progress profile, and (new) real futures volume normalization for Forex/CFD charts.
But before getting into the settings, it's worth explaining where this way of reading the market comes from, because the indicator has no real value if you don't know what questions it's actually answering.
The Underlying Theory: Auction Market Theory
The market isn't a line going up or down. It's a continuous auction. At every moment, buyers and sellers are negotiating a "fair" price, and price moves searching for the level where both sides are willing to transact in volume.
This theory — originally developed for Market Profile by J. Peter Steidlmayer at the CBOT — starts from a simple idea:
Price tells you where the market moved. Volume tells you how much conviction was behind that move.
A regular candlestick chart only shows you the time sequence of price. A Volume Profile rotates that information 90 degrees and asks a different question at every price level: "how much actually traded here?"
The level with the most activity is the Point of Control (POC) — the price the market has "voted" for most often as fair.
The Two Market Regimes
Under this theory, the market constantly alternates between two regimes:
Balance / Equilibrium
Technical name: Balance, Rotational Value Area
What it means: Buyers and sellers accept a range and price rotates inside it without clear direction
Profile shape: Bell curve (D-Shape) — POC centered
Imbalance / Trend
Technical name: Imbalance, Trend Day, Directional Auction
What it means: One side (buyers or sellers) dominates and price refuses to rotate, moving away from the range
Profile shape: Spike (P-Shape or b-Shape) — POC at one extreme
Knowing which regime the market is in completely changes what a touch of the POC or a Value Area edge should mean to you. This is what many newer traders miss: they apply the same rule ("buy at VAL, sell at VAH") regardless of regime, and end up fading strong trends as if they were reversions.
Correct Terminology — What Each Thing Is Actually Called
Here's the real vocabulary used when trading with Volume Profile, so you know exactly which term to use and what each one means:
Levels
POC (Point of Control): the price with the highest traded volume in the session. It's the center of gravity of price.
VAH (Value Area High): the upper boundary of the zone where 70% (adjustable) of volume occurred.
VAL (Value Area Low): the lower boundary of that same zone.
Value Area (VA): the full range between VAH and VAL — the fair price zone accepted by the market.
Naked POC: a POC from a previous session that price has not yet returned to touch. These act as strong magnets because they represent unresolved business.
Price Behaviors
Mean Reversion: when price moves away from the POC but returns to it because the market is in balance. This is the dominant behavior inside an equilibrium regime.
Continuation: when price breaks a Value Area extreme and keeps moving in that direction without returning, because the market is in imbalance.
Rejection: price touches a level (VAH, VAL, or POC) and snaps back quickly, leaving a wick — a sign that level was defended.
Acceptance: price enters a zone and stays there, building new volume — a sign the market considers that new range fair.
Excess: a long, thin wick with no volume behind it — a sign of violent rejection of a price, typical at range extremes.
Breakout: when price exits the Value Area with force and increasing volume. If acceptance follows the breakout, it confirms as a trend start; if there's no acceptance, it's a false breakout (fakeout) and price returns to the range (this is mean reversion after a failed breakout attempt).
Double Distribution (B-Shape): when the profile shows two high-volume zones separated by a low-volume zone — indicates the market was in two distinct price agreements during the session, typical of a trend that paused midway.
On Buyers and Sellers
Classic Volume Profile doesn't directly measure who bought or sold (that's what Delta/CVD does, not part of pure profile reading), but dominance can be inferred by observing:
If the POC shifts upward session after session, buyers are defending higher prices, buyer control.
If the POC shifts downward session after session, seller control.
If the POC stays relatively fixed while volume grows, both sides are actively negotiating without ceding ground, balance, indecisive market.
How the Indicator Works Within This Theory
The script tracks session boundaries using exact timeframe change detection and rebuilds the price/volume grid every time a new session starts.
Each candle's volume is distributed across the price levels its high-low range actually touched (body/wick weighted model), so the profile reflects where price genuinely spent time and volume — not just where it closed.
Once a session closes, the script locates the POC and expands outward, level by level, until the configured percentage of total volume (default 70%) is captured — that boundary becomes your Value Area.
Rather than just showing you where price moved, this helps you answer:
Where did volume concentrate during the session?
Was the session accepted (balance) or rejected (imbalance)?
Where is the fair price zone for this period?
How does that zone line up against higher or lower timeframe context?
While a session is still forming, the script keeps its profile, POC, and Value Area updating in real time (Live Zone) — not just the last closed session — so you can react to developing structure instead of only analyzing it afterward.
Trading Scenarios — How This Is Actually Traded
These are the real scenarios where this reading applies. You add the chart; here's the logic behind each one.
Scenario 1 — Mean Reversion Inside Balance
Regime context: The previous session's profile shows a bell-curve shape (D-Shape), POC centered, and a wide Value Area that has stayed stable across several sessions. This indicates a market in balance.
What you see on the Volume Profile: Current price is drifting away from the POC toward the VAH without growing volume behind it (little real push).
Reading: Since we're in a balance regime, the move toward VAH is likely testing the edge of the range, not the start of a trend.
How it's traded: Look for a short on rejection at the VAH, targeting the POC. Stop above the VAH with a small buffer. This is the classic fade trade — and it only makes sense because the regime is balance; the same signal in a trending regime would be a trap.
Scenario 2 — Continuation After a Breakout With Acceptance
Regime context: Price breaks above the previous session's VAH. Instead of falling back, price stays above that level for several candles, and the new forming profile (Live Zone) starts building its own POC above the old VAH.
What you see on the Volume Profile: Acceptance — the market is actively trading in the new price range, not just passing through it.
Reading: This is evidence of directional imbalance — control shifted hands (likely to buyers) and a new Value Area is forming higher up.
How it's traded: Look for a long entry on the first pullback into the old VAH (which now acts as support — the classic resistance-to-support flip), targeting the next significant volume level from a higher timeframe (e.g., the weekly POC if you're trading on Daily). Stop below the old POC.
Scenario 3 — False Breakout (Fakeout) — Reversion, Not Continuation
Regime context: Price breaks below the VAL with a strong candle, but in the following session (or in the indicator's Live Zone) price returns inside the original Value Area without building new volume below.What you see on the Volume Profile: No acceptance — the new profile forming outside the range has very little volume compared to the prior profile, a sign nobody is defending that price.
Reading: The breakout was a liquidity grab, not a real regime change. The market is still in balance.How it's traded: Look for a long entry on the return inside the Value Area, targeting the POC and potentially the opposite VAH. This is the scenario where confusing "breakout" with "continuation" costs the most money — which is why the indicator's Live Zone is key: it lets you see in real time whether the new profile is gaining volume (real continuation) or staying empty (fakeout).
Scenario 4 — Double Distribution (B-Shape) — A Pause Inside a TrendRegime context: The session's profile shows two separate high-volume zones with a thin low-volume "neck" between them.
What you see on the Volume Profile: The market traded heavily in one range, then migrated and traded heavily again in another range, without spending much time in the middle.Reading: This typically occurs inside a trend that paused — two distinct price agreements in the same session, usually connected by a fast directional move (the low-volume "neck" is where price moved without resistance).
How it's traded: The low-volume neck (the thin part of the profile) is a low-liquidity zone — if price returns there, it tends to cut through quickly in either direction, not stay. It's not a zone to trade reversion; it's a zone to wait for price to cross through and react at the POC of whichever side it's heading toward.
Scenario 5 — Multi-Timeframe Confluence (the Indicator's Most Powerful Use)Regime context: You run the indicator on Weekly and see current price touching the weekly VAL. You switch to Daily and see a daily POC also forming right at that same level.
What you see on the Volume Profile: Two different timeframes coinciding at the same price — the "why" (weekly context) and the "when" (daily execution) are aligned.Reading: This confluence across timeframes is the highest-probability signal in the whole system, because it doesn't depend on a single profile — it depends on the market respecting the same level from two different time perspectives.
How it's traded: Take the entry on Daily (precise execution), with directional bias given by the weekly regime (if weekly price is in balance, trade the reversion toward the weekly POC; if weekly is in imbalance, trade continuation toward the next relevant volume level). Stop goes outside the daily Value Area; target is the weekly POC or the opposite VAH/VAL, depending on the identified regime.
Scenario 6 — Using Real Futures Volume to Confirm Regime on Forex/CFDRegime context: You're trading XAUUSD on your CFD broker. Your broker's tick volume is synthetic (it counts price changes, not real contracts), so a profile built on that volume can show a different shape than actual market activity.
What you see on the Volume Profile: With External Futures Volume enabled and auto-detect pointing to COMEX:GC1! (Gold futures), the profile now reflects real futures market participation, while price levels still come from your XAUUSD chart.
Reading: This matters especially when your broker's tick volume gives you a POC in one place and real futures volume gives you a POC somewhere else — the difference tells you that real institutional market activity sits at a different level than what your broker is showing.
How it's traded: Prioritize the POC/VA calculated with real futures volume over native tick volume when the two diverge, because regulated futures volume (CME/COMEX/NYMEX) is auditable and reflects real participation, while tick count only reflects your specific broker's activity.Summary — Why Use This IndicatorThis script is designed for traders who read the market through:Volume Profile and Point of Control / Value Area (Auction Market Theory)Market regime identification (balance vs. imbalance)Multi-timeframe confluenceReal vs. synthetic volume on Forex/CFD instruments
Because you can run the same profile logic across completely different session lengths — from a single hourly cycle to a full year — you can compare how conviction built across timeframes: does the Daily POC sit inside last week's Value Area? Is price accepted or rejected at last month's VAH? That layered context is where this script earns its keep.Note: every scenario assumes you identify the market regime (balance vs. imbalance) first before deciding whether to trade reversion or continuation — trading the wrong signal for the wrong regime is the most common cause of losses when using Volume Profile.
Features
56 Session Lengths — 1 to 55 Minutes (1m, 2m, 3m, 4m, 5m, 6m, 7m, 8m, 9m, 10m, 12m, 15m, 20m, 25m, 30m, 35m, 40m, 45m, 50m, 55m), Tokyo, London, New York, 1 Hour through 12 Hours, Daily through 7 Days, Weekly through 5 Weeks, Monthly through 7 Months, Quarterly, Yearly.
POC, VAH, VAL with lines and text labels.
HVN/LVN — detects multiple volume peaks and valleys per session, not just the single POC.
External Futures Volume — auto-detects the real related futures contract for your symbol (metals, forex, indices, energy, crypto).
Live Panel — POC, VAH, VAL, distance, VA position, active volume source.
Configurable Styling — independent colors, widths, and sizes for every element.
Open Source Attribution and Credits
In strict compliance with TradingViews House Rules regarding open-source code reuse, I explicitly credit and thank the original developer @LeviathanCapital for their open-source script "Market sessions and Volume profile - By Leviathan", which served as the structural foundation for the session isolation and baseline volume array logic in this indicator.
Significant Algorithmic Enhancements and Added Value:
While the primary mathematical grid expansion retains architectural roots from open source, this script introduces massive procedural improvements, structural upgrades, and new calculations developed entirely by me to transform it into an institutional-grade utility:
Automated External Futures Volume Normalization (Forex/CFD Context): Implemented a dictionary algorithm (getAutoFuturesTicker) to auto-detect and scale native tick charts against centralized futures markets (e.g., CME:6E1!, COMEX:GC1!, CME_MINI:NQ1!). This replaces synthetic broker data with authentic trading volume while maintaining local price scales.
Volume Nodes Engine (Multi-Peak HVN / LVN Detection): Developed an array scanning filter that runs on closed sessions to automatically isolate contiguous high/low volume anomalies. This effectively flags multiple supply/demand zones (like the humps of a double-distribution profile) beyond the baseline single POC.
Real-Time Live Zone Tracking: Integrated a dynamic recalculation engine for ongoing unclosed trading sessions, updating developing POCs, VAHs, and VALs seamlessly on the active bar state.
Interactive Live Dashboard Panel: Programmed a comprehensive on-screen status table displaying absolute values for POC/VAH/VAL, current distance from point of control, value area boundary status, and status indicators of the active volume feed.
Expanded Graphical and Period Customization: Redesigned aesthetic configurations, text label sizing, box boundary styles, and added resolution adjustments alongside line right-extensions.
Open Source Attribution and Credits
In strict compliance with TradingViews House Rules regarding open-source code reuse, I explicitly credit and thank the original developer LeviathanCapital for their work.
The original script "Market sessions and Volume profile - By @LeviathanCapital served as the logical foundation for the session isolation and baseline volume array logic in this indicator. All rights and original logical baselines remain under their respective ownership.
Indicator

Smart Flow Imbalance [StrixEDGE]TRADINGVIEW CATEGORIES
1. Volume
2. Trend Analysis
3. Oscillators
SEARCH TAGS (9)
smart-flow-imbalance, overlay-signals, order-flow, volume, relative-volume, buying-selling-pressure, accumulation-distribution, momentum, market-structure
DESCRIPTION
StrixEDGE Smart Flow Imbalance is Engine #06 in the StrixEDGE indicator framework. It is a flow-focused market-state tool designed to identify changes in directional quality, liquidity behavior, volatility structure and confirmation strength without relying on a single conventional oscillator.
WHAT THIS INDICATOR IS DESIGNED TO DO
Blends persistent flow, displacement and range structure into a directional participation score.
Rather than treating one input as a complete signal, StrixEDGE combines the engine's dedicated core logic with an optional DNA layer. The final result is normalized into a 0–100 Strix Score so the same framework can be read consistently across different symbols and timeframes.
HOW TO READ THE STRIX SCORE
• Above 72: bullish state / long-side trigger zone.
• Below 28: bearish state / short-side trigger zone.
• Around 50: balanced or neutral state.
• A signal is generated on a transition into a trigger zone, not on every bar that remains inside it.
SIGNAL & POSITION FRAMEWORK
When a valid state transition is detected, the overlay version can create a structured trade plan containing:
• Entry
• DCA level
• TP1
• TP2
• TP3
• Stop Loss
Each projected level includes its percentage distance from Entry. When a level is reached, the same chart label is updated with a ✓ marker. TP and SL outcome tracking is mutually controlled so the dashboard does not report contradictory terminal results for the same setup.
PROFESSIONAL DASHBOARD
The built-in StrixEDGE dashboard summarizes the active market state in a compact TradingView table, including:
• Engine and category
• Strix Score and directional bias
• Signal / market regime
• Flow pressure and trend quality
• Relative volume and ATR volatility
• Structure / VWAP context
• Active position and signal age
• Entry, DCA, TP1, TP2, TP3 and SL
• Hit status for each projected level
COMBINATION PROFILE
• CORE BALANCE
• Active DNA modules: 3
• Lookback: 24
• Smoothing: 5
• Signal threshold: 72
ENGINE DNA
• Displacement Efficiency — Directional body displacement normalized by ATR and relative volume.
• Range Structure Balance — Maps close location inside rolling high/low structure to a signed state.
• Normalized Flow Acceleration — Smooths ATR-normalized return × relative volume to estimate directional flow.
MARKET / STYLE PROFILE
• Market focus: Crypto
• Intended style: Swing
• Core engine: #06 Smart Flow Imbalance
• Category: Flow
NON-REPAINT / DATA HANDLING
By default, signals require a confirmed chart-bar close. This reduces intrabar signal fluctuation and makes historical signal placement more stable.
ALERTS
The generated script includes alert conditions for:
• Long state shift
• Short state shift
• DCA reached
• TP1 reached
• TP2 reached
• TP3 reached
• Stop Loss reached
HOW I USE IT
StrixEDGE is designed as a market-state and trade-structure tool rather than a standalone prediction system. Stronger setups generally occur when the Strix Score, market regime, flow pressure, structure and volatility context agree instead of relying on the trigger alone.
LIMITATIONS
No indicator can predict future price movement with certainty. Signals can fail during sudden news events, illiquid conditions, gaps, abnormal volatility, regime transitions or unreliable volume. DCA, TP and SL levels are systematic projections derived from the active setup and should not be interpreted as guaranteed outcomes.
Users should validate the indicator on the symbol, exchange and timeframe they trade, and should apply independent position sizing and risk management. Historical behavior does not guarantee future performance.
ORIGINALITY
StrixEDGE Engine #06 is built from generic price, volume, volatility, structure and confirmed-context primitives arranged in a dedicated engine formula and optional DNA layer. It is not intended to reproduce or rename a specific community indicator.
DISCLAIMER
For research and educational purposes only. This indicator is not financial advice and does not guarantee profitability. Indicator

Smooths Heat Seeker Liquidity MapOverview
This indicator maps resting liquidity by detecting confirmed swing highs and lows at three independent lookback lengths, then rendering each one as a zone that visibly fades the longer it goes untouched. Instead of a static box that holds one shade until it's swept, each zone is built from small time-segments, and each segment locks in whatever color the zone's fade formula produces at the moment it's drawn — so a single zone shows a genuine gradient across its own lifetime, brightest where it formed and dimmer toward the present if nothing has happened to it since.
Concepts used
Tiered pivot detection: ta.pivothigh()/ta.pivotlow() run at three separate lookback lengths (Fast/Mid/Slow). A pivot only confirms after "Confirmation Bars" bars have passed with no higher high / lower low, which is what prevents repainting the level's location after the fact.
Age-based color decay: each level stores the bar index it was formed on. Every time a new segment is drawn, the indicator computes how many bars old the level is, runs that through a decay curve (fadeStrength input controls the curve's steepness), and converts the result into a transparency value for that segment only. Because past segments are never redrawn, the visual history of the fade is preserved rather than the whole zone jumping to one shade at once.
Mitigation vs. retest: a level is deleted the instant price crosses it (wick or close, user's choice) — that's treated as the liquidity being consumed. If price merely touches the level without crossing it, and "Refresh Fade On Retest" is on, the level's age resets to zero, so a level that keeps getting defended stays bright while one that's simply being ignored keeps fading toward removal.
Tier-priority merging: if a new pivot lands at the same price as an existing level, the indicator keeps the higher tier rather than creating a duplicate zone, so a level significant on the Slow lookback doesn't get visually diluted by a Fast-tier duplicate sitting on top of it.
How to use it
Add it to any chart/timeframe with default settings. Brighter zones are recent or actively-retested liquidity; dimmer zones are levels the market has drifted away from without touching. Use Fast/Mid/Slow tier colors to separate minor intraday levels from more structurally significant ones, and adjust Fade/Lifetime, Fade Strength, and Cell Width to control how far back the map looks and how coarse or smooth the fade appears.
Originality
This is not a combination of other publications — there's a single detection-and-rendering pipeline here (pivot detection → age tracking → per-segment decay → mitigation/retest handling), and every part of it was written for this script. No code, calculations, or visual techniques are reused from another publication.
Inputs
Fast / Mid / Slow — pivot lookback lengths for the three liquidity tiers
Confirmation Bars — bars required after a swing point before it's confirmed
Mitigate On — wick or close removes a level
Fade/Lifetime, Fade Strength, Cell Width — control how long a zone lives and how its decay curve is shaped
Refresh Fade On Retest — restarts a zone's age on an unmitigated touch
Box Height Multiplier — sets zone thickness as a multiple of ATR
Weak / Mid / Strong colors — one color per tier
This indicator has no signals, alerts, or trade markers — it's a pure visualization of where liquidity currently sits on the chart, and how fresh or stale each level is. Indicator

Delta by Price [SVP Style]🔹 Introduction
This indicator, "Delta by Price", builds a session volume profile where each row shows net signed volume — estimated buying pressure minus estimated selling pressure — instead of total volume traded.
The idea is straightforward. A standard volume profile tells you where the market spent its activity. It cannot tell you who won at those prices. Two rows with identical volume can mean completely opposite things: one where aggressive buyers lifted offers and price left immediately, and one where aggressive buyers hit a wall of resting supply and went nowhere. Total volume is blind to the difference. Net delta is not.
Here is the honest part, stated up front: true delta requires knowing whether each trade executed at the bid or the ask, and TradingView does not expose that data to Pine. Every delta figure this script produces is an estimate derived from intrabar price direction. That estimate is defensible — it is essentially the tick rule, one of the oldest and best-studied trade classification methods in market microstructure — but it is an estimate, and I will be specific throughout about where it degrades.
🔹 The Premise
🔸 Every trade has two sides, but only one initiator
A trade happens when someone crosses the spread. A resting limit order sits passively; a market order comes and takes it. Both parties transact the same volume, but only one of them demanded immediacy. That asymmetry is the entire foundation of order flow analysis.
Delta is the running count of who demanded immediacy. If 10,000 contracts trade at a price and 7,000 of them were buyers lifting offers, delta at that price is +4,000. The other 3,000 buyers were filled passively by sellers who came to them.
Why does this matter? Because aggression that produces movement and aggression that produces nothing are two very different market states.
🔸 A worked example
Assume ES is trading at 5,000.00 and rotating into yesterday's value area low at 4,992.00.
Price arrives at 4,992.00. Over the next fifteen minutes, 40,000 contracts trade in a two-point band around that level. Delta over that window is −22,000 — heavily seller-initiated. Aggressive sellers are hitting the bid relentlessly.
Now ask the only question that matters: where is price?
Case one: price is at 4,986.00. Sellers pressed, and price gave way. The imbalance produced displacement. The level failed. Delta and price agree.
Case two: price is at 4,992.50. Sellers pressed 22,000 contracts of net aggression into that level and price is half a point higher than where they started. Every one of those market sell orders was filled by a passive buyer who was willing to stand there and take the other side. Nobody absorbs 22,000 contracts by accident.
The second case is the interesting one, and total volume cannot see it at all. Both cases print 40,000 contracts at 4,992.00. The volume profile draws an identical row. Only the sign and size of the delta, held against price's failure to move, separates a level that broke from a level that held.
This is the phenomenon usually called absorption, and it is the reason a delta profile exists.
🔸 Why the row matters more than the bar
Most delta tooling on TradingView plots delta per bar — one number per five-minute candle, or a cumulative line. That is useful, but it throws away the location information.
Consider a five-minute bar with a total delta of +200. Unremarkable. Now decompose it: +3,000 of net buying concentrated in the bottom three ticks of the bar's range, and −2,800 spread across the top. That is not a neutral bar. That is buyers being aggressive at the low and sellers being aggressive at the high — a violently two-sided bar that nets to nearly nothing.
Aggregating delta to the bar destroys exactly the information that makes delta actionable, because the level is the whole point. Order flow that is not anchored to a price you care about is noise. Order flow at a mapped level — a value area edge, a prior day's POC, an untested gap — is context.
Delta by Price exists to put the imbalance back where it happened.
🔸 What the research actually says about inferring direction from price
Since the classification is inferred rather than observed, it is worth knowing how good the inference is. This is well-studied.
Lee and Ready (1991) introduced the standard framework for classifying trades as buyer- or seller-initiated when the initiator is not recorded in the data. Ellis, Michaely, and O'Hara (2000) then tested those methods against a proprietary Nasdaq dataset that did record the true initiator, and found the quote rule, the tick rule, and the Lee-Ready rule correctly classified 76.4%, 77.66%, and 81.05% of trades respectively. Finucane (2000), testing the same question independently, found the tick test performed roughly as well as the more elaborate Lee-Ready algorithm — and that both performed worse than researchers had assumed.
So the tick rule lands somewhere in the mid-to-high seventies for accuracy on equities. Not exact. Not noise either.
There is a more pointed finding for futures traders. Andersen and Bondarenko (2015) constructed an accurate trade classification benchmark specifically for E-mini S&P 500 futures, using quote and trade data, and compared it against the bulk-volume classification scheme of Easley, López de Prado, and O'Hara (2012). Two results are relevant here. First, the simple tick rule outperformed bulk-volume classification. Second — and this is the part worth internalizing — rising volatility systematically induces classification errors.
Read that again, because it is the single most important limitation of this tool. The delta estimate is least reliable precisely during the fast, volatile, high-participation moments you most want to read. No amount of code fixes this. It is a property of inferring intent from price when price is moving quickly.
And separately, order imbalance is not a curiosity — it is a documented driver of returns. Chordia, Roll, and Subrahmanyam (2002) found market-wide returns are strongly affected by contemporaneous and lagged order imbalance, and that returns reverse after large negative-imbalance days. Chordia and Subrahmanyam (2004) extended the result to individual names. Chan and Fong (2000) tied order imbalance directly to the volatility-volume relation.
The concept is sound and the measurement is approximate. Both of those things are true at once, and the second one is why this indicator is built as a context tool rather than a signal generator.
🔹 How It Works
🔸 Estimating delta
Show Image
The script requests lower-timeframe OHLCV data for every chart bar — automatically selecting 1-second intrabars on a seconds chart, 1-minute on intraday, and so on, or a timeframe you specify.
Each intrabar is classified by the tick rule: close above open, its volume counts as buy-initiated; close below open, sell-initiated; unchanged, discarded. That signed volume is then dropped into the price row containing the intrabar's close.
There are limitations and assumptions here. The classification is per intrabar, not per trade — a one-minute intrabar containing 4,000 contracts is treated as one directional unit, when in reality it contained thousands of individually classifiable transactions. And the entire intrabar's volume is assigned to a single row, even though the intrabar had a range. On a violent one-minute bar spanning fifteen ticks, that is a real distortion.
Choosing a finer lower timeframe reduces both problems — 1-second intrabars classify and locate far more precisely than 1-minute. The tradeoff is history: finer intrabars exhaust TradingView's intrabar data budget faster, so the profile reaches back over fewer sessions. That is the trade you are making with that setting, and it is worth making deliberately.
🔸 Tick-based rows
Most profile scripts ask for a row count and divide the range by it. That means the row height changes every session — a 40-point day and a 90-point day produce rows of different sizes, and a row never covers the same prices twice.
This one asks for a row size in ticks, and rows sit on a fixed grid anchored to the instrument's tick size. A 4-tick row on ES always spans the same four ticks, session after session. Profiles become directly comparable across days, and rows line up with the price levels you actually mark.
The constraint is Pine's 500-drawing-object ceiling, shared across every profile on screen. The script computes a per-session row budget, and if a session's range needs more rows than its budget allows, rows are merged automatically and the effective size is displayed in the stats table. Nothing is silently dropped — you are told when the resolution you asked for was not available. Fewer sessions displayed means a larger budget each and finer rows.
🔸 Multi-session profiles
Show Image
Each completed session is drawn once at its own anchor and frozen; the developing session redraws live on every tick. Closed sessions are faded so the current one reads clearly against its history, and profile width scales to each session's own bar span.
One structural limitation: historical profiles are constructed bar-by-bar as the script executes, which means they exist only for sessions inside the chart's loaded history. Scroll back far enough and they stop. TradingView's own Session Volume Profile behaves identically — it is a property of the platform, not a defect in the implementation.
🔸 POC and Value Area
The point of control marks the row with the highest concentration, and the value area expands outward from it until the chosen percentage of the session's activity is enclosed — the conventional 70% by default, which comes from treating the distribution as roughly normal and taking one standard deviation.
The POC / VA Source toggle is the interesting setting, and it changes what question the profile answers.
Set to Volume, POC and value area are computed on total volume. This reproduces a conventional volume profile's levels — the prices with the most transaction activity, the ones most traders are watching, the ones that function as reference points precisely because they are widely observed.
Set to Absolute Delta, POC and value area are computed on the magnitude of net imbalance instead. Now the POC marks the price with the largest one-sided commitment, which is not necessarily the price with the most volume. A row can carry enormous volume and near-zero delta — that is two-sided churn, and a volume POC will flag it while a delta POC will not.
When those two levels sit far apart, the session had heavy activity somewhere the participants were evenly matched, and heavy commitment somewhere else. That gap is often more informative than either level alone.
🔸 Reading it
Row length is the magnitude of net imbalance at that price; color is the sign. Long teal rows are net buying, long red rows are net selling, short rows are balance.
A few configurations worth recognising:
Large delta with no displacement. A long row at an extreme of the session, where price then reversed. The aggression was absorbed by passive size. This is the absorption signature from the worked example above.
Large delta with displacement. A long row that price left immediately and did not revisit. The aggression was rewarded — closer to initiative than absorption.
Delta sign flipping at a value area edge. Price retests the edge and the rows there change color from the prior test. Something about who is defending that level changed.
A stack of same-color rows away from the POC. Sustained one-sided commitment away from the balance area — usually where a trend leg was built.
None of these are signals. They are descriptions of what happened at a price, and they are only worth anything when the price already mattered to you before you looked at the profile. A large delta row in the middle of a featureless range is a statistic. The same row at yesterday's value area low, on a retest, in a session where you already had a directional thesis, is context.
🔹 Closing Remarks
Volume tells you where the market was busy. Delta attempts to tell you who was demanding immediacy while it was busy there — and the disagreement between heavy aggression and absent movement is one of the more reliable tells that passive size is defending a price.
That said, everything here rests on an inference. The classification is the tick rule applied to intrabar candles, not observed bid/ask execution data, and the research is clear that this approach is right somewhere in the high seventies percent of the time on individual trades and gets worse as volatility rises. Volume is assigned to rows at intrabar closes rather than at the price of each transaction. Row resolution is bounded by a hard platform limit.
Treat every level this draws as a probabilistic reading of what likely happened, not a record of what did. Large delta clusters do not guarantee that a level will hold, and a POC is not a magnet. Used as a layer of context over levels you mapped independently — and ignored when the profile disagrees with the rest of your read — it earns its place on the chart. Used as a standalone entry trigger, it will disappoint you, and the research above explains exactly why.
If you find configurations that read well on your instrument, or edge cases where the estimate breaks down in an interesting way, I would like to hear about them.
🔹 References
Trade classification and its accuracy
Lee, C. M. C., & Ready, M. J. (1991). Inferring Trade Direction from Intraday Data. The Journal of Finance, 46(2), 733–746.
Ellis, K., Michaely, R., & O'Hara, M. (2000). The Accuracy of Trade Classification Rules: Evidence from Nasdaq. Journal of Financial and Quantitative Analysis, 35(4), 529–551.
Finucane, T. J. (2000). A Direct Test of Methods for Inferring Trade Direction from Intra-Day Data. Journal of Financial and Quantitative Analysis, 35(4), 553–576.
Order flow classification in futures markets
Easley, D., López de Prado, M. M., & O'Hara, M. (2012). Flow Toxicity and Liquidity in a High-Frequency World. The Review of Financial Studies, 25(5), 1457–1493.
Andersen, T. G., & Bondarenko, O. (2015). Assessing Measures of Order Flow Toxicity and Early Warning Signals for Market Turbulence. Review of Finance, 19(1), 1–54.
Order imbalance and returns
Chordia, T., Roll, R., & Subrahmanyam, A. (2002). Order imbalance, liquidity, and market returns. Journal of Financial Economics, 65(1), 111–130.
Chordia, T., & Subrahmanyam, A. (2004). Order imbalance and individual stock returns: Theory and evidence. Journal of Financial Economics, 72(3), 485–518.
Chan, K., & Fong, W.-M. (2000). Trade size, order imbalance, and the volatility-volume relation. Journal of Financial Economics, 57(2), 247–273. Indicator

Fabio Delta Volume Profile🔹 Introduction
This indicator, "Fabio Delta Volume Profile", builds a session volume profile where each row shows net signed volume — estimated buying pressure minus estimated selling pressure — instead of total volume traded.
The idea is straightforward. A standard volume profile tells you where the market spent its activity. It cannot tell you who won at those prices. Two rows with identical volume can mean completely opposite things: one where aggressive buyers lifted offers and price left immediately, and one where aggressive buyers hit a wall of resting supply and went nowhere. Total volume is blind to the difference. Net delta is not.
Here is the honest part, stated up front: true delta requires knowing whether each trade executed at the bid or the ask, and TradingView does not expose that data to Pine. Every delta figure this script produces is an estimate derived from intrabar price direction. That estimate is defensible — it is essentially the tick rule, one of the oldest and best-studied trade classification methods in market microstructure — but it is an estimate, and I will be specific throughout about where it degrades.
🔹 The Premise
🔸 Every trade has two sides, but only one initiator
A trade happens when someone crosses the spread. A resting limit order sits passively; a market order comes and takes it. Both parties transact the same volume, but only one of them demanded immediacy. That asymmetry is the entire foundation of order flow analysis.
Delta is the running count of who demanded immediacy. If 10,000 contracts trade at a price and 7,000 of them were buyers lifting offers, delta at that price is +4,000. The other 3,000 buyers were filled passively by sellers who came to them.
Why does this matter? Because aggression that produces movement and aggression that produces nothing are two very different market states.
🔸 A worked example
Assume ES is trading at 5,000.00 and rotating into yesterday's value area low at 4,992.00.
Price arrives at 4,992.00. Over the next fifteen minutes, 40,000 contracts trade in a two-point band around that level. Delta over that window is −22,000 — heavily seller-initiated. Aggressive sellers are hitting the bid relentlessly.
Now ask the only question that matters: where is price?
Case one: price is at 4,986.00. Sellers pressed, and price gave way. The imbalance produced displacement. The level failed. Delta and price agree.
Case two: price is at 4,992.50. Sellers pressed 22,000 contracts of net aggression into that level and price is half a point higher than where they started. Every one of those market sell orders was filled by a passive buyer who was willing to stand there and take the other side. Nobody absorbs 22,000 contracts by accident.
The second case is the interesting one, and total volume cannot see it at all. Both cases print 40,000 contracts at 4,992.00. The volume profile draws an identical row. Only the sign and size of the delta, held against price's failure to move, separates a level that broke from a level that held.
This is the phenomenon usually called absorption, and it is the reason a delta profile exists.
🔸 Why the row matters more than the bar
Most delta tooling on TradingView plots delta per bar — one number per five-minute candle, or a cumulative line. That is useful, but it throws away the location information.
Consider a five-minute bar with a total delta of +200. Unremarkable. Now decompose it: +3,000 of net buying concentrated in the bottom three ticks of the bar's range, and −2,800 spread across the top. That is not a neutral bar. That is buyers being aggressive at the low and sellers being aggressive at the high — a violently two-sided bar that nets to nearly nothing.
Aggregating delta to the bar destroys exactly the information that makes delta actionable, because the level is the whole point. Order flow that is not anchored to a price you care about is noise. Order flow at a mapped level — a value area edge, a prior day's POC, an untested gap — is context.
Delta by Price exists to put the imbalance back where it happened.
🔸 What the research actually says about inferring direction from price
Since the classification is inferred rather than observed, it is worth knowing how good the inference is. This is well-studied.
Lee and Ready (1991) introduced the standard framework for classifying trades as buyer- or seller-initiated when the initiator is not recorded in the data. Ellis, Michaely, and O'Hara (2000) then tested those methods against a proprietary Nasdaq dataset that did record the true initiator, and found the quote rule, the tick rule, and the Lee-Ready rule correctly classified 76.4%, 77.66%, and 81.05% of trades respectively. Finucane (2000), testing the same question independently, found the tick test performed roughly as well as the more elaborate Lee-Ready algorithm — and that both performed worse than researchers had assumed.
So the tick rule lands somewhere in the mid-to-high seventies for accuracy on equities. Not exact. Not noise either.
There is a more pointed finding for futures traders. Andersen and Bondarenko (2015) constructed an accurate trade classification benchmark specifically for E-mini S&P 500 futures, using quote and trade data, and compared it against the bulk-volume classification scheme of Easley, López de Prado, and O'Hara (2012). Two results are relevant here. First, the simple tick rule outperformed bulk-volume classification. Second — and this is the part worth internalizing — rising volatility systematically induces classification errors.
Read that again, because it is the single most important limitation of this tool. The delta estimate is least reliable precisely during the fast, volatile, high-participation moments you most want to read. No amount of code fixes this. It is a property of inferring intent from price when price is moving quickly.
And separately, order imbalance is not a curiosity — it is a documented driver of returns. Chordia, Roll, and Subrahmanyam (2002) found market-wide returns are strongly affected by contemporaneous and lagged order imbalance, and that returns reverse after large negative-imbalance days. Chordia and Subrahmanyam (2004) extended the result to individual names. Chan and Fong (2000) tied order imbalance directly to the volatility-volume relation.
The concept is sound and the measurement is approximate. Both of those things are true at once, and the second one is why this indicator is built as a context tool rather than a signal generator.
🔹 How It Works
🔸 Estimating delta
Show Image
The script requests lower-timeframe OHLCV data for every chart bar — automatically selecting 1-second intrabars on a seconds chart, 1-minute on intraday, and so on, or a timeframe you specify.
Each intrabar is classified by the tick rule: close above open, its volume counts as buy-initiated; close below open, sell-initiated; unchanged, discarded. That signed volume is then dropped into the price row containing the intrabar's close.
There are limitations and assumptions here. The classification is per intrabar, not per trade — a one-minute intrabar containing 4,000 contracts is treated as one directional unit, when in reality it contained thousands of individually classifiable transactions. And the entire intrabar's volume is assigned to a single row, even though the intrabar had a range. On a violent one-minute bar spanning fifteen ticks, that is a real distortion.
Choosing a finer lower timeframe reduces both problems — 1-second intrabars classify and locate far more precisely than 1-minute. The tradeoff is history: finer intrabars exhaust TradingView's intrabar data budget faster, so the profile reaches back over fewer sessions. That is the trade you are making with that setting, and it is worth making deliberately.
🔸 Tick-based rows
Most profile scripts ask for a row count and divide the range by it. That means the row height changes every session — a 40-point day and a 90-point day produce rows of different sizes, and a row never covers the same prices twice.
This one asks for a row size in ticks, and rows sit on a fixed grid anchored to the instrument's tick size. A 4-tick row on ES always spans the same four ticks, session after session. Profiles become directly comparable across days, and rows line up with the price levels you actually mark.
The constraint is Pine's 500-drawing-object ceiling, shared across every profile on screen. The script computes a per-session row budget, and if a session's range needs more rows than its budget allows, rows are merged automatically and the effective size is displayed in the stats table. Nothing is silently dropped — you are told when the resolution you asked for was not available. Fewer sessions displayed means a larger budget each and finer rows.
🔸 Multi-session profiles
Show Image
Each completed session is drawn once at its own anchor and frozen; the developing session redraws live on every tick. Closed sessions are faded so the current one reads clearly against its history, and profile width scales to each session's own bar span.
One structural limitation: historical profiles are constructed bar-by-bar as the script executes, which means they exist only for sessions inside the chart's loaded history. Scroll back far enough and they stop. TradingView's own Session Volume Profile behaves identically — it is a property of the platform, not a defect in the implementation.
🔸 POC and Value Area
The point of control marks the row with the highest concentration, and the value area expands outward from it until the chosen percentage of the session's activity is enclosed — the conventional 70% by default, which comes from treating the distribution as roughly normal and taking one standard deviation.
The POC / VA Source toggle is the interesting setting, and it changes what question the profile answers.
Set to Volume, POC and value area are computed on total volume. This reproduces a conventional volume profile's levels — the prices with the most transaction activity, the ones most traders are watching, the ones that function as reference points precisely because they are widely observed.
Set to Absolute Delta, POC and value area are computed on the magnitude of net imbalance instead. Now the POC marks the price with the largest one-sided commitment, which is not necessarily the price with the most volume. A row can carry enormous volume and near-zero delta — that is two-sided churn, and a volume POC will flag it while a delta POC will not.
When those two levels sit far apart, the session had heavy activity somewhere the participants were evenly matched, and heavy commitment somewhere else. That gap is often more informative than either level alone.
🔸 Reading it
Row length is the magnitude of net imbalance at that price; color is the sign. Long teal rows are net buying, long red rows are net selling, short rows are balance.
A few configurations worth recognising:
Large delta with no displacement. A long row at an extreme of the session, where price then reversed. The aggression was absorbed by passive size. This is the absorption signature from the worked example above.
Large delta with displacement. A long row that price left immediately and did not revisit. The aggression was rewarded — closer to initiative than absorption.
Delta sign flipping at a value area edge. Price retests the edge and the rows there change color from the prior test. Something about who is defending that level changed.
A stack of same-color rows away from the POC. Sustained one-sided commitment away from the balance area — usually where a trend leg was built.
None of these are signals. They are descriptions of what happened at a price, and they are only worth anything when the price already mattered to you before you looked at the profile. A large delta row in the middle of a featureless range is a statistic. The same row at yesterday's value area low, on a retest, in a session where you already had a directional thesis, is context.
🔹 Closing Remarks
Volume tells you where the market was busy. Delta attempts to tell you who was demanding immediacy while it was busy there — and the disagreement between heavy aggression and absent movement is one of the more reliable tells that passive size is defending a price.
That said, everything here rests on an inference. The classification is the tick rule applied to intrabar candles, not observed bid/ask execution data, and the research is clear that this approach is right somewhere in the high seventies percent of the time on individual trades and gets worse as volatility rises. Volume is assigned to rows at intrabar closes rather than at the price of each transaction. Row resolution is bounded by a hard platform limit.
Treat every level this draws as a probabilistic reading of what likely happened, not a record of what did. Large delta clusters do not guarantee that a level will hold, and a POC is not a magnet. Used as a layer of context over levels you mapped independently — and ignored when the profile disagrees with the rest of your read — it earns its place on the chart. Used as a standalone entry trigger, it will disappoint you, and the research above explains exactly why.
If you find configurations that read well on your instrument, or edge cases where the estimate breaks down in an interesting way, I would like to hear about them.
🔹 References
Trade classification and its accuracy
Lee, C. M. C., & Ready, M. J. (1991). Inferring Trade Direction from Intraday Data. The Journal of Finance, 46(2), 733–746.
Ellis, K., Michaely, R., & O'Hara, M. (2000). The Accuracy of Trade Classification Rules: Evidence from Nasdaq. Journal of Financial and Quantitative Analysis, 35(4), 529–551.
Finucane, T. J. (2000). A Direct Test of Methods for Inferring Trade Direction from Intra-Day Data. Journal of Financial and Quantitative Analysis, 35(4), 553–576.
Order flow classification in futures markets
Easley, D., López de Prado, M. M., & O'Hara, M. (2012). Flow Toxicity and Liquidity in a High-Frequency World. The Review of Financial Studies, 25(5), 1457–1493.
Andersen, T. G., & Bondarenko, O. (2015). Assessing Measures of Order Flow Toxicity and Early Warning Signals for Market Turbulence. Review of Finance, 19(1), 1–54.
Order imbalance and returns
Chordia, T., Roll, R., & Subrahmanyam, A. (2002). Order imbalance, liquidity, and market returns. Journal of Financial Economics, 65(1), 111–130.
Chordia, T., & Subrahmanyam, A. (2004). Order imbalance and individual stock returns: Theory and evidence. Journal of Financial Economics, 72(3), 485–518.
Chan, K., & Fong, W.-M. (2000). Trade size, order imbalance, and the volatility-volume relation. Journal of Financial Economics, 57(2), 247–273. Indicator

ChartlingCHARTLING
A tiny market-aware companion that lives on your chart.
Every day, a new Chartling can hatch on your chart with its own permanent identity: appearance, rarity, name, personality, traits and quirks. As the market moves, it reads those conditions, reacts to them, and gets on with its own little life. It might study the chart, grab a coffee, read, exercise, nap, or watch the market through a telescope.
Chartling experiences the market with you.
DAILY HATCH
At a configurable hatch time and timezone, each day brings a new deterministic Chartling that grows through a small lifecycle:
EGG → HATCH → YOUNG → ADULT
The HUD shows its current age, and its look develops as it grows.
THE CATALOGUE
Chartling contains a deterministic catalogue of 999,999,999 creatures, IDs #000000001 to #999999999 .
Every valid ID permanently maps to one canonical Chartling: a unique three-part name, rarity, palette, head, tail, markings, core, personality, dominant traits and two quirks.
Enter the same ID again and you get the same canonical Chartling.
The ID is its permanent genetic address.
RARITY
Six deterministic tiers, shown in the HUD in each tier's color:
COMMON — 599,999,999
UNCOMMON — 250,000,000
RARE — 100,000,000
VERY RARE — 40,000,000
MYSTICAL — 9,000,000
LEGENDARY — 1,000,000
Higher tiers unlock rarer cosmetic gene pools, up to the Golden palette and Halo core at Legendary.
PERSONALITY & QUIRKS
Traits like curiosity, laziness, confidence and drama combine into archetypes such as QUANT, GREMLIN, LOAF, HOTSHOT and SCOUT.
Each Chartling also carries two permanent quirks — COFFEE, NAPPER, WATCHER, FIT and more — that influence its behavior, so a coffee-lover and a napper can live noticeably different days.
MARKET SENSE
Chartling reads the market through a Flow + Wave system and wears that information:
Flow becomes belly color — reflecting direction and strength around a smoothed market reference.
Wave becomes a small flag — green when price is above the Wave, red when below, and no flag when price overlaps it.
A configurable Trend Timeframe can drive the Wave.
When it is higher than the chart timeframe, Chartling uses confirmed higher-timeframe data. When it is equal to or lower, Chartling uses the chart timeframe.
Repeated Flow changes, sustained trends and choppy stretches feed a small market memory that shifts its mood over time.
TRADING WISDOM
On by default: 500 trading-psychology reflections covering risk, patience, discipline, FOMO, drawdowns and more.
A reflection is selected deterministically from each Chartling's ID.
Turn Trading Wisdom off for the more whimsical Chartling Lore .
Either way, the creature's canonical identity stays the same.
COLLECTING
Add IDs to your Keeper List to remember favorites.
Use Show Chartling # to summon any catalogue ID. A summoned Chartling keeps the current day's age and lifecycle while displaying that ID's permanent identity.
A private Trainer Code personalizes your daily hatch sequence. Using the same Trainer Code with the same market, hatch settings and day reproduces the same hatch.
HUD & LAYOUT
A five-line identity card shows:
Name / rarity
ID / age
Personality / traits / quirks
DNA / collection status
Trading Wisdom or Chartling Lore
The HUD adapts to light and dark chart themes, while the Chartling's name, ID and DNA retain its rarity color.
Chartling and the HUD can be positioned independently across eight chart locations.
Static Chartling pauses animation and Market Sense for a quieter collectible view.
HOW TO USE
Add Chartling and set your hatch time and timezone.
Optionally enter a Trainer Code for a repeatable daily hatch sequence.
Let it hatch and watch personality and market conditions shape its behavior.
Keep the ones you like and revisit any ID with Show Chartling #.
Chartling is an informational, educational and entertainment-oriented market companion. Flow, Wave, volatility, volume and range drive its visuals and behavior; Trading Wisdom offers general reflection.
Market interpretation, trade selection and risk decisions remain with you.
Every chart has a story. Every day has a new Chartling.
Chartling experiences the market with you. Indicator

Trade Wzrd - Auction [Rampage Series]✨ Trade Wzrd - Auction a higher-timeframe volume auction rebuilt live on your chart: the forming HTF candle wears its order flow on its body, with buy volume winging right and sell volume winging left per price row, a gold point-of-control frame, a dashed volume-weighted control line, and the live auction delta on top. Multi-timeframe order flow and volume profile logic, readable in half a second.
Every higher-timeframe candle is an auction playing out in slow motion. Most tools show you the candle after it closes. Auction shows you the bidding INSIDE it while it forms - and tells you who is winning.
THE AUCTION
Every chart bar's volume is split by who won its close, then filed at the price where it traded across the forming candle's range. The result rides on the candle itself:
Buy mass wings out to the RIGHT of the body, sell mass to the LEFT - each row's width and intensity scaled by what actually traded there.
The gold frame = POINT OF CONTROL: the row the auction has accepted most.
The dashed line = CONTROL PRICE: the volume-weighted mean of everything bid so far, drawn back to where the bidding started.
The delta tag = who is carrying the auction right now. The split tag = the exact buy/sell balance.
When the candle closes, its POC settles into a dotted gold FOSSIL - the settled auctions stay on chart until price crosses them again. The archaeology of where fair value used to sit.
THE SIGNALS - THE AUCTION RESOLVES TWO WAYS
POC RECLAIM - price crosses back through the LAST settled auction's point of control after real time on the other side (Acceptance Bars). The fairest price of the last auction changed hands. Ridden toward the settled extreme, stopped back through the POC. Side-colored chip.
DELTA DRIVE - the forming auction flips who is carrying it (delta crosses the trigger) with price on the matching side of the control price. Fresh control, ride the momentum, stopped back through control. Gold chip.
Every signal carries a CONVICTION score : this chart's own live win-rate database, bucketed by delta strength, fused with auction alignment, kinetic fuel and absorption into one number. Hover any chip for the full deep-dive: the settled POC, the control price, the auction's delta and sample count, the win probability, the verdict.
THE DASHBOARD
The auction timeframe and sample count. Live delta and the buy/sell split. The forming POC and control price. The settled POC and which side price stands on. The win-rate database, the best session, the record, kinetic fuel, automation status.
TRADEWZRD AUTOMATION
Built in, zero config. Enable Automation, create ONE alert choosing "Any alert() function call", paste your webhook URL. Entries, opposite-signal closes and TP/SL-hit closes all emit plain-text order strings - the same grammar drives automation across 7+ platforms (MT4, MT5, cTrader and major crypto exchanges). Full trade box on chart: entry, stop, auction-magnet target, R:R, and win/loss stamps where the trade actually closed.
HOW TO READ IT
The candle beside price = the forming HTF auction. Its color = winning or losing its open.
Right wing heavier than left = buyers own this auction. Watch the balance shift row by row.
Gold frame = the price most accepted. Dashed line = the mean of all bidding.
Delta tag = net delta of the forming candle. Flip past the trigger = DELTA DRIVE.
Dotted gold fossils = settled auctions' control prices. Price crossing one erases it.
THE RAMPAGE SERIES
Rift maps WHERE the volume traded. Tide knows WHO OWNS every price - and watches them defend it. Null Range knows WHERE THE VOLUME NETS TO NOTHING. Anchor knows WHERE PRICE BELONGS. Auction knows WHO IS WINNING THE CURRENT AUCTION - and shows you the bidding.
Educational shell. Not a signal service, not financial advice. Works on any symbol; pick an auction timeframe above your chart timeframe. Without volume data the wings, delta and conviction stand down.
Indicator

Order Flow PRO - Delta and ImbalanceOrder Flow PRO - Delta and Imbalance
OVERVIEW
Order Flow PRO is a volume-pressure panel for TradingView that visualizes estimated buying vs selling pressure per bar, cumulative delta, stacked imbalances, and price-delta divergence.
It helps assess whether price movement is supported by participation or developing under weakening internal conditions.
Important: TradingView does not provide true bid/ask transaction data for most instruments. Delta is estimated from bar structure and volume - not real institutional footprint.
Built by the Xcelerate Trade team.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
BEST USED WITH
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Works much better together with:
- Fluid Liquidity Zones - CHoCH + Mitigation + HTF | Xcelerate Trade
(or Fluid Liquidity Zones - CHoCH | Xcelerate Trade)
- Order Flow Footprint and Delta (OF1 / OF2 / OF3 overlay on chart)
Use SUPPLY / DEMAND zones + CHoCH / market structure first, then delta / imbalance as confirmation.
CONCEPT
Order flow analysis studies aggression and participation behind price. On TradingView, that is approximated from open/high/low/close and volume.
Use this indicator as a confluence layer after higher-level context (structure, liquidity zones, sessions) - not as a standalone entry system.
FEATURES
- Volume Delta histogram (green = bullish bar pressure, red = bearish)
- Delta MA smoothing line
- Cumulative Delta (normalized line)
- Stacked imbalance detection (3+ consecutive imbalance bars) - BUY / SELL markers
- Price-Delta divergence warnings
- Live dashboard: Delta, Cum. Delta, Volume, Pressure, Imbalance, Signal
- Dashboard position options and optional overlay on the price chart
- Alerts: stacked buy/sell imbalance, bullish/bearish divergence, extreme buying/selling pressure
HOW TO USE
1) Add the indicator on a separate pane below price (5m / 15m / 30m intraday)
2) Read Volume Delta for bar-by-bar pressure; use Cumulative Delta for session bias
3) Stacked imbalances: mark the zone, wait for pullback, confirm with structure - do not chase
4) Divergence: strongest near key levels + high volume; confirm with price action
5) Combine with Fluid Liquidity Zones and market structure before acting
RECOMMENDED SETTINGS
- Timeframes: 5m, 15m, 30m
- Delta MA Period: 20 (default)
- Imbalance Threshold: 0.7 (lower = more signals, noisier)
SKIP / AVOID
- Treating estimated delta as real bid/ask footprint
- Trading every imbalance or dashboard signal without structure context
- Ignoring high-impact news windows (volatility can distort delta)
- Using divergence alone as a guaranteed reversal call
LIMITATIONS
- Delta values are estimated due to platform data constraints.
- Results differ from platforms with exchange-level bid/ask feeds.
- Imbalance and divergence show structural conditions, not trade instructions.
- This script does not place trades and does not guarantee results.
- Always combine with your own risk management and market context.
Indicator

Order Flow Footprint & DeltaOrder Flow Footprint & Delta
OVERVIEW
Order Flow Footprint & Delta is a candle + volume proxy scanner for the Order Flow playbook on TradingView.
It marks three educational setups — OF1 Continuation, OF2 Absorption reversal, and OF3 Break & retest — using structure bias, volume impulse, absorption proxies, and break/retest logic.
Important: TradingView does not provide true bid/ask footprint data for most symbols. This script uses candle and volume proxies. The on-chart dashboard shows Proxy = no footprint.
Built by the Xcelerate Trade team.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
BEST USED WITH
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Works much better together with:
→ “Fluid Liquidity Zones - CHoCH + Mitigation + HTF | Xcelerate Trade”
(or “Fluid Liquidity Zones - CHoCH | Xcelerate Trade”)
Use SUPPLY / DEMAND zones + CHoCH / market structure first, then OF labels as confirmation.
CONCEPT
Order flow tools help traders read aggression and reaction around levels. On TradingView, those ideas are approximated from open/high/low/close and volume.
Use this indicator as confirmation after higher-level context (supply/demand or liquidity zones + market structure), not as a standalone entry system.
GOLDEN RULE
Zone (SUPPLY/DEMAND) + structure first → then OF1/OF2/OF3 as confirmation — never the reverse.
Recommended timeframes: 15m–1h. Lower timeframes (1m/3m) are noisier and produce more false signals.
HOW THE SETUPS WORK
OF1 — CONTINUATION (cyan)
Idea: trend + stacked impulse + pullback + continuation.
Long OF1 when:
1) Bull bias (HH/HL structure + optional HTF up filter)
2) A bullish impulse / stacked strong bars existed
3) Price pulled back into the impulse zone
4) Confirmation (bullish bar / positive delta proxy)
Short OF1 is the mirror for bearish continuation.
OF2 — ABSORPTION REVERSAL (violet)
Idea: sweep of a level + absorption + reclaim.
Long OF2 when:
1) Sweep below a low / level (wick down)
2) Absorption (high volume, little progress)
3) Reclaim above the level with upside aggression
Short OF2 is the mirror after a sweep above a high.
OF3 — BREAK & RETEST (green long / red short)
Idea: volume break → retest → rejection.
Long OF3: break up → retest broken level as support → rejection up.
Short OF3: break down → retest as resistance → rejection down.
FEATURES
• Toggle OF1 / OF2 / OF3 independently
• Structure bias with optional HTF filter for OF1
• Volume / delta / imbalance / absorption proxies
• Optional break level lines
• Live dashboard (bias, delta proxy, stack status, setup wait/active)
• Alerts for each OF1/OF2/OF3 long and short condition
HOW TO USE (WITH FLUID LIQUIDITY ZONES)
1) Read bias / structure (HH HL / LH LL, CHoCH) for higher-level direction
2) Note where price is: DEMAND = long bias area, SUPPLY = short bias area
3) Then use OF labels:
• DEMAND + OF2 or green OF3 → long candidates
• SUPPLY + OF2 or red OF3 → short candidates
• OF1 only with the trend (not counter-trend in a range)
4) Dashboard “wait” means no signal on the current bar; older labels remain on history
SKIP / AVOID
• Bias = RANGE and you are not clearly on a zone
• Labels in the middle of a range with no level
• OF1 against SUPPLY/DEMAND
• Chaotic OF1+OF2+OF3 overlap with no clear level
• Acting on a label alone with no zone/structure context
EXAMPLES
• DEMAND + green OF3 / OF2 → look for LONG after reclaim/confirm
• SUPPLY + red OF3 / OF2 → look for SHORT
• Cyan OF1 in uptrend, pullback into DEMAND → continuation LONG
• Label only, no zone/structure → do not enter
LIMITATIONS
• This is not real footprint / DOM / bid-ask data. Signals are proxies and can be wrong.
• Especially noisy on 1m/3m charts.
• The script does not place trades and does not guarantee results.
• Always combine with your own risk management and market context.
Indicator

Forex Liquidity Map [invincible3]b]Forex Liquidity Glow Map
The Forex Liquidity Glow Map is a visual currency-rotation dashboard designed to estimate where relative strength and trading activity are moving across the major Forex market.
The indicator analyzes all 28 unique currency pairs formed from:
USD, EUR, GBP, JPY, CHF, CAD, AUD, and NZD
Instead of evaluating one pair in isolation, it combines information from every relationship connected to each currency. This produces an aggregated flow score for all eight currencies and helps identify the strongest and weakest areas of the Forex market.
Calculation Model
Each Forex pair is evaluated using:
• ATR-normalized price momentum
• Relative tick-volume activity
• Fast-versus-slow trend structure
• Volatility expansion
• Directional breadth
• Score smoothing
• Flow acceleration
A positive pair score strengthens the base currency and weakens the quote currency. A negative pair score strengthens the quote currency and weakens the base currency.
Each currency’s final score is calculated from its seven connected pair relationships.
Because spot Forex is decentralized, the indicator uses TradingView broker-feed tick volume as an activity proxy. It does not represent centralized institutional order flow.
Forex Liquidity Map
The circular map displays the eight major currencies as nodes.
• Node value: Aggregated currency-flow score
• Node size: Average relative activity across connected pairs
• River direction: Weaker currency toward stronger currency
• River width: Estimated strength of liquidity rotation
• River color: Leading currency in that relationship
• Arrow: Direction of relative capital rotation
A positive score indicates relative strength or estimated inflow. A negative score indicates relative weakness or estimated outflow.
Water Flow Matrix
The scatter matrix shows each currency according to:
• Horizontal position: Current flow score
• Vertical position: Flow acceleration
• Bubble size: Relative pair activity
• Bubble color: Currency identity
The four matrix conditions are:
• Accelerating inflow: Positive flow with positive acceleration
• Weakening inflow: Positive flow with negative acceleration
• Accelerating outflow: Negative flow with negative acceleration
• Weakening outflow: Negative flow with positive acceleration
This helps distinguish a currency that is merely strong from one whose strength is actively increasing.
Dashboard and Pair Ranking
The dashboard includes:
• Currency strength ranking
• Current flow score
• Relative tick activity
• Momentum condition
• Inflow, outflow, or balanced status
• Ranked breakdown of all 28 Forex pairs
• Strongest and weakest currencies
• Best relative-strength pair
• Market confirmation percentage
• Current Forex-rotation regime
For example, when GBP is the strongest currency and AUD is the weakest, the dashboard may identify GBPAUD as the primary relative-strength opportunity.
Update Modes
Confirmed bars only uses completed calculation-timeframe candles. The rivers, matrix, rankings, and signals remain fixed while the current candle is forming.
Live uses the active candle and updates as price and tick volume change. This provides faster information but may change before candle close.
Confirmed mode is recommended for stable analysis and alerts. Live mode is intended for intrabar monitoring.
Display Features
• Responsive bar-index geometry
• Stable layout across intraday and higher timeframes
• Dark and Bright theme presets
• Fully opaque dashboard cells
• High-contrast currency colors
• Adjustable map and matrix dimensions
• Adjustable river threshold
• Optional arrows, glow, tooltips, tables, and signals
• Configurable TradingView Forex-feed prefix
Interpretation
The indicator is most useful for:
• Finding strongest-versus-weakest currency combinations
• Confirming directional pair setups
• Monitoring broad Forex rotation
• Detecting strengthening or weakening flows
• Avoiding pairs where both currencies have similar strength
• Comparing pair-level movement with broader currency-level confirmation
The output should be used as a market-structure and relative-strength tool , not as a standalone entry system.
Execution decisions should also consider price structure, volatility, liquidity conditions, risk management, and scheduled economic events. Indicator

Zone Flow S/R StrategyZone Flow S/R Strategy
📌 Strategy Overview
Zone Flow is a multi‑timeframe support/resistance strategy that uses dynamic pivot‑derived zones to identify high‑probability reversal and breakout setups.
Unlike static support/resistance lines, this 9‑level zone system (R4–R1, P, S1–S4) automatically adapts to market structure changes at each new period (Daily/Weekly/Monthly). Each zone has a configurable width (Percentage, ATR, or Fixed) to account for volatility, and a breakout threshold to filter out minor wicks.
# Unique Synergy
Most pivot strategies treat levels as static lines, leading to false breakouts. Most engulfing strategies ignore the bigger picture, catching falling knives. This strategy solves both problems by combining these components in a specific sequence:
1- Dynamic Zones + Gap State Machine (The Context)
Instead of just drawing lines, we create zones (R1-R4, P, S1-S4) with adaptive width. More importantly, the Gap State Machine tracks which gap price sits in (e.g., between R1 and Pivot). This tells us exactly where we are in the market structure. If price moves from upper Gap to lower Gap, the strategy instantly switches sentiment from Bullish to Bearish.
- Why this matters: It prevents the strategy from trading blindly; it only trades when price is transitioning between structural levels, and price retrace to the zone drastically reducing false signals in the middle of nowhere.
2- Pin Bar Sweep + Engulfing Combo (The Momentum Trigger)
A standard pin bar alone is a weak reversal signal. A standard engulfing pattern alone is common. However, when a Pin Bar sweeps the N-bar high/low (proving a breakout attempt failed) and is immediately followed by an Engulfing pattern on the next candle, this combo represents a "double confirmation" of exhaustion.
Crucially, this specific combo overrides the EMA confirmation.
- Why this matters: Strong momentum sweeps often happen against the short-term EMA trend. By allowing this specific combo to bypass the EMA, the strategy captures powerful reversals that pure trend-following strategies miss.
3- Dynamic Zone Width (The Volatility Adaptation)
Instead of using fixed support/resistance, the zone width changes based on the selected Period's ATR or Percentage.
- Why this matters: This ensures the strategy scales perfectly across any asset (Gold, Crypto, Forex) without manual width adjustments, making it robust across different volatility regimes.
4- Selective Zone Activation (The Manual Override)
Unlike standard pivot systems that force trades on every level, the Zone Selection inputs allow users to disable specific zones (e.g., turn off R3 if price often fakes out there or turn off S4 market is always get exhausted lower probability trade).
- Why this matters: This turns the strategy from a rigid algorithm into a customizable framework where the user can apply their own discretion based on historical price behavior.
5. Hierarchical EMA Architecture (The Structural Governor)
This strategy does not treat all EMAs equally. It uses a two-tier EMA system with a strict hierarchy:
Lower TF EMA (Optional & Overrideable): The Lower TF EMA on the current timeframe acts as a micro-trend filter. However, as explained above, the Pin Bar Sweep + Engulfing Combo can override this filter. Why? Because strong institutional reversals often happen against the short-term trend, and we want to capture them.
Higher TF EMA (Absolute & Non-Negotiable): Higher TF EMA on the selected Higher Timeframe acts as an "Absolute Structural Governor." Unlike the lower EMA, this filter cannot be overridden by any pattern.
For Long entries: Price must be above this HTF EMA.
For Short entries: Price must be below this HTF EMA.
Most strategies either ignore the HTF entirely. By making the HTF EMA absolute and the LTF EMA overrideable, this strategy achieves the perfect balance:
The HTF EMA prevents catastrophic drawdowns by keeping you on the right side of the bigger trend.
The LTF EMA override allows you to catch sharp, high-probability reversals within that trend without being delayed by a slow-moving micro-filter.
6. Optional Risk Architecture (The Management Layer)
The strategy includes a built-in partial-take-profit and breakeven module. By default, this module is disabled to provide a clean, straightforward 1:3 risk-reward backtest without the complexity of multiple exit orders.
This default setting allows users to evaluate the core entry logic (zones + patterns) without interference from partial exits.
However, for traders who want to reduce psychological pressure or manage Gold's notorious retracements, they can enable Allow Breakeven and Allow Partial TP. When activated, the strategy closes a percentage of the position (e.g., 50%) at a lower R:R threshold (TP1) and moves the remaining position to breakeven—locking in early profits while letting the rest of the trade run.
# Zone Calculation
The strategy calculates 9 zones using a modified pivot point formula from the selected period (Daily, Weekly, Monthly, Quarterly, Yearly):
The pivot formula can be one of 5 methods: Classic, Fibonacci, Woodie, Camarilla, or DM.
The Classic Pivot (shown below) is the most widely used and serves as the default:
Pivot (P) = (H + L + C) / 3
R1 = (2 × P) – L
S1 = (2 × P) – H
R2 = P + (H – L)
S2 = P – (H – L)
(R3, R4, S3, S4 are logical extensions of this same principle)
Additional Methods (Briefly Explained):
Fibonacci: Uses the golden ratio multipliers (0.382, 0.618, 1.000, 1.618) to place support/resistance levels between the pivot and the high/low range.
Woodie: Gives extra weight to the closing price (Formula: P = (H + L + 2C) / 4), making it more sensitive to the current session's momentum.
Camarilla: Uses multipliers based on the previous range to place levels very close to the current price, ideal for range-bound trading and scalping.
DM: Adjusts the pivot formula conditionally based on whether the close was higher or lower than the open, making it adaptive to daily sentiment.
From these, the strategy derives:
- 4 Resistance Zones (R4, R3, R2, R1) – above the pivot
- 1 Pivot Zone (P)
- 4 Support Zones (S1, S2, S3, S4) – below the pivot
Each zone is expanded by a Zone Width to create a buffer, making the levels more practical.
# Zone Width Calculation
Three modes:
- Percentage – zone width as a percentage of current price
- ATR Multiplier – width = ATR × Multiplier
- Fixed – fixed price distance
# Gap Index Mapping (0–9):
Gap 0 – Above R4 → Aggressive (no trades)
Gap 1 – Between R4 and R3 → Bearish near R4, Bullish near R3
Gap 2 – Between R3 and R2 → Bearish near R3, Bullish near R2
Gap 3 – Between R2 and R1 → Bearish near R2, Bullish near R1
Gap 4 – Between R1 and Pivot → Bearish near R1, Bullish near Pivot
Gap 5 – Between Pivot and S1 → Bearish near Pivot, Bullish near S1
Gap 6 – Between S1 and S2 → Bearish near S1, Bullish near S2
Gap 7 – Between S2 and S3 → Bearish near S2, Bullish near S3
Gap 8 – Between S3 and S4 → Bearish near S3, Bullish near S4
Gap 9 – Below S4 → Aggressive (no trades)
Based on the gap index and price action, the strategy sets allowLong or allowShort – and displays the status on the info table.
Market Status Displayed:
- Bullish – near support zones; long trades allowed
- Bearish – near resistance zones; short trades allowed
- Waiting – new period started; zones recalculating; no trades
- Aggressive – above R4 or below S4; no trades
- Zone disabled – manually disabled zone; no trades
# Entry Signals
1. Engulfing Patterns
Detects bullish and bearish engulfing with filters:
- Body Only – if true, only bodies must engulf (not full range)
- Min/Max Range – can be Percentage, ATR Multiplier, or Fixed
- Gap Allowance – max price gap between previous close and current open
- Previous or Prior Candle – at least one of the last two candles must be the opposite. color (bearish for bullish engulf; bullish for bearish engulf).
This is not a random condition. The strategy only considers trades when price is near a strong structural zone (support/resistance). Because the zone itself provides the primary context for a potential reversal, the immediate previous candle does not need to be strictly opposite in color.By relaxing the requirement to "at least one of the last two," the strategy captures valid reversals at key levels that a strict, textbook rule would miss—while remaining highly selective because it only trades near strong zones.
2. Pin Bar + Engulfing Combo (EMA Override)
Identifies hammers/shooting stars with:
- Wick/Body Ratio (Wick 3× body)Requires a clearly defined pin bar with a very small body.
- Max Body/Range (Body is at most 20% of range) Ensures the body is genuinely small relative to the total range. This is the textbook definition of a pin bar/hammer. Captures true rejection candles.
- Min Wick/Range (70% of range) This is the classic pin bar definition. A 70%+ wick means price aggressively rejected the level and reversed.
- Sweep Lookback – bullish pinbar must break the lowest low of the previous N bars;
bearish must break the highest high
a pin bar that sweeps a recent extreme (lookback) and the very next candle forms an engulfing pattern in the same direction. This combo overrides the Lower TF EMA confirmation – a unique feature that captures strong momentum after a sweep.
Combined Entry Requirements
All of the following must be true:
1. Valid engulfing or pin+engulf combo
2. Pattern occurs near a zone (open inside zone boundaries or crossing it)
3. Market status aligns with trade direction
4. Daily trade limit not exceeded (default: 2)
5. Relevant zone is enabled
6. Price is on the correct side of EMAs (unless overridden by combo)
7. HTF EMA confirms (if enabled)
8. RSI not overbought/oversold (if enabled)
9. Not within the no‑trade window (if enabled)
-----------------------------------------------------
# Confirmation Filters
Current TF EMA – ensures micro‑trend alignment. Overridden by pin+engulf combo.
Higher TF EMA (default 150 on 1H) – filters out counter‑trend moves in the bigger picture.
RSI – prevents buying above 70 and selling below 30.
Bollinger Bands – blocks trades when volatility is too low (BB width below threshold).This filter is specifically designed for assets that range heavily—choppy, sideways markets.
No‑Trade Window – avoids end‑of‑day volatility (active only for timeframes ≤15min).
# Risk & Position Management
1- Position Sizing:
- Risk per trade – percentage of equity for first trade, separate for second
- Position size = (Account Risk) / (Entry – SL distance).
- Second trade does not increment the daily trade counter:
This is a deliberate design choice. The daily trade counter tracks new trade initiations, not total positions. The second trade (pyramiding) is considered a continuation of the existing position, not a new independent decision. This ensures the strategy can scale into strong trends without consuming the daily limit, while still respecting the maximum number of new entries per session.
2-Stop Loss Options:
- Low-High – entry bar low/high ± buffer Tight, reactive stops. Best for scalping or when you want the SL to follow the immediate price action of the entry candle.
- Swing high/low – N-bar low/high ± buffer Broader, structural stops. Ideal for swing trading or when you want the SL to respect recent market structure rather than a single bar.
- Zone – zone boundary ± buffer Structural stops aligned with pivot levels. Best when you want the SL to be placed exactly at the structural support/resistance level that defines the trade.
- Fixed distance – fixed price distance Simple, static stops. Useful when you know your exact risk tolerance in dollar/pip terms and want a consistent SL distance regardless of volatility.
- ATR Multiplier – entry ± (ATR × multiplier) Volatility-adaptive stops. Best for Gold's changing volatility—widens during news/high volatility, tightens during calm periods.
3- Take Profit:
- Main R:R ratio – main R:R ratio (default 1:3), plus optional partial TP and breakeven at a lower R:R ratio.
- Partial TP – close a percentage of position at a lower R:R (TP1)
- Breakeven – optionally move stop to entry at TP1
4- Trade Counter Reset:
- For TF ≤ 15m: resets at NY (9:30 AM) and London (3:30 AM) starts (configurable)
This aligns with Gold's session-specific volatility and allows fresh participation in each session while preventing over-trading within a single session.
- For TF > 15m: resets once per day at session start (Every new day) Session-specific behavior is less relevant on higher timeframes, and a simple daily cap is more appropriate for swing trading.
5- No‑Trade Window:
- Avoids high‑volatility periods (e.g., end of day)
- Active only for TF ≤ 15m (16:00 PM – 18:30 PM NY time, configurable) End-of-day volatility spikes can cause excessive slippage and erratic price action on short timeframes. on TF > 15 The window is too short to be meaningful; higher timeframe traders are less affected by brief volatility spikes.
6- Session Close:
- TF ≤ 15m: can close at day end and/or week end (configurable). Scalping trades on 1m–15m charts typically last minutes to a few hours. These trades are highly sensitive to Overnight gaps, Weekend gaps
- 15m < TF ≤ 10h: only week end. Swing trading on 30m–4H charts typically lasts hours to several days.
- TF > 10h: feature disabled. Position trading on daily+ charts lasts days to weeks. These trades aim to capture large macro moves.
# Chart Display
- Zone boxes – semi‑transparent red/pink with labels (R4…S4), auto‑cleanup (max 55 periods)
- Trade management lines – entry (white), SL (red), TP (green), TP1/breakeven (dashed),
with green/red fills; auto‑cleanup ((4) * max 125)
- Info table (top‑right) :
1. shows Market Status(Bullish/Bearish/Aggressive/Waiting).
2. EMA confirmations.
3. Zone Width, Breakout threshold.
4. Engulf range max min.
5. SL settings(SL refrence, sL bufer)
- EMA plots – light blue (lower TF) and light red (higher TF)
- Signal shapes – hidden by default (can be enabled via style settings)
- arrowdown shapes - "Reset trade counter"
- Background 1 color – yellow during no‑trade window
- Background 2 color – white close all position on week/day end.
UI Note: Inputs are hidden from the status line to keep your chart clean. All settings (zones, EMAs, risk, patterns) remain fully adjustable in Settings → Inputs.
# Default Settings – Optimized for XAUUSD (Gold)
All default values have been calibrated specifically for Gold's typical volatility and intraday structure.
(Setting : Default : Why This Works for Gold)
----------------------------------------------------------------------------------------
Period : Daily : Gold respects daily highs/lows as key structural levels.
-----------------------------------------------------------------------------------------
Pivot Type : Classic : Most widely used and reliable for Gold.
-----------------------------------------------------------------------------------------
Zone Width : ATR (0.053× ATR(14)) : ATR(14) provides a stable, week-to-week view of Gold's volatility (roughly two trading weeks of data).Adapts to Gold's daily volatility (Zone Width often $4–$10 range).
-----------------------------------------------------------------------------------------
Breakout Threshold : 7% of zone width : Zone width ≈ $3.00–$10.00 (Daily ATR × 0.053). 7% ≈ $0.21–$0.70 (21–70 ticks)—filters noise wicks, captures genuine breaks.Prevents false transitions caused by standard stop-hunting wicks
-----------------------------------------------------------------------------------------
Engulfing Range : ATR(14) (0.375× – 2.5×) : ATR(14) sits in the "sweet spot"—responsive enough to capture shifts in Gold's volatility relatively quickly, yet long enough to smooth out the daily noise and provide a reliable, consistent measure. Captures meaningful moves $3–$15—ensures candle has enough size to be meaningful, rejecting tiny $0.30–$0.50 noise patterns, while filtering out massive blow-off spikes (> $20–$25 on 15m).
-----------------------------------------------------------------------------------------
Pin Bar Sweep : 12 bars : 12 bars – Calibrated for Gold's 3-hour intraday cycle and session transitions. Long enough to capture genuine liquidity grabs, short enough to avoid outdated levels.
-----------------------------------------------------------------------------------------
Risk per trade : 2% (1st), 1% (2nd) : Balances risk with Gold's occasional false breakouts. For Gold's volatile nature, 2%-1% provides the best balance between survival and growth.
-----------------------------------------------------------------------------------------
Risk:Reward : 1:3 : Gold routinely moves 1.5–2× its ATR in a single directional push. A 1:3 target is well within Gold's typical daily range.
-----------------------------------------------------------------------------------------
Stop-Loss Reference : ATR Multiplier : For Gold's volatile nature, a static stop-loss (Fixed or Low-High) cannot adapt to changing volatility. ATR-based SL scales with market conditions—widening during high volatility (news, session opens) and tightening during calm periods. This ensures the stop-loss is always "fair" relative to current market conditions, preventing premature stops during normal volatility spikes
-----------------------------------------------------------------------------------------
Stop-Loss Multiplier : 1.8× ATR(14) : A 1.8× ATR(14) stop-loss represents 1.8 times Gold's average 14-period range. Why 1.8× and not 2.0× or 1.5×? Backtesting revealed that 1.8× is the "sweet spot"—wide enough to survive Gold's normal volatility spikes without being stopped out by noise, yet tight enough to limit losses
-----------------------------------------------------------------------------------------
Current TF EMA : 21 (Enabled, Overrideable) : On 15m chart = 5.25 hours—perfectly captures Gold's average intraday move length. Can be overridden by Pin Bar + Engulfing Combo to catch institutional reversals that occur against the short-term trend.
-----------------------------------------------------------------------------------------
Higher TF EMA : 150 on 1H : On Gold, a 150-period EMA on a 1H chart represents roughly 6.5 days (one full trading week) of data. By making this filter absolute, the strategy guarantees it will never take a counter-trend trade against the weekly macro-structure.trend.
-----------------------------------------------------------------------------------------
Filter (RSI) : length 12 : Most traders default to RSI(14), but RSI(12) is intentionally faster for Gold's volatile intraday moves. Gold often spikes into overbought/oversold territory and reverses quickly. A 12-period RSI reacts ~15% faster than RSI(14), catching these reversals earlier while remaining smooth enough to avoid excessive whipsaws.
-----------------------------------------------------------------------------------------
Filter (Bollinger Bands) : Disabled by default : Gold is historically a trending asset with strong directional moves. A low-volatility filter would unnecessarily block valid entries during these trends. Designed for range-bound assets (choppy crypto, certain forex crosses)—enable it only if your market consolidates heavily.
-----------------------------------------------------------------------------------------
These values are a starting point – you may adjust them for other assets or personal risk tolerance.
# Important Notes on Backtest Realism
- Commission – Most ECN/raw-spread brokers charge $3.00–$3.50 per side (round-turn commission of $6.00- $7.00) for 1 standard lot (100 oz) of XAUUSD. Standard accounts usually build the fee into a wider spread instead of charging a separate cash. This strategy deducts $3.50 per entry and $3.50 per exit ($0.035 × 100 oz)round-turn commission of $7.00. Adjust this to match your broker's exact fees.
- 4 ticks Slippage - For XAUUSD, 1 tick = $0.01 per ounce. 4 ticks = **$0.04 per ounce (unit)**. Accounts for real-world price . Prevents overly optimistic backtest equity curves.
Always adjust the commission value to your broker's exact fee structure before relying on the results.
"A backtest without realistic commission and slippage is a fantasy. A backtest with realistic commission and slippage is a truthful reflection of what you can expect when trading live."
- Intra-Bar Execution: The strategy uses calc_on_every_tick = true, meaning it recalculates on every price tick during real-time trading. This allows the breakeven and partial TP logic to trigger immediately when price hits TP1, protecting the trade from intra-bar reversals.
Note: Backtests use OHLC data only, so intra-bar fills and breakeven triggers cannot be perfectly simulated. Real-time performance may differ from backtest results due to this limitation
# The Core Innovation (Why This Isn't Just a Mashup)
This strategy is built on a three-layer validation system. Each layer solves a specific problem that the other layers cannot solve alone.
Layer 1 (The Structure): Dynamic Pivot Zones
Layer 2 (The Trigger): Pin-Bar Sweep + Engulfing Combo
Layer 3 (The Execution): Gap State Machine
Here is how they interdepend to create a unique edge:
1. Adaptive Pivot Mathematics (The "Regime Matching" Logic)
Instead of offering multiple pivot types just for the sake of it, this strategy provides them so the trader can match the mathematical formula to the market's current behavioral regime:
Why this matters: Most strategies lock you into one formula. This strategy acknowledges that price dynamics change, and it gives you the mathematical weapon to adapt without rewriting the entire code.
2. The "Liquidity Grab" Trigger (Sweep + Engulfing Combo)
This is the most critical edge of the strategy. A standard Engulfing pattern is common. A standard Pin Bar is common. But when they occur sequentially—a Pin Bar that sweeps the 12-bar extreme, immediately followed by an Engulfing candle—it represents a textbook institutional "liquidity grab."
- The Logic: Large players often push price to sweep obvious stop-losses (above highs or below lows) before reversing the trend.
- The Override: Crucially, this specific combo overrides the Lower TF EMA confirmation.
- Why this is a breakthrough: Standard trend-following strategies with a hard EMA filter will miss these reversals because price is moving against the EMA in the short term. By programming this specific override, the strategy captures the exact moment of institutional reversal—catching the move before the EMA flips and the trend-followers finally enter.
3. The Gap State Machine (Dynamic Sentiment Tracking)
Unlike static support/resistance scripts that just plot lines and wait for touches, this strategy features a state machine that tracks which of the 9 gaps (between R4-R1, Pivot, S1-S4) the price currently occupies.
- The Mechanism: A Breakout Threshold (default 7% of zone width) acts as a "dead-zone" filter. Price must exceed this threshold to officially transition from one gap to another.
- The Alpha: This prevents the strategy from whipsawing during minor noise. When price crosses from Gap 4 (between R1 and Pivot) into Gap 3 (between R2 and R1), the strategy instantly and autonomously switches market status from "Bearish" to "Bullish" or vice versa.
4. Selective Zone Activation (Strategic Discretion)
- This strategy allows the user to completely disable specific zones (e.g., turn off R3).
- The Value: By disabling a weak level, the user forces the strategy to wait for the next stronger level, instantly increasing the win rate and filtering out historically weak signals without altering any other code.
5. Non-Invasive Risk Architecture (Clean Defaults)
For traders who want to reduce psychological pressure or optimize for Gold's notorious retracements, they can enable these modules. When activated, the strategy closes % of the position at a lower R:R threshold and moves the remaining position to breakeven—locking in profits while letting the rest run.
In Summary: The "Mashup" Justification
This is not a random collection of indicators.
1. The State Machine provides the structural context.
2. The Pin+Engulf combo provides the high-conviction trigger that overrides slow-moving filters.
3. The Selectable Pivot Types provide the mathematical adaptability to different assets.
4. The Selectable Zones provide the manual discretion to avoid historical losing levels.
5. The Disabled TP/BE by default provides a clean baseline for evaluating the core logic.
Author: Awab_Hassan
Strategy

Ultravol Matrix - volume spike heatmap [GF4M]Ultravol Matrix - cross-exchange volume spike heatmap
❗️Reason for displaying two indicators together on the main chart:
🔗 Use together for reading volume — Ultravol, Ultravol Matrix are originally built as one indicator, split in two due to Pine's 64-plot limit & multi-pane drawing limit. (same language by UV-scaled color): Ultravol Matrix reads vol spike history, Ultravol reads live.
❗️Per TradingView's policy that each script's description must be self-contained on its own, the Ultravol engine description common to both Ultravol and Ultravol Matrix is repeated across both indicators' descriptions.
───────────────────────────────────────────────
🔶 PROBLEM
On a standard chart, volume is just numbers and bars, so to know how much weight is behind the current candle's move, you have to scan the whole chart yourself and judge relative size. Doing that instantly during live trading takes intuition built through long training. This problem is worse in crypto: since the same asset trades on dozens of exchanges at once, looking at a single exchange's volume alone doesn't show where the real volume spike actually is. I came to think there were two important points.
1. (Common) How much does this volume mean in the market as a whole?
Every asset has a normal, average scale at which it typically trades. If far more trading is happening than that, the asset is drawing attention right now. Conversely, even when candles look active and volume keeps increasing, if it stays below the whole-market average, it is actually a minor move. In other words, it should be readable instantly against the whole market — not against the immediately preceding period.
2. (Multi-exchange asset) Is this a market-wide event, or a local event on one exchange?
For an asset traded on dozens of exchanges at once, as in crypto, even a very large exchange's volume spike alone won't move the price much — because the remaining exchanges still hold volume that can't be ignored. The same spike means something completely different depending on whether it happens across many exchanges at once or only locally — and neither a single exchange's volume, nor a simple aggregate of them, shows this difference clearly (it ends up buried under the pattern of whichever pair has overwhelming volume, like Binance).
🔷 SOLUTION
1. (Common) The whole chart's accumulated average volume is extracted as a base line, and each bar's ratio to it is standardized into a common UV-scaled color. For crypto, one step further — the volumes of 12 major exchange pairs are each weighted by importance and composited into one Final Synthetic UV volume, used as the main volume. This way, every visual element on the chart can be drawn based on one common scale. This is Ultravol.
2. (Multi-exchange asset) The volume spike history of each of those same 12 sources, before Ultravol composites them into one, is decomposed along the time axis using the same UV-scaled color, so you can see at a glance whether the current spike spans the whole market or is local. This is Ultravol Matrix. (Originally one indicator, but split into two because the number of plots needed exceeded Pine's limit (64-plot) — the core engine is the same.)
Volume can now be perceived instantly. Candles carrying below-average volume stay dark and featureless; candles carrying above-average energy render brighter and more intense. The screen looks quiet when the market is quiet, and busy when it is busy. And this color grammar reads the same way on any asset, any timeframe — because the reference is always that market's own whole-history average. This indicator set can fully replace ordinary candles and volume charts.
🔷 Ultravol Core Engine: Processing Diagram
🟣 Full engine mechanics (Master GATE scheduling, coin-unit correction, per-exchange trust weighting, auto listing-join) are documented in the Appendix — see origin indicator .
───────────────────────────────────────────────
Ultravol Matrix - cross-exchange volume spike heatmap
✨ Gives you an insight into hidden, cross-exchange volume spike flow — by color, instantly!
Across many crypto exchanges, Ultravol Matrix curates 12 pairs (spot + perp) — Each exchange's volume, reverted to native base. → normalized to its own signature. → Rendered on the same UV-defined color scale. → Spike flow patterns (not absolute volume) can be compared directly across history in one matrix.
📘 Strong trends begin with cascading vol spikes across all exchanges.
📗 A perp vol spike with no spot participation (all or a single perp pair) is often just a futures liquidation cascade.
📙 Track vol spike trends by exchange. Who is trending? Alone? User base? Region? Spot or Perp? All together?
📕 Trending vol spike sequence — drop to lower TF (1m or seconds) to read the order in detail.
✨ Ultravol Matrix Engine:
Its own unique method. 12-pair per-exchange UV-scaled color leveling is crypto-exclusive.
🔹 How to read it
🔗 The time-axis extension of Ultravol — same language by UV-scaled color: Ultravol Matrix reads history, Ultravol reads live.
🔹 You can easily spot mass volume that's concentrated in a single exchange.
🔹 All together or single spike trending.
🔹 For altcoins, even on the 5m and 15m timeframes, persistent long spikes tend to occur on only a few individual exchanges. This behavior is less frequent in major cryptocurrencies like BTC or ETH. (It is recommended to familiarize yourself with the volume spike patterns of your specific trading pairs in advance.)
Setup Panel
☑ 📱 : Mobile friendly UI setup
• Source : Ultravol (Auto) fixed
• Rescale : Only for extremes, too 🔥 or too ⚫️
Especially for altcoins, the market heats up significantly during trending phases. Consequently, if the heatmap temperature rises to a point where chart variations become difficult to distinguish, lowering the rescale option by -1 or -2 makes it easier to discern the intensity differences on the screen. (In this case, the adjusted value is temporarily displayed in the bottom-right corner.)
🔸 Hover over the nametag for symbol info.
🔸 Maximize the pane (or drag it taller) for detailed matrix flow.
Matrix's volume spectrum is compressed using a separate log-based clamp to fit within a low-height panel. Read it only as relative magnitude — judge volume spikes by color, not by bar height.
⚠️ Required setting: In order to vertically align the Name tag (on matrix)
⚙︎ > Chart option > Canvas > Margins > Top: 0% Bottom: 0% Rights: 50bars
Indicator

Ultravol - correct market volume [GF4M]Ultravol - correct market volume
❗️Reason for displaying two indicators together on the main chart:
🔗 Use together for reading volume — Ultravol, Ultravol Matrix are originally built as one indicator, split in two due to Pine's 64-plot limit & multi-pane drawing limit. (same language by UV-scaled color): Ultravol Matrix reads vol spike history, Ultravol reads live.
❗️Per TradingView's policy that each script's description must be self-contained on its own, the Ultravol engine description common to both Ultravol and Ultravol Matrix is repeated across both indicators' descriptions.
───────────────────────────────────────────────
🔶 PROBLEM
On a standard chart, volume is just numbers and bars, so to know how much weight is behind the current candle's move, you have to scan the whole chart yourself and judge relative size. Doing that instantly during live trading takes intuition built through long training. This problem is worse in crypto: since the same asset trades on dozens of exchanges at once, looking at a single exchange's volume alone doesn't show where the real volume spike actually is. I came to think there were two important points.
1. (Common) How much does this volume mean in the market as a whole?
Every asset has a normal, average scale at which it typically trades. If far more trading is happening than that, the asset is drawing attention right now. Conversely, even when candles look active and volume keeps increasing, if it stays below the whole-market average, it is actually a minor move. In other words, it should be readable instantly against the whole market — not against the immediately preceding period.
2. (Multi-exchange asset) Is this a market-wide event, or a local event on one exchange?
For an asset traded on dozens of exchanges at once, as in crypto, even a very large exchange's volume spike alone won't move the price much — because the remaining exchanges still hold volume that can't be ignored. The same spike means something completely different depending on whether it happens across many exchanges at once or only locally — and neither a single exchange's volume, nor a simple aggregate of them, shows this difference clearly (it ends up buried under the pattern of whichever pair has overwhelming volume, like Binance).
🔷 SOLUTION
1. (Common) The whole chart's accumulated average volume is extracted as a base line, and each bar's ratio to it is standardized into a common UV-scaled color. For crypto, one step further — the volumes of 12 major exchange pairs are each weighted by importance and composited into one Final Synthetic UV volume, used as the main volume. This way, every visual element on the chart can be drawn based on one common scale. This is Ultravol.
2. (Multi-exchange asset) The volume spike history of each of those same 12 sources, before Ultravol composites them into one, is decomposed along the time axis using the same UV-scaled color, so you can see at a glance whether the current spike spans the whole market or is local. This is Ultravol Matrix. (Originally one indicator, but split into two because the number of plots needed exceeded Pine's limit (64-plot) — the core engine is the same.)
Volume can now be perceived instantly. Candles carrying below-average volume stay dark and featureless; candles carrying above-average energy render brighter and more intense. The screen looks quiet when the market is quiet, and busy when it is busy. And this color grammar reads the same way on any asset, any timeframe — because the reference is always that market's own whole-history average. This indicator set can fully replace ordinary candles and volume charts.
🔷 Ultravol Engine: Processing Diagram
🟣 Check the Appendix — (16 live feeds/candle · coin-unit correction (1000x-listed coins) · USDT/USDC reference price conversion · Master GATE calc scheduling · per-exchange trust weighting · auto listing-join. Full mechanics + reusable code.)
───────────────────────────────────────────────
Ultravol - correct market volume
✨ Gives you a trained trader's sense for volume — by color, instantly!
📘 Reveal key market energy areas through volume-encoded candles, spectrum layer, v-ray, energy flux, and spike panel by color. A full legacy candle & volume chart replacement.
📗 Final synthetic UV — Across many crypto exchanges, Ultravol curates 12 (spot + perp) — reverted to native base → normalized & weighted by custom criteria, spot summed and perp summed separately (used as Energy Flux source), then combined into one — to read the unified volume flow across the whole market.
📙 Per-exchange UV level on the panel — Each exchange's volume, normalized to its own signature. → Rendered on the same UV-defined color scale. → Current candle's volume spike level (not raw volume) can be compared across exchanges at a glance.
✨ Ultravol engine:
Its own unique method. Synthetic UV (12-pair fusion) and Per-exchange UV-scaled color mark are crypto-exclusive — UV-scaled coloring works on any chart.
🔷 How to read it
It is recommended to check the color reference scheme in the settings panel to understand how candle colors are represented. Once you are familiar with these patterns, you can instantly gauge the intensity of current movements during live trading.
Refer to the historical patterns where rare, massive volume occurred (indicated by sky blue, blue, and purple - When similar volume occurs later, frequently become the Top or Bottom.)
Massive volume spike levels frequently act as strong S/R.
🔷 Basic Screen - check volume by color.
Spike Panel
This panel simultaneously displays the live candle volume in two ways: 1) as an absolute value in the base unit, and 2) as a UV-scaled mark. Users can quickly identify which exchange is experiencing a volume spike based solely on the colored emoji characters.
Status Label
The working mode automatically adjusts based on the selected symbol type and information, with the current status displayed via the label in the bottom-right corner.
Panel setup
☑ 📱 : Mobile friendly UI setup
• Source : Use Ultravol (Auto) normally
• Rescale : Only for extremes, too 🔥 or too ⚫️
☑ V-Ray : Vertical highlight marks on big spike.
☑ Energy Flux : 8 Spot(U), 4 Perp(L)
+ Trending energy balance (Spot vs Perp)
☑ Candles : Chart candle × UV fusion.
Each element—Volume, Volume-encoded Candlesticks (Up/Dn), and Ruler—features its own independent color scheme.
No volume chart color
☑ Spectrum : Synthetic UV from 12 vol src.
+ Instant energy read by UV-scaled color
+ Max height. Move to a pane first.
☑ Panel : Exchange's raw vol (number)
+ Current UV-scaled spike (color mark)
☑ s Smaller UI ☑ ↓ Center-right
☑ ! Wait Long · Act Fast (#1 principle)
🔸 Hover over the panel for detailed info.
Vol src info. & current status notice
Volume spike marking by unique UV-scaled color
Works together as one.
You can see historical spike flow and current spike details at the same time.
🔗 Ultravol Matrix reads vol spike history, Ultravol reads live.
⚠️ Ultravol must be placed at the very front.
(To ensure the correct z-layer order of all graphics, including hybrid override candles, is displayed exactly as intended. )
HELP: Check a tooltip on the setup panel & spike panel.
🟣 APPENDIX — A few notes on what happens inside UV engine.
💊 Master GATE (Calculation scheduling)
This indicator reads 16 external data sources in real time: the volumes of 12 exchange pairs, plus market cap, two stablecoin exchange rates, and the market average price. The computation that follows these calls is substantial. But volume is a simple cumulative value — I do not see immediate tick-by-tick recomputation as essential. So the work is divided into what happens when a candle opens (new), while it is in progress (realtime), and when it closes (confirmed) — and the heavy computation was judged reasonable to run only at fixed intervals during the candle. It is the internal scheduler that keeps the whole indicator responsive, and a precondition for this indicator to work at all.
// 🟧🟦🟧🟦🟧🟦🟧🟦🟧🟦🟧🟦🟧🟦🟧🟦🟧🟦🟧🟦🟧🟦🟧🟦🟧🟦🟧🟦🟧🟦
// MASTER GATE - throttling setup
var bool uv_throttleGATE_required = uv_chart_symbol_crypto_basequotetickvol_flg
varip bool bar_NOTLIVE_flg = false
varip bool bar_GATEbypass_flg = false
bar_NOTLIVE_flg := uv_throttleGATE_required
and barstate.isrealtime and (timenow - (time_close + ((time_close - time)*2)) > 0)
bar_GATEbypass_flg := not (uv_throttleGATE_required and barstate.isrealtime and not bar_NOTLIVE_flg)
const int UV_MASTERGATE_RATE_T_VAL = 160 // ms
varip int uv_MasterGATE_last_t = na // Last GATE Open time = LINUX time ms
varip bool uv_MasterGATEopen_flg = false
uv_MasterGATEopen_flg := bar_GATEbypass_flg
or na(uv_MasterGATE_last_t)
or (timenow - uv_MasterGATE_last_t >= UV_MASTERGATE_RATE_T_VAL)
or barstate.isconfirmed
if not bar_GATEbypass_flg and uv_MasterGATEopen_flg
uv_MasterGATE_last_t := timenow
// MASTER GATE - throttling setup End
// 🟧🟦🟧🟦🟧🟦🟧🟦🟧🟦🟧🟦🟧🟦🟧🟦🟧🟦🟧🟦🟧🟦🟧🟦🟧🟦🟧🟦🟧🟦
You can make this simple throttling GATE. After configuring the GATE operating conditions as shown above, you can apply them to the actual indicator calculation section by utilizing uv_MasterGATEopen_flg like below. It is simple yet effective. (Caution: Given how Pine Script executes, this GATE mechanism provides reasonable computational savings rather than perfect scheduling. For precise control, use it alongside barstate.isnew / isrealtime / isconfirmed)
if uv_MasterGATEopen_flg
s1_color_x := f_src_uv_lv_coloring(s1_uv_lv)
s2_color_x := f_src_uv_lv_coloring(s2_uv_lv)
s3_color_x := f_src_uv_lv_coloring(s3_uv_lv)
s4_color_x := f_src_uv_lv_coloring(s4_uv_lv)
s5_color_x := f_src_uv_lv_coloring(s5_uv_lv)
s6_color_x := f_src_uv_lv_coloring(s6_uv_lv)
s7_color_x := f_src_uv_lv_coloring(s7_uv_lv)
s8_color_x := f_src_uv_lv_coloring(s8_uv_lv)
p1_color_x := f_src_uv_lv_coloring(p1_uv_lv)
p2_color_x := f_src_uv_lv_coloring(p2_uv_lv)
p3_color_x := f_src_uv_lv_coloring(p3_uv_lv)
p4_color_x := f_src_uv_lv_coloring(p4_uv_lv)
🏁 Compositing the 12 exchange pairs
The volumes of 8 spot and 4 perpetual pairs are each converted into base-currency units, then merged into a single weighted volume. Ultravol shows the merged value; Ultravol Matrix shows the per-exchange values before merging, on the same color standard. The list stops at 12 because the volume figures of lower-ranked exchanges are often inflated, and would contaminate the result rather than improve it — the top 12 alone carry roughly 80% of real volume. This part is admittedly subjective; it was curated based on general exchange reputation in the market.
🏁 Unifying coin display units
Some coins — 1000PEPE, 1000SATS — are listed by different exchanges at 1000× or 10000× units (typically the case for extremely low-priced assets). Without reverting these to their original common unit, summing volumes across exchanges loses its meaning. There is no published reference for which exchange lists which coin at which multiple, so each case was verified one by one and built into an internal exception table, matched against the crypto name of the current chart. The symbol tickers used to call the 12 volumes are composed in two ways: (a) coins present in the low-volume table use the values defined there; (b) all other coins are composed per-symbol from 12 predefined symbol templates.
💊 This simple function extract crypto-name from any symbols with 1000x 1000000x
f_crypto_symbol_corekey(_tickerid, _basecurrency) =>
_tickerid_upper = str.upper(_tickerid)
_key = str.upper(_basecurrency)
if str.contains(_tickerid_upper, ":1000000BOB")
_key := '1000000BOB'
else
_prefix = str.match(_key, "^(?:1000000|10000|1000)")
_suffix = str.match(_key, "(?:1000000|10000|1000)$")
if _prefix != ''
_key := str.substring(_key, str.length(_prefix))
if _suffix != ''
_key := str.substring(_key, 0, str.length(_key) - str.length(_suffix))
_key
💊 This simple function extract the multiple number from symbol.
f_crypto_symbol_multiple(_fullname, _corekey) =>
_f = str.upper(_fullname)
_k = str.upper(_corekey)
_k_pos = (na(_k) or _k == '') ? na : str.pos(_f, _k)
_multiple = 1.0
if not na(_k_pos)
_colon_pos = str.pos(_f, ':')
_prefix_start = na(_colon_pos) ? 0 : _colon_pos + 1
_between = str.substring(_f, _prefix_start, _k_pos)
_after = str.substring(_f, _k_pos + str.length(_k))
_pre_num = str.match(_between, "^(?:1000000|10000|1000)$")
_suf_num = str.match(_after, "^(?:1000000|10000|1000)")
_raw = _pre_num != '' ? str.tonumber(_pre_num) : _suf_num != '' ? str.tonumber(_suf_num) : 1
_multiple := na(_raw) ? 1.0 : _raw
_multiple
💊 Coin name exceptions
The crypto names used by TradingView's CRYPTO: and CRYPTOCAP: feeds quite often differ from the names exchanges actually use (this happens among smaller coins — SLC → SLCS, HYPE → HYPEH, and the like). Each time one was found, it was manually verified to be the same coin and added to an exception list. That exception table is pre-checked on the actual M.CAP and Avg. Price security calls.
This simple function maps standard exchange crypto names to TradingView's native CRYPTO: , CRYPTOCAP: chart names.
f_crypto_cryptocap_tv_ticker(_uv_chart_crypto_tickerhead_str) =>
// CRYPTO: CRYPTOCAP:
//────────────────────────────────────────────---
// EXCHANGES => CRYPTOCAP // Cypto name
//────────────────────────────────────────────---
result_ticker = switch _uv_chart_crypto_tickerhead_str
'SLC' => 'SLCS' // Silencio
'BABY' => 'BABYL' // Babylon
'HYPER' => 'HYPERL' // Hyperlane
'HYPERL' => 'HYPERL' // 〃
'HYPE' => 'HYPEH' // Hyperliquid
'BOB' => 'BOBBUIL' // Build On Bitcoin
'BOBBOB' => 'BOBBUIL' // 〃
'TAG' => 'TAGG' // Tagger
'TAO' => 'TAOB' // TAO
'TOSHI' => 'TOSHI3' // Toshi
'NEIROCTO' => 'NEIROF' // First Neiro On Ethereum
'NEIRO' => 'NEIROF' // 〃
'NEX' => 'NEXUS5' // Nexus
'RATS' => 'RATS2' // Rats
'CHEEMS' => 'CHEEMSC' // Cheems
'SATS' => 'SATSO' // SATS (Ordinals)
'CAT' => 'CATSI' // Simon's Cat
'TRUMP' => 'TRUMPOF' // Trump official
'USDS' => 'USDS2' // USDS
'MOVE' => 'MOVEM' // Movement
'MOCA' => 'MOCAV' // Mocaverse
'ZORA' => 'ZORA2' // Zora
'BARD' => 'BARDL' // Lombard
'ATH' => 'ATHAE' // Aethir
'SONIC' => 'SONICSV' // Sonic SVM
'KNC' => 'KNC' // Kyber Network
'ZRO' => 'ZROL' // LayerZero
'AMP' => 'AMP2' // AMP
'CHIP' => 'CHIPUS' // USD.AI
'RAVE' => 'RAVED' // RaveDAO
'PROS' => 'PROSPH' // Pharos
=> _uv_chart_crypto_tickerhead_str
result_ticker
💊 G-Index px (Reference market price)
A mix of the current chart's price and the whole-market average price. It is a buffer that keeps the base line from being dragged around by a momentary price jump on a single exchange. G-Index Price operates only when the current chart uses USDT, USDC, or USD as its base unit. -> takes the avg. price provided by TV -> converts it to the current chart's unit by exchange rate.
//⬜🟥⬜🟥⬜🟥⬜🟥⬜🟥⬜🟥⬜🟥⬜🟥⬜🟥⬜🟥⬜🟥⬜🟥⬜🟥⬜🟥⬜🟥⬜
// G-Index PX
//
varip bool g_index_px_works = false
varip float g_index_px = na
var float chart_current_multiple = not uv_chart_symbol_crypto_basequotetickvol_flg ?
1.0 : f_crypto_symbol_multiple(uv_chart_tikerid_str, uv_chart_crypto_tickerhead_str)
var string chart_current_currency = syminfo.currency
float USD2USDT_avg_rate = request.security("CRYPTO:USDTUSD", timeframe.period, ta.sma(hlc3, 3))
float USD2USDC_avg_rate = request.security("CRYPTO:USDCUSD", timeframe.period, ta.sma(hlc3, 3))
bool USDT_is_DEPEG = math.abs(USD2USDT_avg_rate - 1.0) * 100 >= 0.1
bool USDC_is_DEPEG = math.abs(USD2USDC_avg_rate - 1.0) * 100 >= 0.2
var int chart_currency_convert_mode = switch chart_current_currency
'USD' => 1
'USDT' => 2
'USDC' => 3
=> 0
float g_avg_chart_ratio = switch chart_currency_convert_mode
1 => 1.0
2 => (1.0 / USD2USDT_avg_rate)
3 => (1.0 / USD2USDC_avg_rate)
0 => 0.0
var bool chart_currency_convert_no_need = (uv_chart_crypto_tickerhead_str == 'USDT')
or (uv_chart_crypto_tickerhead_str == 'USDC')
or (uv_chart_crypto_tickerhead_str == 'USDS')
or (uv_chart_crypto_tickerhead_str == 'PYUSD')
or (uv_chart_crypto_tickerhead_str == 'USDP')
var string g_index_px_crypto_ticker = 'CRYPTO:' + f_crypto_cryptocap_tv_ticker(uv_chart_crypto_tickerhead_str) + 'USD'
if chart_currency_convert_mode != 0
g_index_px := (request.security(g_index_px_crypto_ticker,timeframe.period, close * g_avg_chart_ratio,gaps=barmerge.gaps_on, ignore_invalid_symbol=true) * chart_current_multiple )
if not g_index_px_works and not na(g_index_px) and uv_volmode_ultravol_task_flg and not chart_currency_convert_no_need
g_index_px_works := true
if g_index_px_works and na(g_index_px) and na(g_index_px )
g_index_px_works := false
//G-Index - end
//⬜🟥⬜🟥⬜🟥⬜🟥⬜🟥⬜🟥⬜🟥⬜🟥⬜🟥⬜🟥⬜🟥⬜🟥⬜🟥⬜🟥⬜🟥⬜
🏁 Listing detection and exception reporting
An exchange that was absent early in the chart and began trading midway is automatically included in the calculation from that point on, and appears on the panel. The top-right panel shows the current bar's volume both as an absolute number (in base units) and as per-pair UV-scaled markings. When an exception occurs — some data not provided on a particular timeframe, for instance — you can hover over the panel to see exactly how the indicator is operating right now. Better to show what is happening than to behave strangely in silence.
🏁 You can check the uv engine (marking area like below) inside code.
// ⬜⬜⬜⬜⬜⬜⬜⬜⬜⬜⬜⬜⬜⬜⬜⬜⬜⬜⬜⬜⬜⬜⬜⬜⬜⬜⬜⬜⬜⬜⬜
// Ultravol Core Engine
// ⬜⬜⬜⬜⬜⬜⬜⬜⬜⬜⬜⬜⬜⬜⬜⬜⬜⬜⬜⬜⬜⬜⬜⬜⬜⬜⬜⬜⬜⬜⬜
Indicator

Adaptive Volume Confluence OscillatorWhat it is
One pane that fuses seven different reads of the bar into a single 0–100 confluence score, gates that score by a trend-vs-chop regime filter, confirms it against an auto-mapped higher timeframe, and — most importantly — forward-calibrates its own Buy/Sell signals against an unconditional base rate, so you can see whether the construction actually carries an edge on your instrument.
The seven votes: momentum sign · momentum vs its signal · money flow · trend structure (MA fan) · price location vs VWAP · trend slope · higher-timeframe bias.
The displayed wave is a volume-flow ribbon; the votes drive the score, the signals and the verdict. A plain-language verdict and a subtle pane tint make it readable at a glance (Simple view); a full analytic layer is available for advanced users (Pro view).
Why these are combined (mashup rationale)
A single oscillator whipsaws and a single signal over-fires. Combining helps only when the inputs key on different quantities and their agreement is checked. Each vote reads a different thing — momentum, momentum-vs-signal, volume flow, multi-MA structure, location vs a session mean, slope, and a higher-timeframe read — so the count that agrees carries more information than any one of them alone. A Kaufman Efficiency-Ratio regime gate suppresses conviction in chop, and a forward-calibration harness ties the whole construction back to realised forward outcomes.
An honest caveat, stated up front: the votes are not statistically independent. The oscillator itself embeds money flow, and vote 2 is derived from vote 1's series. Treat the score as a weight-of-evidence read, not as seven independent confirmations. The harness exists precisely so you can check whether the construction earns its keep on your instrument rather than taking the claim on faith.
How it works
Score — how many of the seven votes are bullish, scaled 0–100.
Regime — Kaufman Efficiency Ratio. Below the chop threshold, conviction dims, signals are withheld, and the verdict reads "WAIT – choppy".
HTF — the chart timeframe auto-maps to a confirming higher timeframe (~4–6×), requested with lookahead_off and offset by one bar while the live bar forms.
Signals — Buy/Sell fire only when the oscillator crosses its signal at a statistical OB/OS extreme and the score agrees and the regime isn't choppy and the visible wave isn't already at the opposite extreme.
Climax — a volume spike at an OB/OS extreme prints a Possible Bottom/Top exhaustion mark.
Divergence (Pro) — regular + hidden, from confirmed pivots on the momentum oscillator.
Calibration — each Buy/Sell is queued and resolved a fixed horizon later, then compared with the unconditional same-horizon base rate. The dashboard shows, per side: Hit %, Edge = Hit − Base, sample size, and a Wilson-gated star.
How to use it
Read the verdict and the score. Above the gate = bullish weight of evidence; below = bearish; in between, or in chop, the tool says WAIT — and it means it.
Treat Buy/Sell marks as context, not triggers. They already require the score, the regime and the wave to agree, but they remain a description of conditions — not a recommendation.
Read the Edge row before you weight any signal. If Buy/Sell Edge isn't clearly positive with an adequate sample and a star, this construction is not carrying an edge on this instrument — weight it down or ignore it. Do not tune the parameters until the Edge turns green: that is curve-fitting, and the harness is there to catch it, not to be defeated.
Combine with your own levels, structure and risk rules.
Universal across markets
Price / high / low are inputs, so the engine runs on any symbol or timeframe. The volume votes (money flow, climax, VWAP location) need real volume — prefer a futures contract or a stock. On a symbol with no volume the tool degrades gracefully: money flow is neutralised, the score falls back to the price-only votes, and the dashboard says "NO VOLUME", so you're never misled by a blank or a phantom reading.
Non-repainting
Votes read confirmed closes. The HTF series uses lookahead_off and is offset by one bar while the live bar forms. Divergences come from ta.pivot* and confirm a few bars after the pivot; once printed they don't move. The calibration harness logs and resolves only on confirmed bars, so its statistics never inflate intrabar. The live oscillator updates each bar, like any oscillator.
Concept credits
Super Smoother and Ultimate Smoother low-lag filters — John Ehlers. Chebyshev Type-I filter — classical DSP. Recursive (Kalman) smoothing — R. E. Kalman. Volume Zone Oscillator — Walid Khalil & David Steckler. Accumulation/Distribution money-flow multiplier — Marc Chaikin. Efficiency Ratio — Perry J. Kaufman. ATR — J. Welles Wilder. Wilson score interval — Edwin B. Wilson. VWAP, Hull MA and percentile rank — standard public methods.
Original implementation; not affiliated with, nor endorsed by, any third party. No third-party code is reused.
Honest limits
The score is context, not a guarantee, and the votes are correlated (see the caveat above). The Edge figures are in-sample, close-to-close, with overlapping forward windows and no costs — descriptive context, not a verified backtest. An Edge near zero, negative, or unstable across timeframes is the harness honestly telling you the signal has no reliable edge on that instrument. Nothing here predicts price.
Disclaimer
Research and educational tool only. Not financial advice and no guarantee of profitability or accuracy. Indicators describe past behaviour; they do not predict the future. Trading carries risk of loss. Test out-of-sample and make your own decisions. The author accepts no liability for any use of this script. Indicator

Liquidity Divergence OscillatorOverview
Liquidity Divergence Oscillator is a distribution / absorption detector. It estimates liquidity health from Kyle's lambda — the price impact per unit of signed volume — and reads it for divergence against price. When price grinds to a higher high while liquidity health makes a lower high, large participants are often unloading size into strength (a distribution footprint); the mirror — price lower low, health higher low — is absorption. A forward-calibration harness scores whether those price/liquidity divergences have actually followed through on your instrument. It is a flow-structure read, not a signal to trade alone.
Why it is different — not another CVD/volume oscillator
CVD, the A/D line and MFI all measure the direction and amount of flow — who is buying or selling. Kyle's lambda measures something orthogonal: how much price moves per unit of that flow — the depth and fragility of the book. Price pushing to new highs while lambda quietly rises (liquidity thinning) is the classic footprint of size being distributed into strength, and no direction-only flow tool sees it. That impact axis is what makes a liquidity divergence its own, independent read — and it's why this belongs alongside your CVD tools rather than duplicating them. It's also distinct from a liquidity map: this is a standalone divergence oscillator, built to surface the turn, not to chart the shelves.
How the parts work as one tool
Signed volume — sv = volume × sign(price change), a tick-rule aggressor proxy.
Kyle's lambda — Cov(ΔP, sv) / Var(sv) over a rolling window: the regression slope of price change on signed flow, the standard lambda estimator. High = thin/stressed book, low = deep/liquid.
Liquidity health — −z(lambda), smoothed and tanh-squashed to a soft ±100 pane so "liquid vs stressed" reads on a fixed, self-scaling axis (0 = balance, ±50 ≈ a 1.6σ stretch).
Divergence — regular and hidden, from confirmed price pivots against health at those pivots.
Calibration harness — each regular divergence is queued and resolved a fixed horizon later against the unconditional base rate, reporting Hit / Edge / sample and a Wilson-gated star. A divergence class that never beats the base rate here is adding no information — and the dashboard shows that instead of assuming it.
How to use it
Read the oscillator's side and slope — above 0 is liquidity firming, below 0 is liquidity stressed. Treat a divergence mark as context (a distribution or absorption warning), never a standalone entry. Before you weight it, check the dashboard: if the Bull/Bear Edge isn't clearly positive with an adequate sample and a star, that class isn't carrying an edge on this instrument. Signals are marked in the pane and, optionally, on the price chart. Combine with your own levels, trend and risk rules — it describes behaviour; it decides nothing.
Universal & non-repainting
High/Low/Price are inputs, so the divergence engine runs on any series; the lambda estimate needs real volume, so use the futures (a cash index reads "no volume"). Pivots confirm a fixed number of bars after the fact and don't move once printed, and the calibration harness logs and resolves only on confirmed bars, so its statistics never repaint intrabar. The live oscillator updates each bar like any oscillator. Edge figures are in-sample, forward-measured at a fixed horizon, with no costs — a study aid, not a backtest.
Originality
Kyle's lambda and price/oscillator divergence are public; the Wilson interval is Edwin B. Wilson's. What's original is the specific construction: the detrend → z-score → tanh-squash liquidity-health oscillator built off the lambda estimate, the combined regular+hidden divergence engine keyed to it, and the forward-calibration harness that scores each divergence class against its base rate. Clean-room implementation; no third-party Pine code reused.
Concept credits
Price impact / lambda — Albert S. Kyle (1985)
Tick-rule aggressor signing — after the classic trade-sign literature (Lee & Ready)
Wilson score confidence interval — Edwin B. Wilson
Price/oscillator divergence — standard public technical-analysis technique
Disclaimer
Educational / informational only. Not financial advice, not a signal, not a recommendation. The lambda estimate uses tick-rule signed volume — a proxy, not the true tape — so liquidity health is an inference, not an order-book reading. Edge figures are in-sample, forward-measured with no costs. Past behaviour does not assure future behaviour. Markets carry risk. Do your own research and paper-trade before risking capital; you alone are responsible for your decisions.
Indicator

Burst Size Flow Divergence Large vs Small CVDOverview
A single cumulative-delta line tells you net buying or selling, but hides who is doing the pushing. Burst-Size Flow Divergence splits the flow inside each bar by the size of each volume burst — small / medium / large sub-intervals — and runs a separate signed delta on each tier. The signal is the divergence between the large-burst delta and the small-burst delta: concentrated bursts leaning one way while trickle flow leans the other. It is a flow-structure read, not a signal to trade alone.
What this is — and is NOT (read this before using)
This measures activity-burst size, not per-trade size. Pine cannot see individual trades — it sees a bar's volume and, via lower-timeframe requests, the volume of each sub-interval within the bar. "Large" here means a sub-interval that printed a lot of volume relative to normal — not a large single trade, and not "institutional." Institutions deliberately slice big orders into many small child-orders, so burst size is a proxy, not proof of who is behind the flow. The classification is honest about this, and the built-in harness is there precisely to test whether the divergence carries any information rather than to assert that it does.
Why these components are ONE tool (mashup justification)
Each stage exists because the previous one is ambiguous on its own:
Intrabar bucketing. Each lower-timeframe sub-bar is classed small/medium/large by its volume against an adaptive average, so "large" means large for this symbol and session, not a fixed lot count. A fixed threshold would misclassify on every instrument and every volatility regime.
Per-tier directional imbalance. Each tier gets its own signed delta (up sub-bar → +volume, down → −volume), expressed as net ÷ gross in — what fraction of that tier was net buying versus selling. Normalising this way lets the tiers' directions be compared apples-to-apples even though the large tier moves far less total volume than the small one.
The divergence. The large-minus-small spread is the object. Three separate delta lines would just be clutter to eyeball; the disagreement between the concentrated and the trickle flow is the actual read, so the tool computes it directly.
The calibration harness. "Concentrated bursts are informed" is a hypothesis, not a law — so when the spread is strong, the harness checks forward whether price actually followed the large tier more than the unconditional base rate, and reports Hit / Base / Edge on confirmed bars. That's what turns the divergence from a story into something you can verify on your instrument.
How it works
For each chart bar the finest available sub-bars are requested. Each is signed by close-versus-open (a tick-rule aggressor proxy) and bucketed by volume against the adaptive average. Per-tier signed volume becomes a net÷gross imbalance in , the large-minus-small spread is smoothed into the oscillator, and a strong gated spread is the divergence signal.
How to use it
Read the histogram (the large-minus-small spread): green means large bursts are accumulating while small flow lags or sells; red means large bursts are distributing. The bold line is the large-tier imbalance, the faint line the small tier. A gated turn in the spread suggests concentrated flow is leading, and is marked in the pane and — optionally — on the price chart. Always check the Coverage row (how much real sub-bar resolution the current bar received) and the Edge row (whether the divergence has actually led on this instrument). It is never a standalone trigger.
Plan-adaptive & data note
Sub-bar precision auto-selects the finest your plan serves (seconds on Premium+, else 1-minute). Lower-timeframe data exists only for recent bars, so older bars fall back to whole-bar flow and the coverage read shows it. The tool needs an instrument with real volume — a cash index reports none, so use the futures. The adaptive average and the calibration harness advance only on confirmed bars, so they never drift or inflate intrabar. Edge is in-sample, no costs — a study aid, not a backtest.
Originality
The parts are public: cumulative volume delta, the close-vs-open (tick-rule) aggressor proxy, and the general idea of size-partitioned / flow-toxicity order flow. What's assembled here is the specific construction — the adaptive intrabar size-tiering, the net÷gross per-tier imbalance that makes tiers of very different volume directly comparable, the large-minus-small divergence as the headline object, and the forward-calibration harness that scores it against the base rate. This is a clean-room implementation; no third-party Pine code is reused.
Concept credits
Cumulative Volume Delta — standard order-flow technique.
Close-vs-open (tick-rule) aggressor classification — after the classic trade-sign literature (Lee & Ready).
Size-partitioned / flow-toxicity order flow (VPIN) — Easley, López de Prado & O'Hara.
Disclaimer
Research and educational tool only. Not financial advice, no recommendation, no guarantee of results. Burst size is not trade size and does not identify institutions versus retail; the up/down sign is a close-vs-open proxy for the aggressor, not the true tape. Indicators describe past behaviour; they do not predict the future. Trading carries risk of loss. Test out-of-sample and make your own decisions. The author accepts no liability. Indicator

Order Flow Criticality Hawkes Branching RatioOrder-Flow Criticality — Hawkes Branching Ratio
What it is
Most order-flow tools ask how strong flow is. This one asks how fragile it is — how close the tape is to a self-sustaining cascade, where each burst of aggressive flow tends to trigger the next. That property is the branching ratio (n) of a self-exciting (Hawkes) process: n ≈ 0 means bursts are independent and the tape is stable (exogenous); n → 1 means flow is nearly self-sustaining — endogenous, reflexive, fragile. The output is a state read that says size down as criticality rises. It never issues a buy or sell.
How it works (and why this method)
Event — a bar whose absolute signed volume-delta is unusually large for its time of day. Delta is built from finest-available lower-timeframe signed volume, with an automatic bar-shape fallback.
Branching ratio — fitting a Hawkes kernel by maximum likelihood is heavy and fragile, so this uses the model-independent moment estimator of Hardiman & Bouchaud (2014): for a self-exciting process the variance-to-mean ratio of the event count (the Fano factor) grows as 1/(1−n)², so n ≈ 1 − √(mean_count / var_count) over recent non-overlapping counting bins. Only a mean and a variance of counts are needed. A random (Poisson) tape gives n ≈ 0; a clustered tape gives n → 1.
De-seasonalization (the key honesty step) — this estimator is known to be biased upward by intraday seasonality: opens and closes have naturally higher flow, which can masquerade as criticality (a Poisson process with a changing rate can show a spurious n ≈ 1). So an event is judged against the typical flow for its hour, removing the daily rhythm so what remains is genuine self-excitation.
Output — a background tint that intensifies as n rises, ● event marks, a SIZE-DOWN tag on crossing the critical zone, and a dashboard stating STABLE / ELEVATED / CRITICAL with a suggested size factor (1 − n).
Everything advances only on confirmed bars; the lower-timeframe delta is read on closed bars. No hindsight.
The stability & multi-timeframe layer
States are dwell-filtered (standard anti-chattering): a new STABLE/ELEVATED/CRITICAL is announced only after surviving a set number of confirmed bars. STABILITY shows how settled the read is; PENDING shows a forming state with a countdown. Cost: a few bars of lag — stated and adjustable.
The criticality lane — a thin strip at the pane bottom — gives the glance-read: green = stable, amber = elevated, red = critical. Risk colors (safe/danger), never direction.
The HTF STACK row shows the raw criticality state on three higher timeframes derived as multiples of the chart (defaults 3×, 5×, 15×). Honesty notes: the HTF slots use the bar-shape delta proxy (lower-timeframe data cannot be nested inside a higher-timeframe request) and the global flow baseline instead of the hourly profile (an HTF bar spans multiple hours, so per-hour bucketing is ill-defined there). ✓ = every timeframe agrees; ⚠ = a higher timeframe is CRITICAL while the chart is not — fragility above your resolution.
Seeing the cascades
Every flow burst prints a dot below its own bar: blue = isolated (arrived independently), warm = chained (within a few bars of the previous burst — likely triggered by it). This is the branching ratio made visible: as the tape approaches critical you can watch chains lengthen at the price action itself.
The EVENTS row shows the recent % chained — the plain-language twin of n — and the branching-ratio row carries a fill gauge so the number reads like a fuel gauge.
How to use it
Add to any liquid symbol/timeframe; defaults suit index futures — change the volume source and lower-timeframe for other markets.
Read the dashboard headline: STABLE / ELEVATED / CRITICAL. As it rises toward CRITICAL, the branching ratio is telling you the tape is increasingly self-referential and prone to cascades.
Use it as a risk overlay on top of your directional tools: when criticality is high, cut size, widen stops, or stand aside — regardless of which way you lean. When it's low and stable, normal sizing is more justified.
Keep de-seasonalization on (default). Turning it off will make opens and closes look critical when they may just be busy.
What makes it original
Retail order-flow tools measure intensity and call it strength. This measures endogeneity — the degree to which flow is feeding on itself — using a published market-reflexivity statistic, computed by a moment estimator that is feasible on a chart, and de-seasonalized so it isn't fooled by the daily rhythm (the exact bias the literature warns about). Reframing order flow from "how strong" to "how fragile," as an explicit size-down gauge, is the contribution.
Concept credits
Self-exciting point processes — A. G. Hawkes (1971). Reflexivity / branching ratio as market endogeneity and flash-crash analysis — V. Filimonov & D. Sornette. Moment (mean/variance) branching-ratio estimator — S. Hardiman & J.-P. Bouchaud (2014). Hawkes models of order flow — E. Bacry, J.-F. Muzy and co-authors. Implementation and charting design are the author's own.
Important disclaimer
Research and education only. Not financial advice, not a signal service, not a guarantee of future results. The branching ratio is a descriptive statistic and a proxy — not a certainty and not a direction. High criticality does not predict which way price will move, only that flow is fragile. Validate independently and manage your own risk. Indicator

Levy Area Flow Sequencer Flow Price Lead LagLévy-Area Flow Sequencer — Flow/Price Lead-Lag
What it is
Correlation says flow and price move together; it cannot say which moves first. But the sequencing is the interesting part: when aggressive flow precedes price, moves are being built by participation before they print; when price precedes flow, price is running ahead and flow is chasing — squeeze / stop-run character. Traced together, the two series form a path in the plane, and the signed (Lévy) area that path encloses measures its rotation — a scale-free, lag-free read of lead–lag, including non-linear lead–lag that fixed-lag cross-correlation misses. This is the most experimental tool of this suite, and it is framed that way.
The mathematics (signature lead–lag metric)
The metric is the antisymmetric part of the second-level path signature of the pair (flow, price): the window sum of (X·dy − Y·dx), with both increment series normalized to unit scale so the area is dimensionless. Per the literature's interpretation, the metric is positive and grows when moves in the first series are followed by same-direction moves in the second. The first series here is cumulative order-flow delta (from lower-timeframe signed volume, with bar-shape fallback) and the second is price, so AREA > 0 → FLOW LEADS and AREA < 0 → PRICE LEADS.
The honesty steps
Significance gate — a raw signed area is noisy, so the reading is ranked against its own recent history, and a lead is declared only when rotation is unusually strong for this symbol/timeframe. Otherwise the state is BALANCED: no claim.
Sequencing ≠ causation — the literature is explicit that a signed area alone cannot establish causal direction. This tool reports a temporal-ordering tendency of past bars; treat it as tape character.
Known limitation, stated — persistent inverse co-movement between flow and price can contaminate the sign. On liquid futures they co-move and the read behaves; on instruments where they reliably anti-correlate, don't trust it.
The stability & multi-timeframe layer
States are dwell-filtered (standard anti-chattering): FLOW LEADS / PRICE LEADS / BALANCED is announced only after surviving a set number of confirmed bars, so the read doesn't flip-flop. STABILITY shows how settled it is; PENDING shows a forming state with a countdown. Cost: a few bars of lag — stated and adjustable.
The lead lane — a thin strip at the pane bottom — gives the glance-read: green = flow leads (moves better backed), amber = price leads (flow chasing, be sceptical), gray = balanced. Trust/caution colors, never direction.
The HTF STACK row shows the raw lead state on three higher timeframes derived as multiples of the chart (defaults 3×, 5×, 15×). Honesty note: lower-timeframe data cannot be requested inside a higher-timeframe request, so the HTF slots use the bar-shape delta proxy — a stated approximation. ✓ = all timeframes agree on the same significant lead; ⚠ = a higher timeframe shows the opposite lead.
How to use it
Add to a liquid intraday chart. Read the dashboard: FLOW LEADS → breakouts/drives carry more weight (participation came first); PRICE LEADS → be sceptical of extensions (flow is chasing); BALANCED → the tool makes no claim.
Tags print when the lead flips while significant; alerts fire on flips.
Use it as context alongside order-flow and structure tools — never as a standalone signal.
What makes it original
Path-signature methods are frontier quantitative machinery (rough-path theory) that has reached systematic trading but, to the author's knowledge, not chart platforms. Applying the signature lead-lag metric to the flow-vs-price pair — the pair an order-flow trader actually cares about — with an honest significance gate and stated limitations, is the contribution.
Concept credits
Signed area of stochastic paths — P. Lévy. Rough-path / signature theory — T. Lyons; Levin, Lyons & Ni (2016). Signature lead-lag metric and interpretation — I. Chevyrev & A. Kormilitzin (2016). Market applications — Bennett, Cucuringu & Reinert (2022); Cartea, Cucuringu & Jin (2023). Implementation and charting design are the author's own.
Important disclaimer
Research and education only. Not financial advice, not a signal service, not a guarantee of future results. The area measures a sequencing tendency in past data; it is not causal proof and not a prediction. Validate independently and manage your own risk. Indicator

Adaptive Market Suite [Jayadev Rana]Overview
Adaptive Market Suite is a four-module analysis toolkit that draws on the price chart. Each module is independent: turn any of them on or off, and each has its own settings group. It shows context, not buy or sell arrows. The four modules are an adaptive trend, volatility bands, market structure with order blocks and fair-value gaps, and an order-flow oscillator. You read the confluence and make your own decisions.
Module 1 - Adaptive Trend and Regime
A moving average whose smoothing adapts to Kaufman's efficiency ratio: the net distance price travelled divided by the total path it took to get there. In clean trends the ratio is high and the average speeds up to hug price; in chop it is low and the average slows and flattens. The line is coloured by its slope, and the info panel reports whether the market is trending or ranging from the same ratio.
Module 2 - Expected-Move Bands
Volatility bands around the adaptive basis. Instead of a fixed multiple of range, the band width scales with where the current Average True Range sits in its own recent history (its percentile), so the bands contract in quiet conditions and expand when volatility rises. A nearer pair and a wider pair mark two envelopes.
Module 3 - Liquidity and Structure
Market structure from confirmed swing pivots, labelled as Break of Structure and Change of Character. Because the pivots are symmetric (confirmed on both sides), they are fixed before they are drawn and do not repaint afterward. On a structure break the tool marks the order block behind the move (the last opposite-direction candle before the push) and it tracks fair-value gaps, which are three-bar imbalances. Each zone follows a mitigation lifecycle: it is extended while it is live and greyed once price trades through it, and only the most recent zones per type are kept so the chart stays readable.
Module 4 - Order-Flow Oscillator
A normalised buy and sell pressure read in the indicator pane. For each bar it combines where price closed within the bar's range with how large that bar's volume was relative to its recent average. Sustained closes near the highs on strong volume push the oscillator positive; the mirror pushes it negative. An absorption marker highlights bars with heavy volume but a small range, where effort is not producing movement.
Info panel
An optional compact table summarises the current trend direction, the regime read, the volatility percentile, and the current order-flow side. It is context only.
Inputs
Inputs are grouped per module: General (ATR length); Module 1 (efficiency length, fast and slow smoothing, regime threshold, colours); Module 2 (volatility lookback, base and extra width, colour); Module 3 (swing length, order-block lookback, max zones per type, toggles for structure, order blocks and fair-value gaps, colours); Module 4 (pressure smoothing, absorption threshold, colours); plus an info-panel toggle. Every module has a single enable switch.
Alerts
Bullish and bearish structure break, and the order-flow oscillator crossing above or below zero.
How to use it
Treat it as a confluence map rather than a signal. For example, price reaching an order block near the lower band, with the order-flow oscillator turning up while the adaptive trend is still rising, is a stronger context than any one of those alone. Turn off the modules you do not need: if you only trade structure, disable the other three groups for a clean map. It is intended for liquid instruments and works across timeframes; the demonstration chart is Gold on the 1-hour timeframe.
Limitations
The structure module confirms swings with bars on both sides, so its labels and order blocks appear a fixed number of bars after the pivot forms. That delay is the trade-off that keeps them from repainting. The bands, the oscillator and the info panel read the current bar and update as it forms, like any live calculation. This is an analysis tool, not a strategy: it places no orders, makes no performance claim, and there is no win rate because it does not promise trades.
Disclaimer
For education and research only. This is not financial advice, and past chart behaviour does not predict future results. Test any approach yourself and manage your own risk. Indicator

Fragility-Weighted Liquidity Map Kyle Amihud RollFragility-Weighted Liquidity Map — Kyle · Amihud · Roll
What it is
A move of the same size means opposite things depending on the book beneath it. Into a thin book, a move is mostly price impact — mechanical, fragile, prone to snap back. Into a deep book, the same move took real participation and is more likely informed. This tool estimates how impact-driven the tape is right now from three classic microstructure measures, fuses them into one fragility read, and tints recent liquidity levels by it. It scales conviction and risk — it never picks a direction.
The three measures (all from OHLCV, peer-reviewed)
Kyle's lambda (Kyle 1985) — price impact per unit of signed volume: |price change over a window| ÷ |Σ sign(Δclose)·volume|. High λ = each unit of flow moves price a lot = thin, impactable.
Amihud illiquidity (Amihud 2002) — the average of |return| ÷ dollar-volume. High = small volume moves price a lot. (Empirically ~0.8 correlated with Kyle, so the two are blended, not double-counted.)
Roll implied spread (Roll 1984) — the effective spread implied by the bid-ask bounce: c = 2·√(−Cov(Δp, Δp₋₁)) when that covariance is negative. When it is positive — common in trends — the Roll model does not apply, so the estimate is shown as not measurable here rather than forced to a number. That honesty is deliberate.
Fusion → fragility
Each measure is ranked against its own recent history (a percentile), so the read self-tunes to the symbol and timeframe. The fragility index is the weighted blend of whichever measures are currently available (Roll drops out in trends, and the blend adapts). High fragility = impact-driven, reversible tape; low = deep, informed. A plain-language read suggests trusting breakouts less and fades more when fragility is high — as context, not a signal.
The map
Bars that trade unusually large volume leave a horizontal liquidity level where size changed hands. Each level is tinted by the fragility state at the moment it formed: warm = it printed in a thin/impact-driven tape (a weaker level, more likely to be swept); cool = it printed in a deep/informed tape (sturdier). So the map shows not just where liquidity sits but how trustworthy each pocket is.
How to use it
Add to any liquid symbol/timeframe; defaults suit index futures — change the price/volume sources for other markets.
Glance at the fragility lane — the thin strip at the pane bottom: red = thin/fragile, green = deep/solid, gray = normal. Risk-semantic colors (danger/safe), never direction. That strip alone answers "how careful should I be" for a non-technical user.
States are dwell-filtered (standard anti-chattering): a new THIN/DEEP/NORMAL is announced only after surviving a set number of bars, so the read doesn't flip-flop. STABILITY shows how settled it is; PENDING shows a forming state with a countdown. The cost is a few bars of lag — stated and adjustable.
The HTF STACK row shows the raw fragility state on three higher timeframes derived as multiples of the chart (defaults 3×, 5×, 15× — a 5m chart reads 15m/25m/75m automatically). ✓ green = all timeframes agree on the same actionable state; ⚠ amber = a higher timeframe reads the opposite state.
Read the dashboard: DEEP / NORMAL / THIN, the three measures' ranks, and a suggested size factor. As it turns THIN, treat moves as more reversible: size down, favour fades over breakout-chasing.
Use the rails as liquidity references coloured by trust — a warm rail formed in fragile conditions; a cool rail in solid ones.
Pairs with Order-Flow Criticality: that tool asks whether flow is self-exciting (endogenous); this asks whether the book is thin (impactable). Both elevated together is the genuinely fragile state.
What makes it original
Retail liquidity tools draw where volume traded. This one weights each level and the whole tape by how impactable it is, using three peer-reviewed microstructure estimators computed from bar data, self-calibrated, and — crucially — honest about when the Roll model doesn't apply. Reframing a liquidity map from "where is liquidity" to "how fragile is liquidity" is the contribution.
Concept credits
Price impact of order flow (lambda) — A. S. Kyle (1985). Illiquidity ratio — Y. Amihud (2002). Implied effective spread from serial covariance — R. Roll (1984). Square-root impact refinement — J. Hasbrouck. Fragility framing — general market-microstructure literature. Implementation and charting design are the author's own.
Important disclaimer
Research and education only. Not financial advice, not a signal service, not a guarantee of future results. These are proxies estimated from bar data, not order-book truth, and they do not predict direction. Validate independently and manage your own risk. Indicator

Adaptive Structural Trail Order Flow, Imbalance & RegimeAdaptive Structural Trail — Order Flow, Imbalance & Regime
What it is
Adaptive Structural Trail is a single, self-contained market-structure framework that re-clocks the chart by participation instead of time, marks the imbalances that real activity leaves behind, lets order flow decide which of those levels still matter, asks a regime filter whether trending behaviour can be trusted right now, and trails the strongest surviving level as an adaptive stop — all summarised in a plain-language dashboard that tells you, at a glance, whether the picture says ride, wait, or stand aside.
It is designed to be market-agnostic: every raw input (price, volume, and the volatility-index reference) is user-selectable, so the same logic runs on index futures, equities, FX, crypto or commodities without touching the code. Defaults are set for NIFTY index futures; change the volatility symbol and (if needed) the volume source for other instruments.
Why the components are combined (this is one tool, not a bundle)
Each layer measures a different facet of one process — activity creating structure, structure decaying or being defended, and a regime deciding whether to act. They are not independent indicators stacked for visual effect; remove any one and the others lose their meaning:
Delta clock (the substrate). A virtual bar closes only when cumulative signed volume becomes statistically significant (σ × a multiplier). Every downstream reading is therefore spaced by participation, not by the clock — a quiet 10 minutes and a violent 10 seconds are treated differently, which is the whole point.
Imbalance / fair-value-gap detection runs on those virtual bars, so a level is recorded only where genuine activity gapped price, not on arbitrary time bars.
Order-flow lifecycle (charge → decay → breaker/dead). When price returns to a level, delta adjudicates the outcome: absorbed-and-defended levels are reborn as breakers; levels that are surged through are killed. Flow decides what structure survives.
Regime gate (efficiency ratio + volatility burst). This routes everything. The trail is shown and signals arm only where trend behaviour is statistically credible; in range/transition/high-volatility states the tool deliberately stands aside.
Confidence fusion. Structure strength, cumulative-delta slope and flow toxicity (VPIN) are blended into one confidence number, which the dashboard converts into a plain instruction.
That coupling — a volume-significance clock feeding imbalance detection whose survival is adjudicated by order flow and gated by regime, fused into a single trailing level and a decision read-out — is the original contribution here.
How to use it
Add it to any liquid instrument. It is built for intraday timeframes (1–15 min is the sweet spot on index futures).
Read the dashboard top-down: the ACTION banner is the headline (e.g. LONG · ride the trail, RANGE · stand aside). Below it: bias + confidence, market state, the actual trail-stop price, order flow, flow toxicity, volatility context, and a plain "what to do" line.
Treat the coloured trail as a structure-based stop while the market state is a trend; when the state leaves trend, the trail disappears by design.
The imbalance zones show where unfilled activity sits; fresh, tapped and breaker levels are colour-coded (see the on-chart legend).
Edge-calibration panel (bottom-right): for transparency it scores past signals against a regime-matched base rate and reports EDGE = Hit − Base with a 95% confidence interval. Read the Edge column, not the raw hit-rate. This is descriptive of the past on your symbol — not a backtest and not a forward guarantee.
Key-info panel (top-left): instrument, timeframe, the live data source (see honesty note), threshold, ATR and level counts.
Honest note on data (please read)
TradingView exposes no true tick-by-tick aggressor delta and cannot build custom bars, so delta here is a proxy: signed intrabar volume taken from the finest lower timeframe your data plan returns — 1-second where available, otherwise 1-minute — falling back to bar-shape when no lower-timeframe data exists. The live source is shown as "Delta source" in the Key-info panel, so you always know which mode is active. Non-repaint: the delta clock advances and structure/regime/signals resolve only on confirmed bars; the trail line itself updates within the forming bar as a current estimate.
Originality
The novelty is the synthesis and coupling, not any single classical block. A participation clock is used to gate imbalance detection; order flow is used to adjudicate level survival; regime is used to route the entire read; and the whole thing collapses into one trailing level plus a decision dashboard and a self-calibration panel. Every raw input is user-selectable so the framework generalises across markets.
Concept credits
This tool synthesises well-established, publicly documented ideas; credit to their originators:
Information / volume-driven bars & VPIN flow toxicity — Marcos López de Prado; Easley, López de Prado & O'Hara.
Efficiency Ratio (trend vs. noise) — Perry J. Kaufman.
Trade-side classification (tick rule) — Lee & Ready.
Market impact & absorption (square-root law) — Almgren; Tóth & Bouchaud.
Wilson score interval (small-sample proportion CI) — E. B. Wilson.
Imbalance / fair-value-gap and trailing-stop concepts are long-standing, widely used market-structure ideas. The synthesis and the Pine implementation are the author's own.
Exported outputs (for use in other scripts)
Available via input.source() in any other indicator, with clean generic names: Bias Score (signed conviction, ±10), Trail Stop, Trail Direction, Regime State, Confidence, Leading Strength, CVD Slope, Flow Toxicity, Cumulative Delta, Volatility ROC, Volatility Bias.
Disclaimer
For research and education only. This is an analytical tool — not financial advice, not a signal service, and not a guarantee of future results. No indicator has an inherent edge; validate with your own testing, apply realistic costs, and manage risk. You are solely responsible for your trading decisions. Indicator

Ease-of-Movement Flow OscillatorEase-of-Movement Flow Oscillator
A volume oscillator that measures how easily price moves — distance travelled relative to the volume required to travel it. Large travel on light volume = high ease (a frictionless drift); small travel on heavy volume = low ease (absorption — effort without result). Above zero, price advances with little resistance; below zero, it declines with little resistance. It adds an absorption warning and a plain-language forward-calibration layer, so you can tell at a glance whether a move is frictionless or being absorbed, and whether the signal has actually paid here.
Why these parts are combined (not a mashup for show). Ease of movement relates distance to the volume needed for it — a different question from "buying vs selling." A frictionless advance and an absorbed advance look identical on a price chart but behave differently next, so that's the core read. An effort-vs-result check (price making a new extreme while ease does not) flags absorption — heavy volume no longer moving price — which the raw line alone misses. Forward calibration removes blind faith: instead of assuming a cross "should" pay, it measures whether it actually has, with realistic profit/stop outcomes. Together they form one coherent volume-flow tool.
How it works. Distance moved = midpoint change; box ratio = (volume ÷ scale) ÷ range. Ease = distance ÷ box ratio, smoothed, standardized and soft-bounded to ±100 that auto-fits its own magnitude. A signal fires only when ease decisively clears a confirmation band beyond zero (filtering the constant zero-line chatter). Absorption divergence is detected from confirmed price pivots versus the ease line. Each signal is then labelled by a triple barrier — a profit target and equal stop in ATR units plus a time limit — split into in-sample and recent out-of-sample, with a confidence interval and a multiple-testing check.
How to use. Read the Verdict row (Long/Short, Absorption, or Wait) and the Conviction row, which reads "High" only when that signal type shows a positive edge that survives the test on this symbol. Green above zero = easy up, red below = easy down; shaded bands = strong ease; the faint band lines mark where signals fire. Best used with your own trend and risk plan, not alone.
What's original. The absorption (effort-vs-result) flag, auto volume scaling, a noise-filtering signal band, the forward triple-barrier calibration with an out-of-sample split, and a conviction read that openly admits when there's no proven edge.
Volume note. This needs real volume — use a futures contract such as NSE:NIFTY1!. On a cash index it reports "No volume" rather than printing noise.
Honesty & limitations. Edge figures are computed on this chart's own history with overlapping windows and no costs — context, not a guaranteed backtest; past behaviour doesn't predict the future. Volume quality varies by feed and instrument.
Disclaimer: for research and education only. Not financial advice. Trading carries risk of loss; manage your own positions. Indicator

Stocks: Financial Summary [invincible3]Stocks: Financial Summary
Stocks: Financial Summary is a compact fundamental dashboard designed to visualize a company’s key financial statements directly on the TradingView chart.
The indicator displays three major financial sections:
Income Statement
Revenue, Gross Profit, EBIT or Operating Income, Pretax Income, and Net Income.
Balance Sheet
Total Assets, Total Liabilities, and Shareholders’ Equity.
Cash Flow
Cash Flow from Operations, Cash Flow from Investing, Cash Flow from Financing, and Free Cash Flow.
The dashboard is drawn on the right side of the chart using a clean multi-panel bar-chart layout. It allows traders and investors to quickly compare historical yearly or quarterly financial data without leaving the price chart.
Key Features
* Supports Yearly and Quarterly financial views.
* Optional TTM display for Income Statement and Cash Flow.
* Visual comparison of historical financial periods.
* Auto unit formatting: Raw, K, M, B, and T.
* Customizable dashboard position, spacing, bar width, colors, and transparency.
* Right-side layout designed to keep the price chart readable.
* Uses actual TradingView financial data through `request.financial()`.
* Includes manual fiscal year and quarter override options when exchange reporting labels need adjustment.
This tool is designed for fundamental analysis, long-term stock screening, and quick financial statement comparison. It can help users visually inspect whether a company’s revenue, profitability, assets, liabilities, cash flow, and free cash flow are improving or weakening over time.
This indicator is for educational and informational purposes only. It is not financial advice.
Indicator
