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.
インジケーター

Swing Fibonacci Arcs & Volume Profile [BigBeluga]🔵 OVERVIEW
The Swing Fibonacci Arcs & Volume Profile is an advanced technical analysis indicator designed by BigBeluga to combine geometric Fibonacci arc projections with automated swing-anchored volume profile histograms directly on the chart. Traditional Fibonacci tools rely strictly on linear retracements or horizontal grids, often failing to account for circular expansion paths and volume distribution across structural market swings. To solve this limitation, this script automatically detects significant market swings, projects customizable elliptical Fibonacci arcs with band fills, and computes a detailed volume profile histogram complete with a Point of Control (POC) line.
The indicator visualizes confirmed swing lines, curved arc bands, volume profile distribution boxes, and custom percentage labels. The core calculations track rolling highs and lows, compute elliptical scaling parameters using adjustable horizontal and vertical multipliers, and aggregate volume bins across the active swing structure. Customizable color palettes, arc resolutions, and level toggles allow traders to fine-tune the system across various timeframes and asset classes.
🔵 HOW IT WORKS
The system operates through an integrated architecture where each component dynamically influences chart behavior:
1 — Swing Structure Engine
Swing Detection & Tracking: Scans rolling highest and lowest points using the Swing Structure input. To adapt this feature, set the length shorter (e.g., 30 to 50 ) to capture fast, short-term structural swings for day trading, or longer (e.g., 70 to 150+ ) for swing trading to focus on major macro market turning points.
Visual Line Mapping: Plots confirmed bullish and bearish swing lines using custom user-defined colors alongside real-time unconfirmed dashed projections.
2 — Fibonacci Arcs & Geometric Engine
Arc Expansion & Scaling: Projects elliptical arc bands from swing origins based on standard ratios (0.0%, 23.6%, 38.2%, 50.0%, 61.8%, 78.6%, 100.0%). Horizontal and vertical scaling factors ( Horizontal Scale (X) and Vertical Scale (Y) ) can be adjusted between 0.1 and 10.0 to modify the curvature and width of the arcs.
Resolution & Styling Controls: Adjusts arc smoothness via the Arc Resolution (Segments) input (set between 10 and 100 ) and controls border thicknesses, transparency levels, and individual band fill options.
3 — Volume Profile & POC Engine
Profile Generation: Constructs an automated volume profile histogram anchored to the active swing start point, scaled via the Profile Max Width (Bars) input.
Point of Control (POC): Identifies the highest volume bin within the swing range, rendering a distinct POC line and price label with customizable gradient coloring.
🔵 HOW TO USE
Apart from serving as a comprehensive geometric and order flow mapping tool, the indicator can be applied in several ways:
Identify Curved Support & Resistance Arcs: Monitor the intersection of price action with elliptical Fibonacci arcs (such as the 50.0% and 61.8% levels) to anticipate dynamic reversal zones during market pullbacks.
Analyze Volume Distribution Nodes: Inspect the volume profile histogram extending from the swing origin to spot heavy volume accumulation clusters.
Trade POC Rejections: Use the highlighted Point of Control (POC) line and volume tag as a primary reference level for potential breakouts or retests.
🔵 NOTES
Why this implementation is unique:
It merges advanced elliptical Fibonacci arc geometry with swing-anchored volume profile distributions.
Features dynamic polyline rendering, customizable gradient color fills, and robust array management optimized for Pine Script version 6.
Provides extensive modular toggles for individual arc ratios, line widths, and profile displays.
インジケーター

TPO Market Profile, Value Area, POC & Initial Balance [LunqFX]A volume profile answers how MUCH traded at each price. A Market Profile answers a different question: how LONG price stayed there. This indicator draws the second one — a TPO profile, built letter by letter from the session's own half-hour brackets, with the Point of Control, the Value Area and the Initial Balance that come with it.
That distinction is the whole reason Market Profile exists as a separate discipline. Price can sit on a level for four hours on thin volume, and a volume profile will draw a narrow bar there while the auction was in fact spending most of its day at that price. Time at price and volume at price are two different maps of the same session, and they routinely disagree about where value actually is.
TPO stands for Time Price Opportunity, and the profile is the shape those opportunities build. It is the same structure floor traders assembled by hand before screens existed, which is why the Point of Control, the Value Area and the Initial Balance are named the way they are rather than the way a modern indicator would name them.
Included: TPO letters per session, the Point of Control, a value area at a percentage you choose, the Initial Balance of the first hour, levels extended to the right, a dashboard reading where price sits against that structure, and alerts on acceptance outside value and on the initial balance breaking.
❶ THE PROFILE AND WHAT IT COUNTS
The session is split into brackets of thirty minutes by default. Bracket one is A, bracket two is B, and so on. A bracket is credited to a price row when it traded anywhere inside that row, and each row is then drawn to the length of the count it collected.
The counting rule matters more than it sounds: a bracket counts ONCE for a row however many bars of that bracket touched it. That single rule is what makes the result a measure of time rather than of activity, and it is the entire difference from the volume profile beside it on your chart.
Brackets are cut from elapsed session time rather than from bar count, so the same profile appears whether you run the chart on 5 minutes or on 15.
A bracket can never be finer than a bar, and the script enforces that rather than letting you ask for something the chart cannot deliver. Request thirty-minute brackets on a one-hour chart and every bar would jump the counter by two, leaving half the brackets empty and the letter view printing A, C, E with the gaps missing. The bracket size is floored at the chart's own timeframe, and the dashboard shows the size actually in use.
The classic letter view — A, B, C printed at every price the bracket reached — is in the settings, and it is worth knowing why it is not the default. A true TPO grid needs one text object per row per bracket: forty rows across twenty-six brackets is more than a thousand objects for one session, against a platform cap of five hundred for the whole script. Packing each row's letters into a single text object instead runs into a second wall, because Pine centres a label's text on its anchor and gives no way to left-align it, so the profile spreads both ways from the anchor and lands on top of price. Rows drawn to their own length say the same thing and can be read at a glance. Both views are one setting apart, and there is a shift control for moving either clear of the candles.
❷ POINT OF CONTROL — THE POC
The price row that collected the most brackets — the price the session spent the most time at. It is drawn as a solid line and its row of letters is coloured gold.
A volume profile has a POC too, and the two are frequently at different prices on the same day. That gap is worth looking at: a volume POC well away from the time POC means the heavy trading and the long acceptance happened in different places, which is usually where the day's argument was.
The POC is where the auction found agreement. Traders use it as the session's magnet: price that leaves it tends to come back to it, and a session whose POC is far from its close often has unfinished business there.
❸ VALUE AREA
The band containing the chosen share of the session's total time, seventy percent by convention. It is built the classic way: start at the Point of Control, then step outward one row at a time, always taking whichever neighbouring row holds more time, until the target is enclosed.
Rows inside the value area are drawn bright; rows outside are dimmed. What you are looking at is the difference between where the market agreed on price and where it merely passed through.
❹ INITIAL BALANCE
The high and low set during the first two brackets — the first hour of the session on default settings. Drawn as two dotted lines.
The Initial Balance is the day's opening statement. A session that spends the rest of the day inside it is balanced and rotational, and its edges are the fade. A session that leaves it early has found a direction, and the break level becomes the reference for the rest of the day. The dashboard says which of the two is happening.
❺ THE DASHBOARD
A header that reads IN VALUE, ABOVE VALUE or BELOW VALUE according to where price sits against the developing profile, the number of brackets built so far, the Point of Control, both value area edges, the Initial Balance range, and whether that balance is still holding.
HOW TO USE IT
1 — Read the header first. In value means the session is balanced and the edges are the trade. Above or below value means price is away from agreement and either seeking a new one or coming back.
2 — Use the Point of Control as the session's magnet. It is the single most-referenced price of the day and the most common target for a return move.
3 — Watch the Initial Balance in the first two hours. Holding inside it points to a rotational day; leaving it early points to a directional one, and that judgement changes which of the levels above are worth trading.
4 — Compare today's value area with yesterday's. Higher value against lower value is the cleanest read of whether the auction is migrating, and it is visible at a glance once several sessions are on the chart.
5 — Read it beside a volume profile, not instead of one. Where the two disagree — heavy volume at a price the market barely spent time at, or the reverse — is where the most information is.
HOW IT WORKS
Sessions come from the symbol's own trading day, so nothing has to be configured per market. Elapsed session time in minutes divided by the bracket size gives each bar its bracket number, which keeps letters tied to the clock rather than to bar count.
When a session closes, its range is divided into the chosen number of rows. For every row the script walks the session's bars and marks which brackets overlapped that row, then counts the distinct brackets and builds the letter string. The row with the highest count becomes the Point of Control. The value area grows outward from it, one row at a time toward whichever neighbour holds more, until the chosen share of total brackets is enclosed. The Initial Balance is the extreme high and low among bars belonging to brackets one and two.
A completed session is drawn once and never touched again. The developing session is rebuilt once per closed bar.
Best used on intraday charts from 5 to 30 minutes, on instruments with a defined session — index futures and CFDs, gold, forex majors, large-cap crypto.
LIMITATIONS — read before relying on any of it
▸ This is a bar-based approximation of a floor-based technique. Classic TPO is built from every price the market printed during a bracket; here a bracket is credited to a row when any bar of that bracket overlapped the row. On low timeframes the two are nearly identical; on higher ones a single wide bar credits its bracket to more rows than the market may truly have spent time in, and the profile widens accordingly. Use 5 to 30 minute charts and the difference stays small.
▸ It needs an intraday chart. A profile is built from many bars inside one session, so on a daily chart or higher a single bar IS the session and there is nothing to divide. The script draws nothing there and the dashboard says so rather than printing a meaningless block. Use 5 to 30 minutes.
▸ Sessions are the symbol's own trading day. On a market that trades around the clock that is the calendar day in exchange time, which is a convention rather than a real auction boundary. Crypto profiles are therefore useful for structure but not for session theory in the futures sense.
▸ Only the most recent sessions are built. Older sessions are skipped entirely rather than drawn and discarded, because building every session of a long history is enough to time the script out. Scroll back far enough and the profiles stop.
▸ The first session on a freshly loaded chart can be partial. The script starts counting a session from the first bar it is given, and if the chart begins in the middle of a trading day that profile covers only the part it could see. It is normally out of range of the sessions actually drawn, but on a very short chart it is the one to distrust.
▸ The row count changes the shape. More rows give a finer profile with a more precise Point of Control; fewer rows smooth it. Two readings are only comparable at the same row count.
▸ The letter view is a compromise, and the default block view exists because of it. Pine caps a script at five hundred drawing objects and centres a label's text on its anchor with no way to left-align it, so neither a true letter grid nor a clean left-anchored letter column is possible. If you switch the letters on, expect them centred on the anchor rather than laid out as a terminal would lay them out.
▸ There is a hard platform limit on drawings. With the default forty rows and five sessions the script stays well inside it, but raising both together will start dropping the oldest rows.
▸ The Initial Balance is the first two brackets, which is one hour on default settings. Traders who define it differently should change the bracket size rather than expect the level to move.
▸ None of this predicts anything. A profile describes an auction that has already happened.
WHY IT IS ORIGINAL
Time at price and volume at price are different measurements, and this publication implements the first. The counting rule — one credit per bracket per row regardless of how many bars touched it — is what separates the two, and it is stated openly here rather than left inside the code.
The parts belong together because they are one object read at four resolutions. The letters are the raw shape. The Point of Control is its densest point. The value area is the band that shape encloses. The Initial Balance is the first hour of it, kept separate because the day's character is decided there. Remove the letters and the levels float above nothing; remove the levels and the shape has to be read by eye.
SETTINGS
▸ Profile — bracket size in minutes, price rows per session, value area percentage, how many sessions to keep. The bracket size is floored at the chart's timeframe, and the profile width is capped at the session's own bar count, so neither setting can be pushed into a state the chart cannot render honestly. ▸ Levels — Point of Control, value area edges, initial balance, and how far levels extend to the right. ▸ Visuals — blocks or letters, profile width and transparency, letter size, how far to shift the profile sideways, neon candles, dashboard and its position.
ALERTS — accepted above value, accepted below value, initial balance broken up, initial balance broken down. All fire on closed bars.
NON-REPAINTING — a completed session's profile is drawn once from closed bars and is never recalculated. Only the developing session updates, and it rebuilds once per closed bar rather than tick by tick.
This indicator is an educational market-analysis tool, not financial advice. It describes the structure of sessions that have already completed and does not predict future prices. Always confirm with your own analysis and manage your risk. インジケーター

