A horizontal histogram that shows how much volume traded at each price level over a chosen range.
Volume Profile is a charting tool that plots trading volume horizontally across price, rather than over time like a standard volume histogram at the bottom of a chart. For a selected range of bars, it splits the price axis into rows (price bins) and shows how much volume occurred at each price. The result is a sideways histogram, usually drawn on the left or right of the chart, where longer bars mark prices that saw more activity and shorter bars mark prices that saw less. It is descriptive, not predictive: it summarizes where business has already been done. Traders often use it to see which price areas attracted the most participation. It is commonly used for context and structure, not as a standalone entry or exit tool. Nothing here is buy or sell advice, and trading carries risk of loss.
Volume Profile takes a defined range of price action — for example a single session, a fixed lookback window, or a manually selected box — and divides the vertical price axis into a series of equal-height rows. It then adds up the volume that traded within each row's price band and draws a horizontal bar proportional to that total. Because most feeds report volume per bar rather than per exact price, many implementations approximate by distributing each bar's volume across the prices it covered (for example spreading it across the bar's high-to-low range, or assigning it to the close). Several derived levels are commonly highlighted. The Point of Control (POC) is the single price row with the highest traded volume. The Value Area is the contiguous band of rows around the POC that contains a set share of total volume, most often 70 percent, with its upper and lower edges called the Value Area High (VAH) and Value Area Low (VAL). The overall shape of the profile is also read: a single fat cluster (often called a normal or "D" shape) versus two clusters separated by a thin zone (a double-distribution profile). These are descriptive summaries of past activity, not forecasts.
Lookback range (session, fixed bars, or a manual box), number of price rows/bins, and value-area percentage (commonly 70%). Some tools split volume into up/down coloring and toggle POC, VAH, and VAL lines.
//@version=6
indicator("Simple Volume-at-Price", overlay = true)
// Educational only. Not advice. Approximates volume-at-price
// over a lookback window using each bar's close. Dedicated
// Volume Profile tools use more detailed engines.
length = input.int(200, "Lookback (bars)", minval = 10)
rows = input.int(24, "Price rows", minval = 4, maxval = 100)
hi = ta.highest(high, length)
lo = ta.lowest(low, length)
binSize = (hi - lo) / rows
// Find which row holds the most volume (a simple POC proxy).
var float pocPrice = na
if barstate.islast and binSize > 0
float maxVol = 0.0
int maxIdx = 0
for r = 0 to rows - 1
float top = lo + binSize * (r + 1)
float bot = lo + binSize * r
float v = 0.0
for i = 0 to length - 1
float c = close[i]
if c >= bot and c < top
v += volume[i]
if v > maxVol
maxVol := v
maxIdx := r
pocPrice := lo + binSize * (maxIdx + 0.5)
plot(pocPrice, "POC proxy", color.orange, 2, plot.style_circles)Pro tip: Before reading any level, check what your chart's "volume" actually is — on forex it is usually tick volume from a single source, so the same profile can look different on another broker's data. Many traders treat POC and Value Area as context to compare against other evidence, never as standalone triggers.
Educational only — not financial advice, not a recommendation to trade. No indicator is predictive; trading involves substantial risk of loss.