Volume Profile Breakout Continuation
What this is - and is not. This is one state machine, not separate tools stacked on a chart. A range-compression detector, a volume profile, a higher-timeframe filter, a pullback tracker and a trade-management layer are chained so that each stage only exists because the previous one fired. It is not a volume profile indicator with signals bolted on, and it is not a breakout indicator with a profile drawn next to it.
Why the parts are inseparable. The profile is built only over the bars of a detected accumulation range - remove the range detector and there is nothing to profile. The breakout is defined as a close outside that same range - remove the profile and the pullback has no POC to return to. The trigger is a close back through the POC in the breakout direction - remove the breakout and the trigger has no direction. Take any stage away and the remaining logic has nothing to act on.
Mechanism
1. Accumulation. When the range of the last N bars is at or under k × ATR, an accumulation box opens on that bar and grows while price stays inside. It is drawn as it forms, not in hindsight. A box that expands past the abandon threshold, or runs too long, is dropped and faded.
2. Profile. A small volume-at-price histogram is built inside the box from the accumulation bars only and refreshed each bar. Each bar's volume is spread evenly across the rows its high-low spans. POC is the heaviest row; the value area is expanded outward from the POC to the chosen percentage.
3. Breakout. A confirmed close outside the box. With the higher-timeframe filter on, long breakouts require the prior completed HTF close above its EMA and shorts below. At this moment POC, VAL and VAH are frozen and a second box opens to frame the pullback.
4. Pullback. Price comes back into the POC zone (a tolerance expressed as a percentage of the range height). The setup is invalidated by a close through the far edge of the value area or by a wait timeout.
5. Trigger. A confirmed close back through the POC in the breakout direction marks the entry.
What you see
- Purple accumulation boxes with the profile tucked inside (heatmap or single-hue mode, POC row in gold).
- A teal pullback box from the breakout bar to the trigger bar, with the POC line running through it and a label on the bar that touches the zone.
- Entry labels with entry, TP and SL; TP and SL boxes that extend while the trade is open and truncate at the exit; exit labels showing the percentage actually taken. Past trades stay on the chart.
- A developing session profile floated off the last bar, plus finished day profiles painted in place at each rollover and never redrawn.
- A monospace dashboard: stage, HTF bias, accumulation range, setup and day POC, day value area, pullback status, position, TP/SL, running record, readiness.
Settings
- Accumulation: range lookback, compression multiple, minimum and maximum bars, abandon multiple, ATR length.
- Setup profile: rows, value-area percentage, histogram width, past-setup fade and count.
- Session profile: rows, width, offset, side, color mode, past profiles to keep and their width and transparency.
- HTF bias: on/off, timeframe (auto steps up one tier from the chart), EMA length.
- Pullback: POC zone half-width, maximum wait.
- Trade management: fixed-percent or ATR-multiple TP/SL, max bars in trade, entry cooldown, optional post-exit cooldowns by exit type, past-box fade.
- Session: end-of-day flatten hour and minute (New York).
- Webhook: optional JSON payload on entry and exit with a strategy id and quantity.
How to use. Start with the default settings on the timeframe you normally trade and watch how often boxes form and how often breakouts fail before the pullback. Tighten the compression multiple for fewer, cleaner ranges; widen the POC zone if pullbacks are missing the level by a hair. The trade-management layer is a study aid: the labels and boxes show what the mechanical rules would have done, so you can judge the logic against your own read of the chart.
The defaults are a starting point for one instrument, not an optimized or recommended configuration, not intended to suggest any particular outcome.
Non-repainting. Every state transition, entry and time-based exit is evaluated on confirmed bars only. The higher-timeframe values are requested with lookahead off and reference the previous completed HTF bar, so history and live behave the same. Finished day profiles are painted once at the rollover and never redrawn. TP and SL are checked against the bar's high and low. The profile uses chart-timeframe bar volume, not tick data, so it is an approximation, as every profile built in Pine is; instruments without volume fall back to a time-at-price count. インジケーター

Smooths Session Volume ProfileOverview
Smooths Session Volume Profile (SSVP) is built around a single volume-splitting engine that feeds three different views of the same underlying data: a per-bar footprint table, a compact mobile dashboard, and a session-scaled Volume Profile with Point of Control, Value Area, and Imbalance detection. Every number shown anywhere in the script traces back to one buy/sell volume calculation performed once per bar.
Why these are one script, not a mashup
The footprint table and the Volume Profile are not two indicators placed side by side — they are two resolutions of the identical volume model. The table shows that model at full per-bar detail over a short recent window; the profile aggregates the exact same bar-level buy/sell split over whichever session(s) the user selects. The session tools (highlight boxes, session-based profile scaling, Naked POC) extend that one model with time-of-day awareness rather than adding a separate feature. Removing the table would not simplify the script's purpose, it would just remove one lens on the same data the profile already uses.
Concepts used
Selectable volume engine: Geometric splits each bar's volume by where it closed inside its own high-low range. Intrabar reads real up/down volume from a lower timeframe via TradingView's own ta library. Footprint reads TradingView's native per-tick request.footprint() data (Premium/Ultimate plans only). Every other calculation in the script consumes whichever engine is active, unchanged.
Per-bar truncated-normal volume split: rather than splitting a bar's volume evenly across the ticks it traded, the script models the buy side and the sell side as separate truncated normal distributions inside the bar's own high-low range, centered toward where the bar actually closed. This produces a continuous, weighted density instead of a flat histogram bar.
Volume Profile as a summed density: the same per-bar truncated-normal components are summed across every included bar into one continuous curve, which is then sampled to locate the Point of Control (the price of maximum combined density), the Value Area (the narrowest band containing a chosen percentage of the modeled volume), and diagonal volume imbalances between adjacent price levels.
Session-aware scaling: Asia, London, and New York are each tracked independently — the script knows whether a session is currently forming or was last completed, and the profile can be built from the live union of whichever sessions are toggled on, instead of a fixed bar count.
Naked POC: the instant a session's occurrence closes, that session's own standalone Point of Control is computed independently of the combined profile and kept on the chart as an untested level until price actually trades back through it.
Self-checking math: the Overlap reading (OVL) measures what share of buy and sell volume occurred at the same prices, from 0 (fully separated, directional) to 1 (fully overlapping, balanced/rotational). The Residual reading (RES) independently re-integrates the density model and compares it back to the real volume it's supposed to represent, in parts-per-million, so the script can flag its own modeling error rather than silently drawing a profile that doesn't add up.
How to use it
Add it to any chart and timeframe. Use the Volume Profile's POC as a magnet level and its Value Area edges as boundaries between accepted and rejected price. Diagonal imbalances mark price levels where one side of the market overwhelmed the other. Toggle individual sessions in and out of "Include in Profile" to isolate one session's structure or build a composite of several. Switch to the footprint table or the mobile dashboard for the identical volume data at per-bar resolution instead of session-aggregated.
Originality
The per-bar truncated-normal volume model — shared by the footprint table and the Volume Profile alike — is the mechanism this script is built around, not an assembly of standard metrics. Session-aware profile scaling, Naked POC seeded independently per session, and the self-checking Residual metric are not reused from another publication; the detection, modeling, and rendering logic here were written for this script.
Inputs
Volume Profile — Profile Period/Session Scaling mode, Style (Line/Columns/Histogram), Width/Resolution, Gap From Chart, bell colors and fill
Session Profile Scaling — per-session time windows, time zone, Include in Profile and Show Highlight toggles, highlight colors
Metrics — Point of Control, Value Area, Imbalance thresholds, Naked POC, Balance Tilt, Residual Tolerance
Data Engine — volume engine selection and its parameters
Table Display — footprint table and mobile dashboard appearance
This indicator has no buy/sell signals, alerts framed as trade calls, or strategy logic — it is a volume-analysis tool. It does include TradingView alertcondition() entries for session starts and Overlap-state changes, which fire on data conditions, not trade recommendations. インジケーター

Unicode Heatmap CandlesUnicode Heatmap Candles
■Overview: Analytical Paradigm & Value Proposition
This indicator introduces a fundamentally new approach to micro-structural market analysis within TradingView. Transcending the visual limitations of standard OHLC (Open, High, Low, Close) candles, it leverages Pine Script v6's dynamic array processing to completely reconstruct price bars into high-resolution liquidity heatmaps. Engineered specifically for active traders and quantitative analysts, it visualizes the true order flow and volume concentrations (Point of Control) hidden beneath superficial price action in real-time.
1. Concept & Analytical Edge
Standard candlestick charts display static geometrical shapes, which inherit a critical flaw: they completely obscure internal transaction dynamics. A long wick or a large body tells you where the price moved, but not where the actual capital was deployed. In institutional quantitative analysis, a candlestick is not a solid bar, but a vertical aggregation of micro-transactions.
By utilizing Unicode block characters with sub-tick precision, this indicator maps the exact distribution of executed lower-timeframe (LTF) volume across price tiers within each individual candle—without relying on external footprint tables. It separates "empty price movements" from "solid liquidity zones.
2. Core Mechanics & Mathematical Logic
A. Dynamic Volatility Slicing (ATR Adaptive)
To maintain consistent visual resolution across varying market conditions (from low-volatility Asian sessions to high-impact news events), the price tier step is dynamically derived from the Average True Range (ATR).
Calculate dynamic price step based on 14-period ATR
float current_atr = global_atr
if na(current_atr) or current_atr == 0
current_atr := close * 0.005
int active_ticks = math.max(1, math.round((current_atr / 30) / syminfo.mintick))
float step = syminfo.mintick * active_ticks
int total_r = math.ceil((bar_h - bar_l) / step) + 1
Why this calculation? Fixing the tier size by a static tick value causes resolution breakdown during volatility spikes. By dividing the 14-period ATR by 30 and rounding to the nearest minimum tick, this mathematical normalization guarantees that each candle is systematically divided into approximately 20 to 30 micro-tiers, outputting a consistent heatmap resolution regardless of the timeframe or asset class.
B. Geometry Detection: Real Body vs. Wick
The script evaluates the exact numerical center of each vertical price tier to identify whether it structurally belongs to the candle body or the wick, rendering distinct Unicode glyphs to preserve the traditional candlestick silhouette.
Determine Body vs Wick geometry
float top_p = price_p + (step / 2)
float bot_p = price_p - (step / 2)
bool is_body = (top_p > body_bot) and (bot_p < body_top)
string current_char = is_body ? body_char : wick_char
Candle Body: Stacks wide block glyphs (███) to represent the high-density range between Open and Close.
Candle Wick: Stacks slender vertical glyphs (┃) to trace extreme price rejections up to the High/Low limits.
3. Scope of Capability & Technical Boundaries
To maintain institutional-grade transparency, the operational boundaries and strict design choices of this tool are detailed below. This is a specialized hyper-local lens, not a historical charting tool.
Intra-Candle Heatmap : Maps LTF volume directly inside the candle shape.
Real-Time POC Tracking : Visualizes highest volume nodes via color saturation.
Multi-Asset Support : Works flawlessly across Equities, Crypto, Forex, and Futures.
Full Historical Backtesting : Restricted by the Pine Script 500-label buffer limit.
High-ATR Max Display : Optimized strictly for real-time, active execution setups.
System Constraint & Design Architecture: Pine Script v6 enforces a hard maximum of 500 label objects (max_labels_count=500). Because each high-resolution candle consumes 20 to 40 individual labels to render the micro-tiers, the simultaneous display limit is mathematically capped around the most recent 5 to 8 bars in high-ATR environments. Older bars are systematically garbage-collected. This is an intentional architectural choice: 100% of the maximum allowed computing and drawing resources are allocated to maximizing the resolution of the current market structure.
Important Note on Higher Timeframes (Daily/Weekly/Monthly): TradingView Data Limits
You may notice that when applied to high timeframes like the Monthly chart, older candles render as gray (Zero Volume). This is not a bug. TradingView imposes a strict limit of 100,000 historical bars for lower-timeframe (request.security_lower_tf) data requests. If your LTF is set to 1-minute, 100,000 bars cover only about 70 days. Therefore, older macro candles cannot retrieve micro-volume data.
Remember: This indicator is a "Microscope" built for active intraday/swing execution. It is fundamentally designed for micro-structure analysis, not macro-historical profiling.
Anti-Crash Fail-Safe (For Non-Premium Users)
TradingView strictly limits access to seconds-based timeframes (e.g., 1S, 15S) to Premium plan subscribers. To prevent runtime crashes for Essential/Plus users, this script features a built-in safety toggle: "Premium Plan (Allow Seconds TF)".
If this box is unchecked (default), any attempt to input a seconds-based LTF will be automatically intercepted and safely downgraded to a 1-minute (1m) resolution, ensuring uninterrupted operation for all user tiers.
4. How to Use
Add the indicator to your chart.
Open Chart Settings (Gear Icon) -> Symbol -> Uncheck Body, Wick, and Borders (hide standard candles).
Observe the internal liquidity distribution:
Red / Orange Nodes: Point of Control (POC) and high-liquidity concentration zones.
Blue / Muted Nodes: Low volume nodes (slippage zones, price vacuums, or liquidity voids).
Disclaimer
This script and its description are published solely for the purpose of learning, researching, and providing technical analysis methodologies. The developer assumes no responsibility for any direct, indirect, incidental, or consequential losses or damages (including trading losses or loss of profits) arising from the use of this tool. Trading in financial markets involves substantial risk. Please conduct thorough verification and implement appropriate risk management at your own risk before using this in a live trading environment. インジケーター

MTF VWAP + POC Fan### What it does
Seven fixed-lookback windows on one anchor timeframe. Each window draws a VWAP curve — where the average participant's cost sits over that span — and can optionally draw a POC, the single price bin inside that same window that traded the most volume.
Same window, two different questions:
- **VWAP** — what the average participant paid
- **POC** — where participation actually concentrated
A dashboard reads the seven VWAP endpoints and scores the structure they form.
Default ladder is a daily one: **21 / 63 / 126 / 189 / 252 / 378 / 756** bars — roughly one month through three years. The anchor timeframe is configurable, so the same ladder on Weekly becomes five months through fourteen years.
### Why fixed lookbacks instead of swing anchors
Anchoring a VWAP at a swing high or low answers a real question — "what has been paid since that event" — but those anchors collapse into each other as windows grow. If price has not exceeded its three-month high, then the six-month, twelve-month and three-year highs are all the same bar, and several rungs draw one curve.
Fixed-lookback anchors cannot collide. The bar 252 back and the bar 378 back are always different bars, so seven rungs always mean seven distinct windows. That property is what makes a seven-horizon fan worth drawing at all.
### Reading the curve correctly
This is the part most multi-window VWAP scripts leave ambiguous, so it is worth being explicit.
At its **right edge**, VW252 equals the VWAP of the last 252 anchor-TF bars. That endpoint is the number.
The **tail behind it is not a rolling 252-bar series.** Every point on the drawn curve is the accumulation from the origin that is 252 bars back *today*, so the midpoint of the line is roughly a 126-bar average. The curve does not show what VW252 read on those past dates — on any past date it was anchored 252 bars before *that* date, at a different origin entirely.
The tail is one accumulation path from today's origin. Read historical crossings with that in mind.
### How the VWAP is calculated
Standard volume-weighted mean of the source (default HLC3) from the window's origin bar to its end bar, accumulated over **chart** bars. Origins are located on the anchor timeframe, then resolved to the exact chart bar by binary search.
When volume is missing or zero the engine substitutes 1.0, and tracks the substitution rate **per window**. Two different failures hide under one symptom:
- Missing on nearly every bar (synthetic symbols, some indices) — every bar weighs the same, so the curve is an *unweighted* mean of the source. Usable if you know that is what you are reading.
- Missing on a handful of bars in a real feed — a bar weighing 1.0 against neighbours weighing millions is not averaged in, it is effectively *dropped*. Still a proper volume-weighted mean, over a slightly smaller sample.
Curves whose own window exceeds the warning rate are suffixed with `*` and counted on the dashboard.
### How the POC is calculated
The window's high-low range is divided into bins, and each bar's volume is allocated **in proportion to how much of that bar's range overlaps each bin.**
The obvious shortcut — splitting a bar's volume equally across every bin it touches — is wrong at the edges: a bar with 2% of its range in one bin and 98% in the next would contribute 50/50. Since the POC is an argmax rather than an average, that error does not wash out. It can hand the win to the wrong bin.
Fully covered interior bins are accumulated with a difference array (one increment at the low edge, one decrement at the high edge, resolved in a single prefix sum) rather than a per-bin loop, which keeps the cost at O(bars + bins).
Three deliberate constraints:
**Resolution is capped at one bin per tick.** The bin-count input is a *maximum* resolution, not permission to invent sub-tick precision. If a window's whole range spans forty ticks, a hundred bins would put several bins inside one tick and the argmax would be choosing between prices that cannot trade. The reported level is also snapped to the instrument's tick grid, because an unrounded one-tick bin from 10.00 to 10.01 reports 10.005.
**Bin width is per window.** Each window divides its *own* range, so a P756 bin can be several times wider than a P126 bin. Two POCs landing on the same price are not confirming each other to the same tolerance. Each label's tooltip prints its bin width — read the level as the centre of that band, not as a price.
**POC is suppressed, not flagged, when volume is substituted.** A VWAP with missing volume degrades into an unweighted mean, which is still a usable number. A profile with missing volume becomes a bar-*count* histogram, whose peak answers where price spent the most bars regardless of size traded. That is a different statistic wearing the POC's name, so above a threshold nothing is drawn and the dashboard names the reason.
### Why POC is drawn forward, not backward
By default a POC starts at the last calculated bar and extends right. It is not drawn back across the window it was computed from.
A VWAP tail is a continuous accumulation with a value at every bar. A POC is a single number recomputed every bar with no value anywhere but now. Drawing both back to the same origin would make one line a genuine path and the other a snapshot impersonating one — the same visual gesture carrying two different truth-values, which teaches the wrong reading and creates hindsight support that was never there.
`Window + Forward` is available when you want to see the span, with the understanding that the backward segment is decoration.
Related: a POC **jumps**. It is an argmax, so when a different bin overtakes the leader the level teleports. A POC that sat at 70k yesterday and prints 62k today is not a data error — it is a window with two shelves close in volume. The single line cannot tell you that, which is the honest limitation of showing a POC without its profile.
### The visual grammar
- **Colour = horizon identity**, fixed per rung, never reassigned when other rungs are toggled. 252 is gold whether seven rungs are on or two.
- **Solid, width 2 = VWAP**
- **Dashed, width 1 = POC**, same colour as its VWAP
There is deliberately no horizon-based transparency and no colour-by-price-position. Fading short horizons fought the pairing and restyled everything on every toggle. Colour-by-price-position was redundant with the chart itself — whether a VWAP is above or below price is visible by looking at it — and spending the colour channel on it meant colour was unavailable for identity.
The palette is a cool progression (aqua → light blue → blue → lavender → **gold at 252** → violet → deep purple) so the fan reads as one instrument rather than seven unrelated indicators. Gold breaks the ramp deliberately, because 252 is the horizon most often referenced. Green and red stay out of the palette on purpose: they belong to the candles, and to the dashboard.
The script declares `scale=scale.none` so a distant 756-bar VWAP cannot drag the price axis and compress the candles you are actually trading.
### Seven VWAPs, three POCs
All seven VWAPs ship on. Seven ordered curves read fine, and where they bunch is itself information.
POCs are opt-in per rung, defaulting to **126 / 252 / 756** only — medium-term, annual, multi-year. Seven horizontal levels crowd a chart in a way seven curves do not. P189 and P378 are one click away. Global `Show VWAPs` and `Show POCs` switches let you inspect either family alone.
### The structure dashboard
A 0–100 read on where price sits relative to the fan and whether the fan is ordered.
```
STRUCT 88
P>VW 7/7
STACK +5/6
BIAS STRONG BULL
P>POC 3/3
```
**Price position — 50 points.** How many VWAP endpoints price is above, as a fraction of the drawn rungs, times 50.
**Stack — 50 points.** The adjacent-pair ordering, short over long. Each of the six adjacent pairs scores +1 when the shorter window sits above the longer, −1 when inverted, 0 when they are inside an equality tolerance. Raw range −6 to +6, rescaled to 0–50.
The dashboard shows the **signed raw total** (`+5/6`, `0/6`, `−4/6`) rather than a count of bullish pairs, because that signed number is literally what enters the score. Five bullish plus one tied and five bullish plus one inverted are different fans that a bullish-pair count would render identically.
The tolerance is normalised by the **anchor timeframe's** ATR, not the chart's — otherwise the same daily fan would classify two near-identical VWAPs as tied on a 130m chart and ordered on a 39m one, purely because the chart-TF ATR is smaller.
| Score | Bias |
|---:|---|
| 85–100 | Strong Bull |
| 70–84 | Bull |
| 55–69 | Bull Lean |
| 45–54 | Neutral |
| 31–44 | Bear Lean |
| 16–30 | Bear |
| 0–15 | Strong Bear |
`P>POC` is context only and does **not** enter the score. A volume concentration is a location, not a direction.
### What the score is not
Worth stating plainly, because a 0–100 number invites more confidence than this one has earned.
**The two components are not independent.** Price above every VWAP and a perfectly stacked fan are largely the same market condition seen twice — in a sustained one-way move both max out together, in chop both sit near their middles. Treat 0–100 as one structural reading measured two ways, not as a composite of separate evidence. The extremes are easier to reach than a two-component construction suggests.
**Stack ordering is partly mechanical.** These windows are nested — VW21's bars are a subset of VW63's, which are a subset of VW126's — so in any monotonic trend the ordering *follows* from the trend rather than confirming it independently. Where it earns its keep is at turns, when the short end inverts while price position is still high. That divergence between the two rows is more informative than the combined number.
**It is a step function.** With seven rungs, price position moves in jumps of 7.14 and stack in jumps of 4.17. The reading can cross the entire neutral band between two bars without ever printing a value inside it. Small changes are not drift.
**The score is withheld when horizons are missing.** Unless every enabled rung produced a VWAP and no two rungs share a lookback, STRUCT and BIAS print `—` and a `check` row names the reason. Normalising over whatever horizons happened to exist would let a two-horizon symbol print `STRUCT 100 / STRONG BULL`, indistinguishable at a glance from a seven-horizon reading.
Practical consequence: on a symbol without 756 anchor bars of history, the score stays blank until you turn VW756 off. That is deliberate. Disabling the rungs a symbol cannot support makes the reading an explicit statement about which horizons you are using.
### Confirmed Bars Only
With this off (default), windows extend through the current chart bar and update live.
With it on, **both ends** move to completed bars: lookbacks shift back one anchor bar, and all accumulation — VWAP, POC, the dashboard's reference price, and the stack tolerance's ATR — stops at the last chart bar of the last completed anchor candle. The fan then stops moving intraday entirely, which is what the switch should mean. Labels still sit at the chart's right edge while the values belong to the last completed candle; that gap is the point of the switch.
### Settings worth knowing
- **Anchor Timeframe** — the timeframe every lookback is counted in. Must be at or above the chart timeframe. Every anchor timeframe wants its own ladder; the defaults are a daily one.
- **Profile Bins** — maximum POC resolution, capped at one bin per tick.
- **Stored Chart Bars** — an origin must fall inside stored history or its rung is dropped, not approximated. Default 10,000 because 756 daily bars on a 39m chart is roughly 7,500 chart bars.
- **Dim rungs far from price** — optional, off by default. Fades a rung whose VWAP is beyond a set ATR distance. The whole rung dims together so a pair never splits into one bright line and one faint one. Try `scale.none` alone first.
- **Update Mode** — Live redraws every tick, which is necessary rather than wasteful: Pine destroys drawing objects created on an uncommitted tick, so on the forming bar a redraw every tick is the only way curves stay on screen. On Bar Close draws only on committed executions. Use it, or turn POCs off, if the profile passes trip the calculation time limit.
- **Show Diagnostics Panel** — full accounting of rungs, drawn objects and failure reasons. Off by default; anything genuinely wrong still surfaces on the dashboard's `check` row.
### Known properties
**Chart-timeframe sensitivity.** Origins come from the anchor timeframe, but accumulation uses chart bars, so the same daily setup gives slightly different values on a 39m chart than a 130m one. For the VWAPs this is second order — averaging washes out coarse bucketing. For the POC it is not: an argmax does not average, and a coarse bar spreads its volume uniformly across a range it never traded uniformly through. Expect the POC to shift by a bin or two between chart timeframes, more on symbols with frequent wide-range bars.
**Duplicate lookbacks are counted, never merged.** Two rungs set to the same number draw two identical curves in two colours, which looks like two horizons agreeing and is really one horizon entered twice. The dashboard flags it and withholds the score.
### Why VWAP and POC live in one script
They are computed from the same window definition. Splitting them would mean two indicators independently re-deriving identical origins, and would make it impossible to guarantee that P252 and VW252 cover exactly the same bars — which is the entire point of reading them as a pair. The dashboard reads only the VWAPs; the POC family is excluded from it precisely because it answers a non-directional question.
---
*This is a structural reference tool, not a signal generator. Nothing here produces entries, exits or alerts, and no part of it is a claim about future prices. Published open source so the calculations can be checked rather than taken on trust.*
インジケーター

Market Profile TPO [vault]TPO is a market profile tool that shows where the market actually spent its time, not just where price printed a candle. It builds a time price opportunity profile for every day, week or month and marks the levels that keep mattering after the period closes.
How it works
The script splits each period's range into a configurable number of rows and counts how many bars traded inside every row. That count is the TPO score. The widest row is the Point of Control, the fairest price of the period and the level price keeps rotating back to. Around it the script expands the Value Area using the standard two row algorithm until it holds a chosen percentage of total TPO count, giving you the accepted range and its two edges.
Everything is calculated in a single pass over the period's bars instead of scanning every row separately, so the developing profile updates in real time without dragging the chart down, even on 100 rows and low timeframes.
Green area below, red above, no. This is not a signal tool. Value area high and low are the edges of accepted price, and trades that open outside value and reject back inside tend to rotate to the opposite edge. The POC is a magnet. Untouched POCs from previous periods are stronger magnets.
What it draws
- Full TPO profile per period, D, W or M, with adjustable row size and profile width
- Point of Control line, ties resolved toward the middle of the range so the POC never sticks to an extreme
- Value Area high and low with optional shaded background
- Initial Balance, the range of the first balance window of the session, with optional extension across the whole period
- Single prints, the thin one row areas left by one sided moves, top and bottom tails excluded by design
- Naked POC, previous POCs price never traded back into, extended right until they get hit and then removed automatically
Reading it
Value area edges are where acceptance starts and ends. Initial Balance tells you the shape of the day early: price holding inside IB all session is a rotation day, a break of IB high or low with follow through is the classic trend day tell. Single prints mark unfinished auction, the market moved too fast to trade there and usually comes back. A naked POC sitting above or below current price is an obvious target for the next rotation.
Additional settings
- Profile period: D for day trading, W or M for swing context
- Row size: higher for precision, lower for speed on long periods
- Value Area %: 70 is standard, some traders use 68 or 80
- IB session and timezone: defaults to 0930 to 1030 New York, the RTH open hour for US index futures. Set it to your own instrument's open
- Profiles kept on chart: old profiles are deleted as a whole group, so the script never hits TradingView drawing limits and never leaves half a profile behind
- Min rows per single print: filters out one row noise, 2 or 3 keeps only meaningful gaps
- Show developing profile: toggle the live, still forming profile
- Level labels with prices for POC, VAH and VAL
- Full color, width and line style control for every element
- Built-in alerts for prior POC, VAH and VAL crosses and for IB high and low breaks
- Works on any instrument, requires a chart timeframe lower than the profile period
インジケーター

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

Prev Day/Week/Month/ON VP LevelsBased on Prev Day/Week VP Levels MADE BY ADAM by adam4530. Credit to the original author for the core session-reset and volume-profile calculation approach this script builds on. This script is only tested on Tradingview Premium subscription.
This indicator automatically plots the previous day's, week's, month's, and overnight session's volume profile levels — Point of Control (POC), Value Area High (VAH), and Value Area Low (VAL) — as clean horizontal levels, replicating the look of manually drawn key levels.
What's new vs. the original
Previous Month profile, calculated on its own configurable timeframe (default 5m), kept separate from the Day/Week/ON timeframe so a full month of bars doesn't hit intrabar data limits.
Previous Overnight (ON) profile — a configurable time-of-day session (default 18:00–09:30 New York) rather than a calendar-day session. It rolls over automatically the moment the session ends, replacing the prior ON levels.
Independent styling per period — Day, Week, Month, and ON each get their own line color, width, and style, instead of one shared style for everything.
Extend-to-latest-bar option — lines can stop at the current bar instead of running off the chart indefinitely, for a cleaner look (this is now the default).
How it works
Sessions are defined by a custom reset hour in a chosen timezone rather than midnight exchange time (default 18:00 New York). Weeks run from the Sunday-evening session open through the Friday close; months follow the same reset-hour boundary. The Overnight session instead uses a fixed time-of-day window (default 18:00–09:30) that wraps across midnight, finalizing into "previous ON" levels the moment RTH begins.
All profiles are calculated on a separate, configurable calculation timeframe — 1-minute by default for Day/Week/ON, 5-minute by default for Month — through request.security, independent of the chart timeframe. This means the levels are identical on every chart resolution and remain visible even on a 1-minute chart. Each period's profile distributes bar volume across price rows (default 1000), locates the POC as the highest-volume row, and expands the value area around it until it contains the configured share of total volume (default 70%).
Once a period completes, its levels are drawn and stay fixed until the next rollover — the exact levels a trader would mark by hand at the start of each session.
Features
Previous Day, Week, Month, and Overnight POC/VAH/VAL, each independently toggleable
Custom session reset hour and timezone (DST-safe)
Configurable ON session start/end time
Separate calculation timeframe for Day/Week/ON vs. Month, row count, and value area %
Independent line color, width, and style per period
Choice of extending levels infinitely right or only to the latest bar
Plain text labels with adjustable offset and size
No repainting — only completed periods are plotted
Intended use
Built for intraday traders who anchor execution around prior-session value: value area rotations, POC retests, acceptance/rejection outside prior value, and confluence with order flow, overnight range, or options-derived levels. インジケーター

Delta Profile Multi-Anchor , Footprint Imbalance & Whale Tiers█ OVERVIEW
Delta Profile draws several order-flow DELTA profiles at once — one per higher-timeframe anchor (session / week / month) — each split buy-vs-sell at every price row, so you can see WHERE aggressive delta transacted across horizons simultaneously and how that footprint is migrating. Where a conventional volume profile is volume-native and shows one anchor at a time, this is delta-native and multi-anchor, and it shows a Delta-POC (where net delta peaks) distinct from the Volume-POC (where volume peaks) — their disagreement locates absorption and trapped flow. It asserts no signal and no win-rate; it is an anatomy view.
█ HOW IT WORKS
Intrabars — one lower-timeframe stream (request.security_lower_tf) supplies intrabar OHLCV for every anchor.
Trade side — each intrabar is split buy vs sell by a selectable classifier: BVC-Normal (normal-CDF of the standardized sub-bar return, default), BVC-Student-t (fatter-tailed, opt-in), Tick (sign of close−open), or Geometry (close position in range). All are OHLCV estimates, not the true tape; the classifier in force is shown.
Concurrent anchors — up to four higher-timeframe anchors each accumulate the same confirmed intrabars into a fixed-tick, price-keyed map (buy / sell / largest-print per level), resetting when their own period rolls. Anchor D can instead anchor once from a date you drag on the chart.
Reads per anchor — Volume-POC and Delta-POC (shown distinctly); the 70% Value Area; HVN / LVN nodes; stacked diagonal-imbalance runs (a row's aggressive buys ≥ R× the resting sells one row below, ≥ N rows stacked); absorption rows (strong volume, near-zero net delta at an extreme); and whale tiers (largest single prints, percentile-ranked 75/90/97, dotted at their row).
Naked Delta-POC magnets — each completed session's Delta-POC is kept until price trades through it; the nearest untested one above and below is drawn on price.
Lean meter, migration, CVD — a per-anchor net-delta lean meter; a migration arrow (is the Delta-POC drifting up or down vs the prior period); an optional session-anchored CVD strip rescaled below price; and CVD pivot-divergence markers (price makes a higher high while CVD makes a lower high = bearish, and the mirror = bullish).
Reject calibration (honesty layer) — naked Delta-POCs are generated from a dedicated Session timeframe (independent of the display anchors). After price tags one, the script forward-tests whether price REJECTS (turns back against the approach by calK·ATR) before CONTINUING through, and compares that to the matched unconditional reject-vs-continue base rate: reject% (n, Wilson 95% lower bound) vs base% → edge. Past-only, non-repaint, no verdict.
█ HOW TO USE
Read the anchors together. Agreement is several horizons showing the same delta colour, the same lean direction and Delta-POC drifting the same way; disagreement between the session and the higher anchor is developing rotation. When the Delta-POC and Volume-POC separate on the same profile, aggressors won at a different price than where the crowd traded — often absorption or a trapped move. Stacked-imbalance zones mark diagonal aggression; naked Delta-POC magnets mark untested levels price may be drawn back to; CVD divergence flags price/flow disagreement at swings. The reaction-calibration line tells you, honestly and past-only, whether naked-dPOC tags have actually preceded larger-than-random moves here — and shows nothing when the sample is small. The dashboard defaults to Compact; switch it to Pro for the per-anchor column detail. This is a study for context and location; it emits no entries.
█ INPUTS
01 · Data & Trade-Side — LTF granularity, classifier, BVC sharpness, ticks-per-level, display rows.
02–05 · Anchors A–D — enable, timeframe, label and Mode for each: HTF (resets each period), Composite (never resets, accumulates over loaded history), or From Date (anchors once at the shared drag timestamp).
06 · Profile — width, gap, offset; POC / Value Area toggle and %, fade-outside-VA, HVN/LVN, lean meter, naked magnets.
07 · Imbalance & Absorption — show, diagonal ratio R, rows-to-stack N, absorption threshold.
08 · Whale Tiers — three percentile thresholds.
09 · Migration & CVD — migration arrow; optional CVD strip and height; CVD pivot-divergence and pivot length.
10 · Microstructure Links (optional) — map an external Toxicity / Fragility export to annotate flow quality (never recomputed).
11 · Display — dashboard detail (Compact default / Pro), position.
12 · Exports — running CVD, POCs, VA, naked levels, migration, reaction edge to the Data Window.
13 · Calibration — reject size (×ATR), horizon, and the Session timeframe that generates naked Delta-POCs (independent of the display anchors).
Style — Auto / Dark / Light theme.
█ HONESTY & LIMITATIONS
Descriptive, not predictive. Profiles summarise where reconstructed aggressive volume transacted on visible history — no execution costs, no backtest, no promise. Trade side is an OHLCV estimate (BVC / tick / geometry), not a Level-2 book; on symbols with no volume it cannot function. The reject calibration is a past-only, first-touch two-barrier (reject-vs-continue) forward test against a matched base rate with a Wilson lower bound; a small sample is discounted automatically and no edge shown means honest, not broken. Non-repaint by construction: intrabars are aggregated only on confirmed bars, profiles are drawn from confirmed history, divergences fire on confirmed pivots, calibration events resolve only after the horizon, and the render recomputes once per confirmed bar. For runtime the script processes the most recent ~5000 bars, and turning off Calibration removes its overhead; very high anchors on a fine lower timeframe (or Composite mode over long history) can still be heavy — raise ticks-per-level, coarsen the LTF granularity, or disable an anchor. It prints no verdict and no win-rate.
█ ORIGINALITY
One coherent object — the aggressive-delta auction viewed across several horizons at once. It is deliberately distinct from a conventional volume profile (this is delta-native and draws multiple anchors concurrently), from a per-bar footprint engine (this is a persistent multi-horizon anatomy that asserts no verdict), and it introduces two reads a plain profile does not: the Delta-POC vs Volume-POC split, and whale-print tiering on the profile. It can optionally consume external toxicity / fragility exports rather than recomputing microstructure, keeping it a single focused tool. Every block was written from scratch; the components feed one view (where did aggressive delta transact, across horizons) rather than being independent indicators stapled together.
█ CREDITS
Market / auction profile (POC / Value Area) — Steidlmayer / Market Profile.
Bulk Volume Classification — Easley, López de Prado & O'Hara.
Trade-side tick rule — Lee & Ready (1991).
Footprint stacked (diagonal) imbalance — order-flow / footprint practice.
Cumulative Volume Delta — order-flow literature.
Wilson score interval — Wilson (1927).
Code written from scratch; no external script reused.
This script is for analysis and education. It is not financial advice. インジケーター

Precision Volume Profile [AxeAlgo]OVERVIEW
Precision Volume Profile is a native Pine Script volume
profile tool: it rebuilds a full price-by-volume histogram for whatever
range you anchor it to — the visible chart, a fixed bar count, the
current day, week, month, or a custom trading session — and derives the
Point of Control (POC), Value Area High/Low (VAH/VAL), a Prior Period
Value Area with open-type and POC-migration classification, and a
session VWAP with standard-deviation bands, all from the same underlying
bar history.
This is the classic Market Profile / Volume Profile toolkit used to
judge where the market has actually traded the most volume — not just
where price is right now — and how today's activity compares to the
period before it. Everything here runs natively on your own chart data;
there are no external requests, no repainting of confirmed history, and
no hidden calculations.
This script is free and open-source, published so the full methodology
described below is verifiable directly in the source code.
============================================================
HOW IT WORKS
============================================================
Volume Profile Histogram
----------------------------
For the selected range, price is divided into rows (automatically sized
to the range, or set manually) and every historical bar's volume is
distributed across the rows its high-low span touches. Each bar's
volume is split into an estimated buy side and sell side based on where
that bar's close sits between its low and high — a bar that closed near
its high is treated as more buy-weighted, one that closed near its low
as more sell-weighted. The row with the most total volume becomes the
POC; rows are colored on a gradient between two configurable colors
based on that estimated buy/sell split, with opacity scaled to each
row's relative strength versus the POC.
Value Area
----------------------------
The Value Area is expanded outward from the POC two rows at a time —
comparing the volume of the next pair of rows above versus the next
pair below and adding whichever pair holds more volume — until the
accumulated volume reaches the configured Value Area percentage (70% by
default, the standard Market Profile convention). This is the same
textbook two-row-pair expansion method used for both the live profile
and the Prior Period snapshot below, so the two stay directly
comparable.
Anchor Modes
----------------------------
Six ways to define what range the profile is built from: Visible Range
(whatever's currently on screen), Fixed Bars (a set lookback), Day,
Week, Month, or a fully custom Session (configurable start/end time and
timezone, e.g. 0930-1600 for US regular trading hours). A dotted
vertical line marks exactly where the current profile's lookback
begins whenever that boundary isn't simply the edge of your screen.
Prior Period Value Area, Open Type & POC Migration
----------------------------------------------------
At each period boundary (Day or Week, configurable), the script
snapshots the period that just closed: its Value Area is drawn as a
dashed box extending forward, today's open is classified as Above,
Below, or Inside that prior value, and the new POC is compared against
the previous one to report whether it's migrating up, down, or holding
flat. This is the standard "open-type" read used to gauge whether a
session is likely to be rotational or trending.
Session VWAP & Standard Deviation Bands
------------------------------------------
A running volume-weighted average price with up to two configurable
standard-deviation bands on each side, calculated with the same
volume-weighted variance formula as TradingView's own VWAP tool. It can
reset either at calendar midnight or at your custom session's open
time — the same session window used by the Session anchor mode above,
so the two can be kept in sync.
Stats Panel
----------------------------
An optional on-chart table summarizing the active anchor mode, bar/row
count, POC, VAH/VAL, Value Area width, estimated buy/sell split and
delta, total volume, open type, POC migration, and current VWAP —
everything the script computes, in one place, without needing to
hover over individual lines.
Alerts
----------------------------
Two alert conditions: price crossing the POC, and price entering or
exiting the Value Area.
============================================================
ACCURACY NOTE — HOW BUY/SELL VOLUME IS ESTIMATED
============================================================
Pine Script does not have access to real trade-by-trade tape or
bid/ask data on standard bars, so no volume profile indicator can
measure "true" buy versus sell volume directly. This script — like
essentially every volume profile tool on TradingView — estimates it
from each bar's own OHLC: where the close sits between the low and the
high. This is a widely used, reasonable proxy, but it is an estimate,
not measured order flow. Treat the buy/sell split and Delta reading as
directional context, not a precise execution metric.
============================================================
HOW TO USE IT
============================================================
Add the indicator, pick an Anchor mode that matches how you trade
(Visible Range for manual exploration, Day/Week/Session for a
consistent recurring reference), and set the Value Area percentage if
you want something other than the 70% default. Every input has an
in-editor tooltip explaining exactly what it changes. The Prior Period
panel rows (Open Type, POC Migration) are most useful checked once at
the start of a session; the POC/VAH/VAL lines and histogram are
intended as a persistent reference for the rest of the period.
============================================================
REPAINTING & REAL-TIME BEHAVIOR
============================================================
The profile, its lines, and the stats panel are only (re)computed on
the most recent bar (barstate.islast) — not on every historical bar —
for performance, and are cleared and redrawn from scratch each time
they update. In Visible Range or Fixed Bars mode this means the profile
legitimately changes as you scroll, zoom, or as new bars form — that's
the tool responding to a different input range, not repainting of a
fixed historical value. In Day/Week/Month/Session mode, once a period
has closed its POC, VAH, and VAL are fixed and do not change on
subsequent reloads; only the currently forming period's profile updates
live as new bars print. The Prior Period Value Area snapshot is
computed once, at the moment its period closes, and is never
recalculated afterward.
============================================================
LIMITATIONS — PLEASE READ
============================================================
- Buy/sell volume is an OHLC-based estimate, not real tape data (see
the Accuracy Note above).
- The Value Area expansion is a discrete two-row-pair algorithm; on
very coarse row counts it can land a percentage point or two away
from the exact target rather than hitting it precisely.
- "Max Bars Stored" caps how much history is kept in memory for
performance; extremely long Fixed Bars or Visible Range lookbacks on
very low timeframes can exceed it and get truncated.
- The custom Session anchor and VWAP session-open reset depend on the
Session Time and Timezone inputs actually matching your instrument's
real trading session — mismatched inputs will produce a
technically-correct but practically meaningless boundary.
- This is a discretionary analysis tool intended to support your own
read of the market, not a mechanical, guaranteed-signal system.
============================================================
RISK DISCLAIMER
============================================================
This script is provided for educational and informational purposes
only. It is not financial advice, and it is not a recommendation to buy
or sell any security or instrument. Trading and investing involve
substantial risk of loss and are not suitable for every investor. Past
performance is not indicative of future results. Always do your own
research and consider consulting a licensed financial advisor before
making trading decisions. Use this indicator, and any alerts it
generates, entirely at your own risk.
============================================================
ORIGINALITY
============================================================
This is original work: the row-building and Value Area expansion
algorithms, the Prior Period snapshot and open-type/migration logic,
the session-anchor handling, and the visual design are all written
from scratch for this script. It is published free and open-source so
the full methodology described above is verifiable directly in the
source code.
インジケーター

3D Market Profile [BOSWaves]3D Market Profile - TPO Time Price Distribution with Polyline 3D Extrusion, Value Area Construction, and Initial Balance Mapping
Overview
3D Market Profile is a Time Price Opportunity profile system that constructs a TPO distribution from recent chart history and renders it as a three-dimensional extruded structure using polyline geometry, where row width reflects the number of TPO period prints at each price level, density-based gradient coloring communicates participation concentration, and perspective faces on the top and side edges of each row provide spatial depth that standard two-dimensional profiles cannot convey.
Instead of displaying a flat histogram alongside price, this system aggregates chart bars into complete TPO periods at the configured timeframe, assigns sequential alphabet letters to each period, and accumulates per-row letter counts across the full profile window. The resulting distribution drives a full market profile analytical framework including Point of Control identification, Value Area expansion from the POC outward, and Initial Balance range derivation from the opening TPO periods. All structural levels are rendered as extending reference lines and labeled price readouts that project beyond the profile face.
This creates a market profile visualization that combines the structural depth of conventional TPO analysis with a three-dimensional rendering system that makes profile shape and density immediately readable across varying chart zoom levels. The extruded top and side faces follow the profile contour row by row, the rear glass plane frames the distribution within a perspective bounding box, and the complete wireframe connects front and rear geometry with depth-offset corner lines that reinforce the spatial orientation of the profile structure.
Price is therefore evaluated against a fully formed TPO distribution anchored to recent chart history, with POC, Value Area, and Initial Balance levels providing the standard market profile reference framework in a spatially rich visual presentation.
Conceptual Framework
3D Market Profile is founded on the principle that TPO market profile analysis becomes significantly more visually accessible when the distribution is rendered with three-dimensional spatial depth, allowing traders to read profile shape, density concentration, and structural levels at a glance without the visual ambiguity that flat two-dimensional histogram representations produce at different zoom levels and screen resolutions.
Traditional market profile implementations render uniform flat row boxes where the only visual differentiation between high and low density rows is bar width, which becomes difficult to assess comparatively when profiles contain many rows or are viewed on smaller screens. This framework adds spatial depth through extruded top and side faces that follow the profile contour, creating a volumetric bar chart where density is communicated through both width and three-dimensional geometry simultaneously, and gradient coloring that progresses from the configured low-density to high-density colors adds a third visual dimension that reinforces the density reading.
Three core principles guide the design:
TPO distribution should be constructed from complete timeframe periods rather than individual bars, ensuring each period contributes exactly one letter print to each price row it trades through regardless of how many chart bars compose that period.
The three-dimensional extrusion should follow the profile contour row by row rather than applying a uniform rectangular extrusion, preserving the profile's structural shape in the depth geometry and maintaining the analytical significance of the distribution's outline.
Standard market profile reference levels including POC, Value Area High, Value Area Low, and Initial Balance should be derived from the TPO distribution using conventional methodology and rendered as structural references that extend beyond the profile face for ongoing price interaction monitoring.
This shifts market profile visualization from flat histogram reading into a spatially rich three-dimensional distribution analysis where density, shape, and structural levels are simultaneously communicated through geometry, color, and depth.
Theoretical Foundation
The indicator combines chart bar aggregation into complete TPO periods at the configured timeframe, sequential alphabetical letter assignment per period, per-row letter count accumulation across the full profile window, density-normalized gradient coloring with power transformation, POC identification through maximum count with proximity tiebreaking, outward value area expansion from POC with alternating upper and lower priority, Initial Balance derivation from the opening period count, and polyline-based 3D geometry construction using depth-offset coordinates for top faces, side end caps, and rear glass plane.
Period aggregation groups chart bars by their TPO clock value, merging consecutive bars sharing the same period timestamp into a single period high-low range. Each completed period receives the next sequential alphabet letter from A through Z then a through z, repeating modularly for profiles with more periods than the alphabet. Row assignment maps each period's full high-low range to the corresponding row bins, contributing one print to every row from the period low bin to the period high bin inclusive. The POC selection resolves ties between equal-count rows by choosing the one closest to the mid-range price. Value area expansion adds rows alternately from the high and low sides of the POC based on which adjacent row has the greater count, continuing until the accumulated count reaches the target percentage of total prints.
Four internal systems operate in tandem:
Period Aggregation Engine : Groups chart bars by TPO clock timestamp into complete periods, accumulating per-period high-low ranges and assigning sequential letter identifiers that are used for both letter rendering and Initial Balance period counting.
TPO Distribution Builder : Accumulates per-row letter strings and print counts from the period high-low ranges, producing the row width and text data that drives all subsequent profile rendering and level calculations.
3D Geometry Engine : Constructs polyline polygon arrays for the extruded top faces following each row's width contour, side end cap faces at the outer edge of each row, and the rear glass plane bounding box, using configurable depth bar and depth row offsets to establish perspective coordinates.
Level and Label System : Derives POC, VAH, VAL, and IB level prices from the distribution, renders dual glow and core lines extending across the profile and beyond with configurable tail length, and places price readout labels at the right edge of the level lines.
This design ensures the 3D geometry follows the actual distribution contour while all standard market profile reference levels are derived from the same underlying TPO count data that drives the visual rendering.
How It Works
3D Market Profile evaluates price through a sequence of aggregation and profile-building processes:
Profile Range Calculation : The highest high and lowest low across the configured bar count establish the full profile range, which is divided into the configured number of rows to produce the uniform row height used for all price-to-row mapping.
TPO Period Aggregation : Chart bars are grouped by their TPO timeframe clock value. Consecutive bars sharing the same period timestamp are merged into a single period with the accumulated high and low. Each completed period boundary triggers storage of the completed period data.
Letter Assignment and Row Filling : Each period is assigned the next sequential alphabet letter. For each period, the low and high row bins are calculated and the period letter is appended to the row text string for every row from low to high inclusive, with the row print count incremented accordingly.
Initial Balance Derivation : The first N periods as configured by the IB Periods setting contribute their highs and lows to the Initial Balance range, producing the IBH and IBL reference levels that mark the range established during the opening portion of the profile window.
POC Identification : The row with the maximum print count is identified as the POC. When multiple rows share the maximum count the row closest to the profile mid-range price is selected, providing a consistent tie-breaking rule that favors centrally located levels.
Value Area Construction : Starting from the POC row, adjacent rows are added one at a time by selecting the higher-count neighbor on each iteration until the accumulated count reaches the VA percentage target of total prints.
Profile Geometry Calculation : The profile start position is determined by the placement setting, with Right of Price positioning the profile in forward chart space at the configured right offset and On Range anchoring it to the beginning of the analyzed window. Row widths are calculated as print count multiplied by cell width.
3D Top Face Construction : For each occupied row, a quadrilateral polyline polygon is constructed connecting the row's front top-left, front top-right, depth-offset rear top-right, and depth-offset rear top-left coordinates, producing the extruded top surface that follows the profile contour.
3D Side Cap Construction : For each occupied row, a quadrilateral polyline polygon connects the front right edge top, front right edge bottom, depth-offset rear right bottom, and depth-offset rear right top, producing the side end cap that closes the extruded row geometry.
Front Profile Rendering : Box objects are created for each occupied row with density-gradient fill coloring, POC and single print override coloring, and border styling that distinguishes the POC row, single print rows, Value Area rows, and standard rows.
TPO Letter Rendering : Individual label objects are placed at the center x and mid-price y position of each letter's cell within the profile, with color distinguishing POC, single print, and standard rows.
Level and Label Rendering : POC lines are rendered as dual glow and core polylines. VAH and VAL render as dotted lines. IBH and IBL render as dashed lines. All extend from the configured tail length left of the profile to the right edge of the depth geometry. Price labels are placed at the right extent of each line.
Together, these elements form a complete three-dimensional market profile rendering where the TPO distribution drives both the analytical reference framework and the spatial geometry of the extruded visualization.
Interpretation
3D Market Profile should be interpreted as a conventional TPO market profile with three-dimensional spatial depth encoding applied to the distribution geometry:
Profile Width : The horizontal extent of each row reflects its total TPO print count relative to the maximum, with wider rows indicating more time spent at that price level and narrower rows indicating less acceptance.
Density Gradient Coloring : Row fill progresses from the configured low-density color at minimum print count to the high-density color at maximum print count, with a power-transformed gradient that spreads color differentiation across the density range.
Point of Control Row (POC) : The widest row rendered in the POC color identifies the price level with the greatest time-at-price concentration across the profile window, representing the most accepted price during the analyzed period.
Value Area : Rows between VAH and VAL rendered with full opacity represent the price range containing the configured percentage of total TPO prints, identifying the zone of concentrated acceptance around the POC.
Non-Value Area Rows : Rows outside the Value Area are rendered with additional transparency and darkened coloring, visually receding from the Value Area rows to communicate their reduced relative acceptance.
Single Print Rows : Rows with exactly one TPO period print are highlighted in the high-density color with a distinct border, marking price levels visited by only one period that price may return to complete the auction.
TPO Letters : Sequential alphabet letters within each row identify which periods traded through that price level, with the letter sequence providing a chronological audit trail of price movement across the profile window.
3D Top Faces : Extruded top surfaces following the profile contour row by row provide depth cues that make the profile shape readable as a three-dimensional structure, with the contour step pattern revealing the distribution's outline in spatial form.
3D Side Caps : End cap faces at the outer edge of each row close the extruded geometry and reinforce the row width differences through the depth dimension, with darker coloring distinguishing the side geometry from the front profile.
3D Frame : The rear glass plane and wireframe perspective box orient the profile within three-dimensional chart space, connecting front and rear geometry with corner depth lines that establish the spatial extent of the distribution structure.
POC Level : Dual glow and core lines extending from the profile mark the POC price for ongoing reference, with the glow providing visual prominence that makes the POC immediately identifiable against background price action.
VAH and VAL Lines : Dotted lines at the Value Area boundaries mark the upper and lower edges of the high-acceptance zone for ongoing price interaction monitoring.
IBH and IBL Lines : Dashed lines at the Initial Balance high and low mark the range established during the opening TPO periods, providing the conventional IB reference framework for range extension and balance monitoring.
Profile shape, POC location, Value Area extent, single print density, and IB range collectively provide more structural context than any element in isolation.
Signal Logic & Visual Cues
3D Market Profile does not generate discrete entry or exit signals but provides continuous structural reference through the standard market profile analytical framework:
POC Magnetic Reference : The POC level identifies the price where the greatest time-based acceptance occurred within the window, frequently acting as a mean reversion magnet when price extends to the Value Area boundaries.
Value Area Boundary Interaction : Price moving outside the Value Area enters statistically less accepted price territory, providing context for potential reversion trades back toward the Value Area or range extension trades when acceptance establishes beyond the boundary.
Initial Balance range interactions provide the conventional IB framework where price accepting above IBH or below IBL signals potential range extension, while price remaining within the IB range suggests balanced auction conditions.
Strategy Integration
3D Market Profile fits within conventional market profile and auction theory-based analytical approaches:
POC Reversion Framework : Use the POC line as a dynamic mean reversion reference when price has extended to or beyond the Value Area boundaries, with the POC representing the price where the distribution's greatest acceptance occurred and where reversion activity frequently concentrates.
Value Area Boundary Trading : Monitor price behavior at VAH and VAL for acceptance or rejection signals. Price accepting above VAH or below VAL by closing multiple bars beyond the boundary suggests genuine range extension. Price rejecting at the boundaries and returning inside the Value Area suggests reversion continuation.
Initial Balance Range Extension : Use IBH and IBL as directional range extension references. Price establishing acceptance above IBH with sustained closes indicates potential bullish range extension. Price accepting below IBL indicates potential bearish extension.
Single Print Targeting : Treat single print rows as potential return targets for incomplete auction areas, monitoring for price to revisit and fill these levels with additional TPO participation in subsequent sessions.
Profile Placement Selection : Use Right of Price placement to keep the profile in forward chart space as a live reference for current and upcoming price interaction. Use On Range placement to anchor the profile to the historical window for post-session analysis and retrospective structural assessment.
Timeframe and Length Calibration : Match the TPO timeframe to the trading session type being analyzed. Thirty-minute TPOs with standard length produce a conventional daily profile. Shorter timeframes produce intraday micro-profiles. Longer timeframes produce multi-day macro profiles that reveal larger structural distribution patterns.
Technical Implementation Details
Period Aggregation : TPO clock-based grouping of chart bars into complete periods with high-low range accumulation and sequential letter assignment
Distribution Builder : Per-row letter string accumulation and print count tracking across the full period set
POC Selection : Maximum count identification with mid-range proximity tiebreaking for consistent level placement
Value Area Engine : Outward expansion from POC with alternating upper and lower priority based on adjacent row count comparison
3D Geometry : Polyline quadrilateral construction for top faces and side caps using depth bar and depth row offset coordinates
Front Profile : Box objects with density gradient fill, POC override, single print override, and Value Area transparency differentiation
Level System : Dual glow and core POC lines, dotted VA lines, dashed IB lines, and price readout labels at configurable tail length
Performance Profile : Full object cleanup and rebuild on last bar with label count cap enforcement and configurable profile length maximum
Optimal Application Parameters
Timeframe Guidance:
1 - 5 min : Intraday micro-profile analysis with shorter length and faster TPO timeframe for session-level distribution tracking within a single trading day
15 - 60 min : Session profile construction with standard thirty-minute TPO timeframe and balanced row count for conventional daily market profile analysis
4H - Daily : Multi-session macro-profile analysis with longer length and higher TPO timeframe for structural distribution patterns spanning multiple sessions
Suggested Baseline Configuration:
Length : 180
Rows : 24
Value Area % : 70
Placement : Right of Price
TPO Timeframe : 30
Show TPO Letters : Enabled
Initial Balance Periods : 2
3D Depth (Bars) : 6
3D Height (Rows) : 0.42
Show 3D Frame : Enabled
Show POC / VA : Enabled
Show Initial Balance : Enabled
Show Level Labels : Enabled
These suggested parameters should be used as a baseline; their effectiveness depends on the instrument's session structure, typical daily range, and preferred profile granularity, so fine-tuning is expected for optimal performance.
Parameter Calibration Notes
Use the following adjustments to refine behavior without altering the core logic:
Too few or too many rows : Adjust Rows to increase or decrease vertical price resolution, calibrating row height to the instrument's typical daily range so rows represent meaningful price increments rather than noise-level or excessively large bands.
Letters too cramped or too sparse : Adjust TPO Cell Width to control the horizontal space allocated to each letter, increasing for wider, more readable letter display or decreasing to fit more prints within the same profile width.
Profile too narrow or too wide : The profile width scales automatically with the maximum row print count multiplied by cell width. Adjust Length to include more or fewer bars in the profile window, and adjust Cell Width to scale the resulting profile width.
3D extrusion too deep or shallow : Adjust 3D Depth (Bars) to control horizontal perspective extent and 3D Height (Rows) to control vertical depth, calibrating the spatial effect to the chart's aspect ratio and current zoom level.
Profile overlapping price action : Use Right of Price placement with a larger Right Offset value to push the profile further from current price, or switch to On Range placement to anchor it to the beginning of the analyzed window instead.
Initial Balance range too narrow or wide : Adjust Initial Balance Periods to include more or fewer opening TPO periods in the IB calculation. Two periods represents the conventional first trading hour using thirty-minute TPOs; increase for a wider opening range definition.
TPO timeframe mismatch : Match the TPO Timeframe to the session type being analyzed. Using a thirty-minute timeframe on a daily chart produces very few periods and minimal distribution differentiation; use a timeframe appropriate to the chart timeframe and session length.
Adjustments should be incremental and evaluated across multiple session types rather than isolated market conditions.
Performance Characteristics
High Effectiveness:
Session-structured markets where a defined trading window produces a clear distribution with identifiable POC and Value Area that serve as reliable structural references across subsequent sessions
Instruments with consistent daily range where row height calibrates to meaningful price increments and the distribution produces a recognizable bell-curve or skewed profile shape
Market profile-based trading approaches where POC, Value Area, and Initial Balance provide the primary structural reference framework for directional bias and level interaction analysis
Three-dimensional visualization workflows where the extruded profile geometry provides immediate spatial readability that improves structural assessment speed relative to flat two-dimensional profiles
Reduced Effectiveness:
Markets with highly variable daily ranges where a fixed row count produces inconsistent row heights across different sessions, reducing the comparability of distribution shapes between profile windows
Instruments without clear session structure where the TPO period aggregation produces few complete periods within the profile length, resulting in sparse distributions with limited analytical differentiation
Very short profile lengths where insufficient bars produce too few TPO periods to create a statistically meaningful distribution with identifiable POC and Value Area levels
Extremely compressed consolidation environments where price trades within a narrow range and all rows receive similar print counts, producing a flat distribution without the structural differentiation that makes POC and Value Area meaningful
Markets with frequent large gaps where the profile range is dominated by gap space rather than traded price, producing distributions with many empty rows that reduce the analytical value of the concentration levels
Integration Guidelines
Confluence : Combine with BOSWaves structural tools, order flow analysis, or momentum indicators to validate POC and Value Area interactions with broader analytical context before acting on market profile reference levels
POC Migration Tracking : Monitor whether successive profile POC levels are migrating higher, lower, or remaining stable as a secondary directional bias indicator. Consistently rising POC levels across multiple sessions suggest sustained upward value migration.
Value Area Overlap Assessment : Compare Value Area ranges across successive profiles to assess whether price is finding acceptance in overlapping value zones, indicating market balance, or developing non-overlapping value areas, indicating directional value migration.
Single Print Completion Monitoring : Track single print rows as potential return targets in subsequent sessions. The market profile principle that incomplete auctions tend to be revisited makes single prints valuable anticipatory reference levels for future price behavior.
IB Range Context : Use the Initial Balance range as a daily bias anchor. Strong directional moves that establish acceptance well outside the IB range early in the session carry greater continuation probability than marginal IB extensions that quickly revert inside.
Disclaimer
3D Market Profile is a professional-grade TPO market profile visualization and auction theory analysis tool. It uses timeframe-based period aggregation with standard market profile methodology but does not predict future price movements. Results depend on market conditions, instrument session structure, parameter selection, and disciplined execution. BOSWaves recommends deploying this indicator within a broader analytical framework that incorporates order flow context, structural analysis, and comprehensive risk management. インジケーター

Volume FootprintVolume Footprint
First and foremost, a special thanks to @bassnavy for the direct request and inspiration to build this tool. I truly appreciate your comment!
Disclaimer: This is essentially a simplified script inspired by premium footprint tools (lol). I pay my utmost respect to TradingView and its amazing community!
This indicator is an "Advanced Precision Footprint Visualizer" built strictly on Pine Script v6. Standard footprint charts often struggle with TradingView's rendering limits (max 500 boxes). To overcome this, I engineered a dynamic tick-grouping algorithm that visualizes exact Bid/Ask deltas, volume densities, and Point of Control (POC) with extreme precision, without breaking the platform's constraints.
This tool is designed for highly disciplined traders who rely on verified entry setups. It filters out market noise and visually isolates true liquidity nodes.
Core Mechanics & Calculation Logic:
Tick Grouping (Step Calculation): step = syminfo.mintick * active_ticks
Why: Processing every single minimum tick would instantly exceed the 500-box drawing limit. By grouping ticks based on ATR (Auto Tiers) or a manual input, we compress the data while maintaining visual fidelity.
Output Example: If syminfo.mintick is 0.01 and active_ticks is set to 1, the step size becomes 0.01. If the bar's high is 16.59 and low is 16.26, the engine calculates exactly 34 rows for rendering.
Row Delta Determination: row_delta = Ask Volume - Bid Volume
Why: To accurately gauge whether buyers or sellers absorbed the liquidity at a specific price tier.
Output Example: If Ask volume is 2.5K and Bid volume is 1.0K at a specific row, the row_delta is +1.5K. The text dynamically changes to the "Plus Delta" color (Green).
3-Step Volume Gradient: half_max = max_r_v * 0.5
Why: To create a seamless 3-step color gradient (Low -> Mid -> High). By calculating the 50% threshold of the maximum volume (POC) inside the bar, it intuitively separates high-interest zones from market noise.
Premium Plan TF Downgrade Logic: actual_ltf = (not is_premium and is_sec_tf) ? "1" : ltf_res_input
Why: TradingView restricts seconds-based timeframes (like 1S or 15S) to Premium users and above. Requesting this data on lower plans causes script crashes. This logic automatically downgrades the timeframe to 1 (1-minute) if the Premium toggle is disabled, ensuring stability for all users.
Output Example: If the user inputs 15S and the Premium toggle is false, is_sec_tf evaluates to true. The condition not is_premium is met, so actual_ltf outputs "1" (1-minute). If the toggle is true, it outputs "15S".
Warning: This script operates at the absolute edge of TradingView's rendering capabilities. If you encounter rendering errors, please reduce the "Lookback Bars" or increase the "Lower Timeframe (LTF)" resolution.
インジケーター

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

Liquidity Trend Heatmap [BigBeluga]🔵 OVERVIEW
The Liquidity Trend Heatmap is a professional-grade volume analysis tool that maps market liquidity directly onto your price chart. By combining a trend-following baseline with a high-resolution volume-at-price heatmap, it helps traders instantly visualize where the market's "heavy" trading zones are located relative to the current trend.
🔵 FEATURES
The indicator utilizes a sophisticated volume-distribution engine to provide actionable market intelligence:
1 — Dynamic Liquidity Heatmap
Multi-Node Distribution: The indicator divides the recent price range into a 26-level grid, calculating the cumulative volume traded at each level over your defined Lookback Period .
Visual Heatmap Nodes: Liquidity is displayed as shapes (Squares, Circles, etc.) that shift color and intensity based on the volume processed at that price.
Normalized Intensity: Nodes appear more vivid based on their volume relative to the Point of Control (POC), ensuring you only focus on the most significant liquidity zones.
2 — Institutional Point of Control (POC) Tracker
Automated POC Detection: The system identifies the specific price level with the highest volume accumulation, marking it as the market’s primary liquidity magnet.
Real-Time Metrics: A dedicated POC label on the far right of your chart provides the exact price and volume traded at the POC, keeping your focus on the most critical level.
3 — Trend-Following Dashboard
Trend Baseline: Includes a customizable moving average ( Trend Length ) that acts as a structural midline. This midline automatically updates color to indicate whether the current environment is Bullish or Bearish.
Information Dashboard: A clean, configurable table at the top-right provides instant updates on the current trend status, POC price, and total POC volume without cluttering your workspace.
🔵 HOW TO USE
This tool is designed to identify "smart money" zones and potential mean-reversion levels:
Identify Liquidity Magnets: Use the POC level as a primary target or support/resistance level. High-volume nodes often act as magnets for price action.
Confirm Trend: Use the Trend Line and dashboard status to ensure your liquidity-based trades are aligned with the prevailing market trend.
Filter Weak Levels: Adjust the Heatmap Threshold % to hide low-volume levels. This cleans up your chart and leaves only the most relevant, high-conviction liquidity zones visible.
🔵 NOTES
Why this implementation is unique:
It combines complex volume-profile math with a lightweight, user-friendly visual interface, making it suitable for both scalpers and swing traders.
The "future-extending" heatmap nodes visualize expected liquidity distribution into the immediate future, helping you anticipate price behavior before it happens.
The system is highly customizable, allowing you to toggle the trend line, adjust shape types, and change heatmap thresholds to suit your specific trading style.
インジケーター

Trade Wzrd - Tide [Rampage Series]✨ TRADE WZRD - TIDE ✨
Every price level has an owner. Not a metaphor - a measurement.
Tide splits the range's volume row by row into buy mass and sell mass , finds the levels one side owns outright, and draws them as living lines on the chart - with a graveyard of the levels that came before.
⚡ THE RAMPAGE SERIES ⚡
Tide is a release in the Rampage Series - a growing family of volume-and-levels tools built by Trade Wzrd. Every Rampage script ships with the same built-in automation layer: signals don't just paint, they speak. One alert, one webhook, and every entry, exit and fill fires a plain-text order string.
⚡ THE OWNERSHIP ZONES (THE HERO) ✨
Every bar's volume is divided by who won the close - bars that closed high are buyers' mass, bars that closed low are sellers' mass - then spread across the price rows it touched. When one side owns 65%+ of everything traded at a row (your threshold), that row is a SHELF. Tide paints the two that matter right now as ownership ZONES : the highest buyer shelf below price as a soft cyan field, the lowest seller shelf above it in red - the exact band one side owns, a glow bed under a bright edge, and the ownership printed right inside the zone: "78% OWNED BY BUYERS" . A tag at the right edge carries the price and the percentage; hover it for who owns it, since when, and exactly where it dies. A zone stays alive until price closes clean through it - then it dies where it fell, no ghost, because a failed level is just a line.
⚡ THE FOSSILS (THE HISTORY) ✨
When a shelf is replaced - not broken, just handed off to the next level - it fades into a fossil: a dotted ghost in its owner's color, frozen at the bar it was born. Fossils stay on the chart until the market mitigates them: price trades through a ghost and it's erased. What's left is the archaeology of the setup - every level that used to matter, still standing where it stood, until the market itself takes it down. Cap the graveyard or turn it off in the Fossils group.
⚡ THE POOLS (THE LIQUIDITY) ✨
Equal highs and equal lows are not coincidences - they're where the stops rest. Tide clusters swings within a tolerance you set into liquidity POOLS, and draws them as gold levels: the exact price, the touch count that built them (×3 = three equal highs worth of stops), dashed while the liquidity rests. Then the raid comes: a wick through the pool that closes back = the sweep. The chart stamps it in gold, the pool marks itself TAKEN in dots, and it dies honestly when price consumes it or time forgets it. And here's the fusion: a fresh sweep near a shelf fuels the defense - conviction rises, and the chip's hover tells you exactly why: "the sell stops are already taken." The dashboard's POOLS row names the nearest pool each side with its touches and distance in ATR.
⚡ THE CROWN & THE CENTER ✨
The dashed white line is the Point of Control - the row where the most mass traded in the range, price tagged at its end. The optional volume-center line is the 50/50 magnet every defense aims for. The full ownership numbers - undertow, POC, shelf count, balance - live on the dashboard, one glance away.
⚡ THE DEFENSE (THE SIGNAL) ✨
Price returns to a shelf and the owners defend it: a dip into a buyer shelf that closes back above = BUY · DEF. A poke into a seller shelf that closes back below = SELL · DEF. One defense per shelf per touch - a fired shelf releases only when price escapes it cleanly, so fresh touches can defend again but wick-spam cannot. Stops frame the shelf's far edge: if price trades through the shelf, the defense failed, honestly. Targets default to the VOLUME CENTER - the 50/50 magnet of the range's mass - capped at 3R with an R-multiple fallback.
⚡ THE UNDERTOW ✨
Beneath the rows, one number: the range's net delta. BULL +18% means the mass leans long; BEAR -12% means it leans short; BALANCED means the tide is slack. It's the dashboard's top row because it's the context every defense swims in.
⚡ CONVICTION & THE DATABASE ✨
Every defense carries one compact number - CONVICTION. Underneath: this chart's own live database, defenses bucketed by the shelf's dominance (owned / dominated / ruled) . That tier win rate is the base - then the score bends with the scenario: how owned the shelf is, balance alignment (defending from the side of value), kinetic fuel, absorption. Fused into one grade from 5 to 95. Hover any chip: the shelf's exact price band, who owns it and by how much, the tier's win rate and sample depth, balance, undertow, fuel. Nothing hidden.
⚡ THE SCHEDULE ✨
Every closed trade is filed by session - Asia, London, New York, off hours - and the dashboard learns which hours the defenses hold on this chart, with this logic. When the schedule has enough receipts, BEST SESSION names the shift.
⚡ BUILT-IN AUTOMATION ⚡
One alert ("Any alert() function call") + your webhook URL, and Tide speaks Trade Wzrd order strings:
⚡ Entries with SL/TP prices attached
⚡ Optional opposite-signal close prepended to new entries
⚡ TP/SL-hit close alerts that mirror the on-chart trade box
The same readable comma syntax drives automation across 7+ platforms - percent-risk or fixed-volume sizing, magic numbers, order comments. No lock-in: plain text, any endpoint.
✨ HOW TO READ IT ✨
⚡ Cyan zone below price = the band buyers own, defending longs - ownership % printed inside, price + % on the edge tag
⚡ Red zone above price = the band sellers own, defending shorts - same receipts
⚡ A zone that vanishes without a ghost = it broke: price closed clean through it. Failed levels leave no fossils
⚡ Dotted colored ghosts = fossils: shelves that handed the job off, standing until the market mitigates them
⚡ Gold dashed levels = liquidity pools: equal highs/lows where stops rest - tag shows price × touches
⚡ Gold POOL ×3 stamps = the raid: stops swept and rejected; the pool goes dotted TAKEN until it dies
⚡ A defense firing right after a sweep = the strongest setup Tide knows - conviction gets the fuel, hover says why
⚡ Dashed white line = the Point of Control, price tagged - where the most mass traded in the range
⚡ BUY · DEF 68 / SELL · DEF 71 chips = a shelf defended itself - the number is conviction
⚡ Gold diamonds = absorption: climax volume, no progress - someone ate the book right there
⚡ Dashboard: undertow, POC, shelf count, who's defending, database, best session, record, fuel
⚡ HOW TO USE ⚡
⚡ Drop it on any liquid symbol with volume, 15m to 4H - ownership maps everywhere
⚡ Let it run. The database and the session schedule start empty - they grow teeth from this chart's own history
⚡ Watch the tiers: if ruled shelves (90%+ ownership) earn more than owned ones, raise Shelf Dominance and let the weak ones go
⚡ Set Min Win Probability once the tiers have samples - cold tiers filter themselves out
⚡ Turn on Balance Alignment to defend only from the side of value
⚡ Wire one alert when you're ready to automate
✨ LIMITATIONS ✨
⚡ Buy/sell mass is estimated from where each bar closed inside its range - a proven approximation, not exchange order-flow. On symbols without volume, the profile, undertow and conviction stand down
⚡ Conviction starts from this chart's own history , tiered - a sample, not a promise. Small samples lie confidently; the hover tells you when a tier is young
⚡ The database resets when you change symbols, timeframes, or core settings - every context earns its own track record
⚡ Shelves defend best in rotation; in runaway breakouts price doesn't come back to defend anything - that's what the trade box's stop is for
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.
Educational shell. Not financial advice. Not a signal service.
インジケーター

Trade Wzrd - Null Range [Rampage Series]✨ TRADE WZRD - NULL RANGE
Every range has two middles. The one price draws - the midpoint - and the one VOLUME draws: the exact price where everything traded inside the range nets to nothing. Half the participation above, half below. The balance point where the tug-of-war reads null .
Null Range plots that line, builds a channel out of volume's own deviation, and fades the pokes that venture beyond it - out where participation thins to nothing. Not a promise - a receipt.
⚡ THE RAMPAGE SERIES ⚡
Null Range is a release in the Rampage Series - a growing family of volume-and-levels tools built by Trade Wzrd. Every Rampage script ships with the same built-in automation layer: signals don't just paint, they speak. One alert, one webhook, and every entry, exit and fill fires a plain-text order string.
✨ THE NULL RANGE ✨
The dealing range's volume is distributed across a hundred invisible bins, and the 50/50 split becomes a single glowing line. Not a midpoint. Not an average. The price where the crowd's money actually nets to zero. And the line itself is the regime read: it runs CYAN when volume's center of mass sits in the cheap half, RED when it sits in the expensive half. Its right-edge tag carries VOL CENTER - the exact percentage. Hover it for the full story.
⚡ THE VOLUME CHANNEL ⚡
The same bins yield volume's standard deviation - so Null Range draws the channel where participation actually lives: two glowing sigma walls around the line with graded fills, and nothing else. ~95% of traded volume lives inside. Price beyond the wall is price out where volume goes null - extended, exhausted, and ripe for the trap.
✨ KINETIC FUEL ✨
Under the structure, a fuel strip burns: volume times speed, candle by candle, normalized against recent history. Bull fuel hangs off the discount wall in cyan, bear fuel off the premium wall in red - spike squares mark the bars that moved real mass, and WALL SLAM diamonds stamp the bars where that mass physically hit a wall. When a trap springs off a slam, the whole crowd pushed - and still failed.
⚡ THE MARGIN PROFILE ⚡
In the right margin, the range's own bins draw themselves quietly - spanning exactly wall to wall, because that's where the volume that matters lives. Every row is tinted by who owned that price: cyan where buyers dominated, red where sellers did. The Point of Control is ringed in gold. Width, offset, delta coloring - all yours. It's the same engine as the line, laid on its side.
✨ FLOW HEAT ✨
No labels. No lines. Just heat. When price sinks while buy pressure quietly rises, the tape washes faint cyan - someone is loading into weakness. When price rises while sell pressure builds, it washes faint red - someone is unloading into strength. The disagreement between pressure and price, painted as weather. The dashboard's FLOW HEAT row names the shift when it's live.
✨ THE FILTERS ✨
Trade only what the database believes in. Min Win Probability skips signals from cold buckets (once they have enough samples to judge - TRACKING signals always pass). Max Extension skips blow-off pokes. Balance Alignment demands volume's center be on your side. Every active filter shows on the dashboard's FILTERS row, so you always know what the engine is allowed to take.
✨ THE TRAP ✨
The signal: price pokes beyond the two-sigma wall - out into the null - and closes back inside within the trap window. The fakeout. Fade it back toward the line - the default target IS the null range itself, because mean-reversion trades deserve mean-reversion targets. Premium traps short from above, discount traps long from below. EQ Reclaim mode (decisive crosses back through the line, 0.2 ATR minimum, no whipsaw) is there for continuation players.
⚡ THE CONVICTION SCORE ⚡
Here is where Null Range stops asking for trust. Every signal carries one compact number - CONVICTION - that no single ingredient could give you. Underneath it sits this chart's own live database: traps bucketed by how deep the extension ran (0–0.25, 0.25–0.5, 0.5–1.0, 1.0+ ATR beyond the wall), reclaims bucketed by whether volume's center was on their side. That historical win rate is the base - then the score bends with the scenario: volume's center on your side or against you, a tidy poke or a blow-off, a spike bar or thin air. History + balance + depth + fuel, fused into one grade from 5 to 95. Early on, before the buckets earn their samples, the score runs on structure alone - and says so.
And the hover is REACTIVE . Point at any signal and the verdict breaks the score into its parts: the conviction line, thin-sample warnings when a bucket is young, hot/cold bucket verdicts, depth-risk notes on blow-off extensions, balance alignment with the crowd's cost basis, and a fuel read on the participation behind the poke. Same model, different situation, different answer.
✨ THE RECEIPTS ✨
Signals stay on the chart as compact conviction chips - ▲ T 72, ▼ R 64 - one glance, one grade. Every closed trade stamps ✓ TP HIT or ✗ SL HIT exactly where it died. The dashboard tracks the VOL CENTER and PRICE POS gauges, the regime word, EQ/POC/channel width, the last signal with its conviction, the FLOW HEAT state, the database total, and a 10-dot streak row. The trade box carries entry, dashed stop, solid target with live R:R - and the conviction rides inside the entry tag.
⚡ YOURS TO SHAPE ⚡
Every visible piece answers to you: walls on or off, the line gradient or solid, EQ and POC tags toggleable, POC width, profile width and offset, delta colors or one solid tone, fuel strip, slam markers, flow heat, channel fills. The defaults are the house look - the knobs are all yours.
⚡ BUILT-IN AUTOMATION ⚡
One alert ("Any alert() function call") + your webhook URL, and Null Range speaks TradeWzrd order strings:
⚡ Entries with SL/TP prices attached
⚡ Optional opposite-signal close prepended to new entries
⚡ TP/SL-hit close alerts that mirror the on-chart trade box
The same readable comma syntax drives automation across 7+ platforms - percent-risk or fixed-volume sizing, magic numbers, order comments. No lock-in: plain text, any endpoint.
✨ HOW TO READ IT ✨
⚡ One glowing line = where the range's volume nets to null. Cyan = volume built low, red = volume built high
⚡ The graded channel = where ~95% of the volume lives. Price outside the wall = out in the null, extended
⚡ Fuel candles below/above the walls = kinetic energy per bar; squares = spike bars; diamonds = wall slams, mass meeting structure
⚡ Faint cyan/red wash behind the tape = flow heat: pressure and price disagreeing
⚡ The quiet profile in the margin, wall to wall = who owns each price: cyan rows buyers, red rows sellers, gold ring POC
⚡ ▲ T / ▼ T chips = the trap just failed - the number is conviction: this chart's track record bent by balance, depth and fuel. Hover for the breakdown
⚡ ▲ R / ▼ R chips = decisive reclaims of the line, same conviction engine
⚡ Dashboard: gauges, regime, FILTERS row, FLOW HEAT row, DATABASE row (trap and reclaim rates separately), streak dots
⚡ HOW TO USE ⚡
⚡ Drop it on any liquid symbol, 5m to 4H - tuned defaults for XAUUSD 15m
⚡ Let it run. The database is empty at first - conviction runs on structure alone until the buckets earn their samples
⚡ Compare buckets: if shallow traps earn 70% and deep ones earn 40%, you know exactly which pokes to take
⚡ Wire one alert when you're ready to automate
✨ LIMITATIONS ✨
⚡ Conviction starts from this chart's own history, bucketed - a sample, not a promise. Small samples lie confidently; the hover tells you when a bucket is young
⚡ The database resets when you change symbols, timeframes, or core settings - every context earns its own track record
⚡ Traps fade extensions - in a runaway trend, the outer wall keeps getting hit and the trap window is the honest filter
⚡ On symbols without volume data, the line falls back to midpoint and sigma to range/4
✨ CREDITS ✨
Kinetic fuel concept inspired by "Kinetic Momentum Vectors" by BigBeluga (CC BY-NC-SA 4.0). Concept only and Null Range's fuel is re-engineered from zero: volume times speed, burning off our own volume-channel walls. No code or geometry shared with the original.
Rift maps WHERE the volume traded. Null Range knows WHERE THE VOLUME NETS TO NOTHING - and what fading the void has been worth.
Educational shell. Not financial advice. Not a signal service. インジケーター

NW Volume Profile - Kernel-Smoothed [Dots3Red]📊 NW VOLUME PROFILE - KERNEL-SMOOTHED
A volume profile answers a different question than a normal chart. Instead of "how much traded today," it asks "how much traded at each price." This version applies Nadaraya-Watson kernel smoothing to that profile before reading any level off it — turning a jagged, noisy histogram into the actual underlying distribution of where volume concentrated.
🎯 WHY THIS MATTERS
A raw volume profile is built from independent price bins — each one only knows its own volume, nothing about its neighbors. That makes it noisy: a single oversized candle can create a spike that looks like an important level but is really just where one bar happened to land. Reading real structure off a raw histogram means squinting past that noise.
This script smooths the profile before drawing anything. Every bin's displayed value becomes a weighted average of its neighborhood — nearby bins count heavily, distant bins barely at all, following a Gaussian curve. The lumps from individual candles melt away, and what's left is the true shape of the distribution that was underneath the noise the whole time. All the levels described below — POC, Value Area, HVN, LVN — are read from that smoothed curve, not the raw one.
🧮 HOW THE SMOOTHING WORKS
Each price bin's raw volume gets replaced by:
smoothed(i) = Σⱼ w(i,j) · raw / Σⱼ w(i,j)
where w(i,j) is a Gaussian weight based on how many bins apart i and j are, controlled by the Bandwidth setting. A small bandwidth stays close to the raw histogram; a large one produces one broad, simplified hump. This is genuine kernel regression applied across the price axis, not a moving average or a visual blur — it's the same mathematical technique used in the smoothed lines several Dots3Red scripts already use for slope/trend estimation, applied here to a distribution instead of a time series.
Toggle "Show Raw Histogram Behind" to see the original jagged bars faintly displayed underneath the smoothed profile — a direct before/after comparison on your own chart.
📏 WHAT EACH LEVEL MEANS
🟡 POC (Point of Control) — the single price with the highest smoothed volume. The market's center of gravity for the current window; price tends to be pulled back toward it.
🔵 Value Area — the price region around the POC containing a configurable share of total volume (default 70%). Price trading inside it is trading at a level the market recently agreed was fair — chop and rotation are common here. Price breaking out of it is the market rejecting that agreement, which is often when moves extend rather than stall.
🟢 HVN (High Volume Node) — a secondary local peak in the smoothed distribution. Acts like a sticky zone; price tends to slow down or pause when revisiting one.
🔴 LVN (Low Volume Node) — a local trough where very little volume ever traded. Acts like a thin spot; price tends to move through it quickly rather than lingering, since few positions were ever opened there.
HVN and LVN are drawn as full-width dotted lines across the chart (not just labels at the profile edge), specifically so they stay visible and trackable even after price has moved well away from where the profile itself was drawn.
🧭 HOW TO USE
👀 Start with where price sits relative to the Value Area. Inside it: expect rotation and two-way trade. Outside it: the move has already broken from recent consensus, which historically has more follow-through than reversion.
🧲 Treat POC as a magnet, not a wall. It is the level most likely to be revisited, not a guaranteed reversal point. How price behaves when it gets there — accepted or rejected — is the actual signal, not the level itself.
🐌 Expect hesitation at HVNs. A move approaching an HVN from your prior window is approaching a zone where the market has previously done a lot of business — some slowing or consolidation there is common.
⚡ Expect speed through LVNs. A thin zone with very little historical volume tends to get crossed quickly rather than acting as support or resistance. If price is moving toward one, a fast move through it before finding real support/resistance at the next node is a reasonable expectation.
🔧 Adjust Bandwidth to match what you're looking for. A tighter bandwidth reveals more granular structure (closer to raw); a wider one collapses the profile into its dominant, unmistakable levels. There's no universally correct setting — it depends on whether you want detail or clarity.
💡 EXAMPLE
Say the profile shows POC at 61,200, a Value Area from 60,400 to 62,100, and an LVN line sitting at 59,800. Price later drops to 60,450 — right at the edge of the Value Area. Two distinct scenarios are now readable from the profile: if price holds and turns back up, the 61,200 POC above is the natural target the market has repeatedly gravitated toward. If instead price breaks below 60,400, the empty LVN at 59,800 offers little historical volume to slow the decline — a fast move through that zone before finding the next real level is the more likely path. Same chart, two different expectations, both read directly off the same profile without any additional indicator.
⚙️ SETTINGS
📊 Profile
• Lookback (bars) — size of the rolling window the profile is built from
• Price Bins — vertical resolution of the profile
• Body Volume Only — distribute volume across the candle body instead of the full high-low range
🧮 Kernel Smoothing
• Bandwidth — width of the Gaussian kernel in bin units; controls detail vs. simplification
📏 Levels
• Value Area % — share of total volume the Value Area is expanded to contain
• Node Detection Leg — how many neighboring bins define a local peak/trough
• LVN Max Ratio of POC — how thin a trough must be, relative to POC, to count as an LVN
🎨 Visualization
• Show Raw Histogram Behind, POC Line, Value Area, HVN/LVN Marks — each independently toggleable
• Profile Width — how far the profile extends horizontally
🖥️ Dashboard
• Show/hide, position — displays current POC, Value Area bounds, node counts, and the active window/bandwidth settings
📝 NOTES
This profile is a rolling window — its levels update as the window slides forward with each new bar, which is expected behavior for a volume profile rather than a repainting signal (nothing appears and then vanishes; the underlying window is simply moving). Thin-volume symbols will produce a ragged profile regardless of smoothing settings — this tool is most informative on liquid instruments with consistent volume.
⚠️ DISCLAIMER
This is an analytical and visualization tool. It does not generate trade signals and does not constitute financial advice. Historical volume concentration at a given level does not guarantee how price will behave there in the future. インジケーター

Navyraid FVANavyraid FVA (Fair Value Area)
Description:
Overview
The Navyraid Fair Value Area (FVA) is a specialized analytical tool built upon the principles of Auction Market Theory (AMT). According to AMT, financial markets exist to facilitate trade, constantly moving between states of balance and imbalance. The market tends to travel from one established Value Area to another.
This indicator maps out these crucial areas by analyzing where the market spends the most time and how frequently specific price levels are visited throughout the trading day. By identifying these zones of high historical acceptance, the indicator projects key levels from previous sessions that act as strong magnets and significant support/resistance zones for current and future market action.
How It Works (Core Logic)
The indicator evaluates price action by breaking down the high-to-low range of each candle into specific discrete price bins (ticks). It then tallies how often the price trades through each bin over a defined period (daily basis).
Value Area Calculation: It accumulates these price interactions to find the area where a specified percentage of trading activity occurred (default is 68%, representing one standard deviation of the mean).
Key Level Extraction: It isolates the single price levels with the highest concentration of activity for both the Mayor and Minor FVA.
Main Features
Mayor FVA: This represents the Point of Control (POC) or the price level with the highest time accumulation strictly within the 68% Value Area. This zone acts as the primary focal point of market balance and a high-probability price magnet.
Minor FVA: This marks the most significant high-time node located strictly outside the established Value Area. These peripheral nodes frequently serve as crucial turning points, rejection zones, or targets when the market breaks out of its primary balance.
Smart Mitigation (Freeze Logic): To keep the chart clean and relevant, FVA zones are projected forward as boxes. By default, once the current price touches or "mitigates" an extended box, the box stops extending (freezes).
Force Extend: A toggle that overrides the mitigation logic, forcing the FVA boxes to continuously project forward regardless of price interaction, useful for long-term level tracking.
Auto Tick Size: The script automatically scales the bin sizes based on the asset's specific price range and minimum tick, making it universally applicable across Forex, Indices, Crypto, and Equities without manual adjustment.
How to Use in Trading
Traders can utilize the Navyraid FVA to understand the broader market context based on AMT.
Targets: If the price is moving directionally, previous Mayor FVAs serve as logical take-profit zones, as the market seeks historical balance.
Reactions: Minor FVAs can be observed for potential pullbacks or continuation setups when the market tests extreme areas outside of the previous day's accepted value.
Disclaimer: This indicator is designed for educational and analytical purposes to visualize Auction Market Theory concepts. It does not constitute financial advice. インジケーター

Liquidity Heatmap 3D - Volume Density POC CVDLIQUIDITY HEATMAP 3D — the order-flow heatmap look, rebuilt for TradingView.
This indicator brings the volume-density heatmap visual to any TradingView chart, with a twist no other heatmap here has: a real 3D relief shader. Instead of flat colour tiles, every cell is lit by a virtual light source (emboss lighting computed in the colour math), and the strongest liquidity walls extrude as 3D blocks with shaded side faces and lit top caps.
━━━ HOW IT WORKS ━━━
TradingView provides no order book and no historical tick data, so this is an honest volume-density heatmap: each bar's volume is distributed across the price zones its range covered. Dense zones are the liquidity walls where the market actually spent volume. The engine normalises against the 85th percentile of the column maxima, so one hot spike never blanks out the rest of the map.
━━━ WHAT IS ON THE CHART ━━━
· Heatmap grid up to 22 x 28 zones, rebuilt live on every bar
· 3D RELIEF SHADER — emboss lighting, specular glints on the wall tops, adjustable strength
· 3D WALL EXTRUSION — the strongest cells pop out as shaded blocks (toggle)
· 7 PALETTES — GOLD 3D (default), TWILIGHT, FIRE & ICE (buy/sell split), OCEAN, INFERNO, EMERALD, MONO
· POC LINE — the highest-volume price of the window, with its volume readout
· WALL DETECTION — the two strongest active liquidity walls, labelled with their strength in percent
· VOLUME PROFILE — profile bars on the right, POC highlighted in gold
· TRADE BUBBLES — volume-spike bubbles sized by their ratio against the average, buy blue / sell magenta
· CVD STRIP — cumulative volume delta (bar proxy) along the bottom, mint and red
· COCKPIT PANEL — engine checklist, POC box and a BUY / SELL flow signal line
· Optional dark chart theme: navy background with mint / red bars
━━━ HOW TO USE IT ━━━
1. Watch the golden walls: price often reacts at dense volume zones — support and resistance built by traded volume rather than by drawn lines.
2. The POC is the fairest price of the window and acts as a mean-reversion magnet in ranges.
3. CVD rising while price holds a wall below it is an absorption long idea; CVD falling at a wall above is a distribution short idea.
4. Bubbles mark the bars where outsized volume hit. Combine them with wall touches for confluence.
━━━ SETTINGS ━━━
Grid size, bars per column, cutoff, gamma, tile transparency, relief strength, wall threshold and bubble threshold are all adjustable. Works on every symbol and timeframe; if a symbol carries no volume the engine falls back to time-at-price density and says so in the panel.
━━━ HONEST LIMITS ━━━
This is not level-2 order book data — TradingView does not provide it. The map shows where volume actually traded, not resting limit orders. The 3D effect is a rendering technique, not extra data.
━━━ NOTE ON LOADING ━━━
Right after adding the indicator, or after changing a setting, give it a few seconds: the engine creates its object pools and runs the first build. A brief flicker during that warm-up is normal and stops once the first refresh is done. After that the persistent engine updates in place with no flicker.
Open source — read it, change it, learn from it. This indicator is a study tool, not financial advice.
WHY THESE PARTS BELONG TOGETHER
The heatmap, the point of control and the cumulative delta strip are three views of one question:
where is volume sitting, which price is defending it, and who is doing the trading. The heatmap
shows the distribution, the point of control marks its centre of gravity, and the delta strip says
whether that distribution is being built by buyers or sellers. Read on their own each of the three
is ambiguous; read together they describe one order-flow picture.
インジケーター

Volume Profile P b D Shapes - Day PlaybookVOLUME PROFILE P b D SHAPES reads the market's body language: every trading day the volume profile prints a LETTER — P, b or D — and that letter tells you who is in control and exactly how to trade the next session. This indicator automates the complete PbD method: it builds every day's volume profile, classifies the shape, draws the levels, prints the playbook on your chart and fires webhook-ready JSON signals.
■ THE THREE LETTERS
P-SHAPE (bullish continuation) — fast impulse UP, then balance ON TOP. The thin tail below is single prints: nobody did business there. Buyers feel like winners, dips are for buying.
b-SHAPE (bearish continuation) — fast impulse DOWN, then balance AT THE BOTTOM. The thin tail above marks the drop. Sellers are in control, rallies are for selling.
D-SHAPE (balance day) — a symmetric bell curve with a fat POC in the middle. Buyers AND sellers are happy, fair price has been found. The next day usually stays range-bound: fade the edges.
■ THE AUTOMATED PLAYBOOK (7 SETUPS)
P behind you:
- PLAN A — CONTINUATION: price dips into yesterday's value area, the dip HOLDS (no low break), a reclaim candle closes back at/above the POC -> BUY. Targets: previous high, then a measured balance move.
- PLAN B — FAILURE = FULL TRAVERSE: 2+ candle CLOSES below the VAL (a wick is NOT enough) plus a volume spike = acceptance below balance. The shape has failed and price tends to walk the WHOLE way back to the impulse origin -> SELL.
b behind you: the exact mirror — sell failed rallies into value (Plan A), or buy the failure traverse when 2+ closes above VAH with volume appear (Plan B).
D behind you + today opens INSIDE the D:
- Range rules. Short the Value Area High rejection, long the Value Area Low rejection, target the POC first and the opposite edge second. The FIRST touch gives the best response — the fade counter limits how often each edge may be traded.
■ WHAT YOU SEE ON THE CHART
- A volume histogram for every completed day, colored by its letter (mint P / red b / gold D), POC row highlighted
- A big P / b / D letter above each day — hover it for the full lesson behind the shape
- Yesterday's VAH / VAL / POC projected into today as live rails with explanatory tooltips
- A bias note at every day open: which letter is behind you, where today opened, and both plans
- Two-line BUY/SELL pills that explain WHY the signal fired (hover for the complete reasoning + Entry/SL/TP1/TP2)
- Entry / SL / TP1 / TP2 lines, TP1 -> break-even management, TP2 runner
■ AUTOMATION / WEBHOOK
Create one alert with condition "Any alert() function call" and paste your webhook URL. Every BUY/SELL/TP1/TP2/SL/BE event sends ready-to-use JSON: id, symbol, action, setup, shape, entry, sl, tp1, tp2, timeframe, time. There is also an optional end-of-day SHAPE alert so your bot can pick tomorrow's playbook automatically.
■ HOW TO USE
1) Apply to an intraday chart (5m - 1h; crypto, indices, FX, stocks). 2) Let at least one full day close so the first letter prints. 3) Read the panel: previous-day letter -> today's bias -> checklist. 4) Take the pills or automate them via webhook. The first day on the chart only collects data — letters start from day two.
Educational note: shapes give a BIAS, not a guarantee — that is exactly why every setup ships with both Plan A and Plan B. Not financial advice.
WHY THESE PARTS BELONG TOGETHER
The volume profile and the shape classification are inseparable here. The profile alone tells you
where volume accumulated; the classification into P, b and D shapes is what turns that distribution
into a statement about who is trapped and where the day is likely to go. A P shape and a b shape can
contain identical volume and mean the opposite thing - which is only visible once the profile is
read as a letter rather than as a histogram.
インジケーター

Liquidity HeatmapLiquidity Heatmap – POC and Value Area.
A rolling volume-density profile rendered directly onto the price chart. Over a configurable lookback window the indicator distributes each historical bar's volume across every price bin its high-low range covered, then draws the resulting distribution as color-graded horizontal lines at each bin's midpoint. Point of Control and Value Area (70 % of total volume) are computed automatically, and a compact right-side histogram mirrors the profile in the future-offset zone. Built for intraday and swing traders who want a live, minimal read of where the market actually did business — the real liquidity anchors, not manual pivots.
How it works:
The indicator recalculates every N bars (default 5). On each recalc it finds the highest and lowest price of the lookback window, splits that range into a configurable number of bins (default 40), and iterates through every bar in the window. For each bar its volume — or a unit weight if volume weighting is disabled — is added to every bin whose price range the bar crossed. The result is a density array: the more time price stayed inside a bin and the higher the volume of those bars, the larger its density value. Bins are drawn as thin horizontal lines at their midpoints, with color and transparency scaled by the ratio of bin density to peak density.
The Point of Control is the bin with the largest total. Value Area is grown outward from POC, alternately taking whichever adjacent side holds more volume, until 70 % of the entire distribution is covered — VAH becomes the upper boundary of that region and VAL the lower. A right-side density histogram in the chart's offset zone re-renders the same profile in bar-chart form, and the level labels (POC / VAH / VAL) sit past the histogram so they never overlap the main heatmap. The information panel in the top-right corner shows the numeric price of each level and its signed percentage delta to the current close, color-coded green when the level sits above price, red when below, gray at parity.
What it calculates:
- Volume density per price bin over the lookback window
- POC — Point of Control, the bin with peak accumulated volume
- VAH — Value Area High, upper boundary of the 70 % volume region
- VAL — Value Area Low, lower boundary of the 70 % volume region
- Signed delta from current close to POC / VAH / VAL, in percent
Key features:
- Rolling recalculation every N bars for tunable CPU / responsiveness balance
- Volume weighting (default) or touch-count mode as a per-price frequency map — useful when volume data is unreliable
- Four-stop plasma color gradient (deep navy → violet → magenta → amber), every stop user-overridable via input.color
- Constant 1-pixel line width across all bins; visual weight is carried entirely by color intensity and transparency
- POC solid line and label placed past the offset histogram for readability
- VAH / VAL dashed lines extended all the way to their labels so the eye follows the level continuously
- Compact right-side density histogram in the future-offset area, mirroring the main profile in bar-chart form
- Top-right information panel with POC / VAH / VAL price and signed percentage delta to the current close, colored by side (green above / red below / gray at parity)
- Independent visibility toggles for POC and Value Area
- Adaptive bin geometry — resolution scales automatically with the price range of the lookback window
- Runs on any timeframe and any instrument; no external data sources required
Who it's for:
Intraday scalpers, swing traders, order-flow and Market Profile practitioners who need to see the true volume anchors of the current regime instead of hand-drawn horizontals. The color-graded strips make dominant liquidity walls, thin gaps and Value Area boundaries visually obvious at a glance, so attention goes to execution rather than to marking up the chart. インジケーター
