Guide · Trading

Volume profile, and what the histogram at the bottom cannot tell you

The volume bars under a chart tell you when trading happened. A volume profile tells you where. Those are different questions, and only the second one identifies the prices people actually care about.


Volume by time versus volume by price

The standard histogram buckets volume by time: one bar per session or per five-minute interval, showing how much traded in that window. It answers "was today busy?"

A volume profile rotates that ninety degrees and buckets volume by price: horizontal bars showing how much total volume traded at each price level over a chosen range. It answers "which prices did the market spend its money at?" That is the more useful question, because acceptance and rejection happen at prices, not at clock times.

Volume by timeVolume profile
AxisHorizontal, one bar per periodVertical, one bar per price bucket
AnswersWhen was activity heavy?Which prices absorbed the most volume?
Typical useConfirming a breakout dayLocating support, resistance, and fair value
WeaknessSays nothing about levelSays nothing about sequence or time

How the profile is actually built

Two different constructions get called "profile" and they measure different things. Knowing which one your platform is drawing changes how you read it.

  • TPO profile (time price opportunity, the original market profile) counts time: each 30-minute period that touched a price gets one letter at that price. A price touched in eight periods gets eight marks whether one share or a million traded there.
  • Volume profile counts volume: the actual shares or contracts that changed hands at each price. A price touched briefly on enormous size scores high, where TPO would barely register it.
  • The practical difference shows up on news. A violent, high-volume spike through a level produces a big volume node and almost no TPO structure. TPO says the market spent no time there; volume says a great deal of inventory changed hands there. Both are true and they answer different questions.

Then there is bucket width, which is a real parameter and usually left on a default nobody examined. Two conventions dominate: fixed increments (round the price to the nearest cent, five cents, or tick) and fixed row counts (divide the range into 24, 50, or 100 rows regardless of price). Coarse buckets smear real structure into one fat bar. Fine buckets on thin data produce a comb of noise where every second row looks like a node. A workable default is enough rows that the widest bar is roughly 5% to 10% of the total range's height, then leave it alone across every chart so the profiles stay comparable.

POC, VAH, VAL

  • POC — point of control. The single price with the most traded volume in the range. It is the market's most agreed-on price for that period, and it tends to act as a magnet: price that leaves it often returns to test it.
  • Value area. The contiguous band of prices containing roughly 70% of the range's volume, centred on the POC. The 70% figure comes from the one-standard-deviation convention inherited from market profile.
  • VAH / VAL. Value area high and value area low, the two edges of that band. They are the practical boundaries between "prices most participants accepted" and "prices they rejected".

The workaday reading: inside the value area, the market is balanced and mean-reverting, so fading the edges is the higher-probability behaviour. Outside it, the market is imbalanced and trending, so accepting the move is the higher-probability behaviour. The value area edges are where those two regimes swap, which is why VAH and VAL are worth marking even if you use nothing else from the tool.

Computing a value area by hand

Nobody shows this, and it is worth doing once because the result is less canonical than it looks. Take an illustrative eleven-row profile, volumes in thousands of shares:

PriceVolume (000s)Note
$52.00120
$51.50180
$51.00260
$50.50410
$50.00620High volume node
$49.50980POC
$49.00740High volume node
$48.50190Low volume node — a thin shelf
$48.00620High volume node
$47.50250
$47.00130

Total volume is 4,500 thousand shares, so the 70% target is 3,150. The classic algorithm starts at the POC and expands outward, at each step comparing the two rows above against the two rows below and taking whichever pair holds more volume, until the running total crosses the target.

Pair-expansion method (the market-profile classic) start POC $49.50 = 980 (21.8%) step 1 above 620+410=1030 vs below 740+190=930 → up running 2,010 (44.7%) range 49.50-50.50 step 2 above 260+180=440 vs below 740+190=930 → down running 2,940 (65.3%) range 48.50-50.50 step 3 above 260+180=440 vs below 620+250=870 → down running 3,810 (84.7%) range 47.50-50.50 VAL $47.50 POC $49.50 VAH $50.50 covering 84.7%

Notice the overshoot. The last pair added 870 to a running total of 2,940 and blew straight past 3,150 to 84.7%. That is inherent to adding two rows at a time, and it is worse the coarser the buckets are. Now run the same data one row at a time, which is what several charting packages actually do:

Single-row expansion method start POC $49.50 = 980 (21.8%) +740 (49.00) 1,720 (38.2%) +620 (50.00) 2,340 (52.0%) +410 (50.50) 2,750 (61.1%) +260 (51.00) 3,010 (66.9%) +190 (48.50) 3,200 (71.1%) ← crosses 70% VAL $48.50 POC $49.50 VAH $51.00 covering 71.1%

Same data, same 70% rule, two different value areas. The pair method gives 47.50 to 50.50; the single-row method gives 48.50 to 51.00. VAH differs by 50 cents and VAL by a full dollar. If you are fading the value area edge, that is the difference between a trade and no trade.

The lesson is not that one method is right. It is that a value area is a computed object with named assumptions, not a fact about the market, and you should know which construction your platform uses before you place an order at its edge. This is the same discipline that separates a testable rule from a chart drawing, and the reason overfitting is so easy in level-based systems: with three free parameters — bucket width, expansion method, and area percentage — you can produce a level almost anywhere you want one.

High and low volume nodes

Beyond the POC, the shape of the profile matters.

FeatureWhat it meansHow price behaves
High volume node (HVN)A price where a lot of volume traded — heavy agreement and inventoryPrice slows, chops, and often stalls. Good place for a target, bad place for a breakout entry.
Low volume node (LVN)A price the market moved through quickly with little tradePrice tends to travel across it fast. Good place for a stop to sit beyond, and a natural edge for a range.
Single print / gap in profileAlmost no volume at that price at allRejection zone. Revisits are often sharp and one-directional.
Naked POC (nPOC)A prior session's point of control that price has never returned toActs as an unfinished magnet. Frequently revisited days or weeks later, which makes it a target rather than an entry.

A concrete use: if your entry sits just above an LVN and your target sits at the next HVN, you have a structural reason to expect fast travel to the target and a natural place to put the stop, on the far side of the low-volume gap where returning would contradict the thesis. In the illustrative profile above, $48.50 is exactly that shelf — 190 against neighbours of 740 and 620.

This is also the cleanest interaction with stop placement. A stop beyond an LVN is one of the few stops that carries genuine information, because price crossing back through a thin shelf means it has re-entered territory the market previously refused to trade in. A stop sitting inside an HVN is the opposite: ordinary two-sided chop will take it out without anything about the thesis having changed.

Profile shapes

ShapeWhat it looks likeWhat it usually impliesWhat tends to follow
D (normal)Fat in the middle, thin at both extremesBalance. Two-sided auction, both edges rejectedRange behaviour until one edge is accepted. Fade the extremes with a plan
PThin at the bottom, fat near the highsBuying drove price up, then acceptance built at the highs. Often short coveringContinuation if the fat area holds; the thin lower tail is unfinished business if it does not
bFat near the lows, thin aboveSelling drove price down, then acceptance built at the lows. Often long liquidationMirror of P. The thin upper tail is where a sharp retest travels fast
Double distributionTwo separate fat areas with a thin waist between themTwo auctions at two different fair values, joined by a price nobody wantedThe thin waist becomes a decision level. Price tends to accelerate across it in either direction

The double distribution is the most tradeable of the four, because the thin waist is an unusually well-defined level: it is not a line someone drew, it is a price range where measured volume collapsed. It also makes a good invalidation, since price settling inside the waist contradicts the premise that the market refuses to trade there.

Two honest cautions. First, shape naming is retrospective and elastic — most real profiles are a lumpy D that you could argue into any of the four categories. Second, the implications above are conventional readings from the market-profile literature, not effects I have measured. Use them as vocabulary for describing what you see, not as probabilities.

Composite versus session profiles

A profile is only as meaningful as the range you compute it over. The common choices:

  1. Session profile — one day. Intraday work, opening-range context, and the raw material for naked POCs.
  2. Composite over a base or consolidation — the most useful swing application, because it shows where inside the range the inventory actually sits.
  3. Since an event — anchored to an earnings gap or a major low, so the profile only contains participants from the current regime.
  4. Visible range — whatever is on screen. Convenient, and quietly the least rigorous, because the profile changes every time you scroll.

The difference between session and composite is not cosmetic. A composite over a nine-week base tells you where the base's supply is concentrated, which is a swing-relevant fact that persists for weeks. A session profile tells you where today's inventory is, which is an intraday fact that expires at the close — except for its POC, which survives as a naked level if price never returns to it. Run composites for the trade thesis and session profiles for the execution.

Same discipline as anchoring anything: pick the range for a stated reason before you look at the outcome. A profile computed over a range chosen because it produced a nice-looking POC is a drawing, not an analysis. If you cannot say in one sentence why the range starts where it starts — "the earnings gap", "the 52-week low", "the first day of the base" — the level it produces is not evidence of anything.

Pairing it with anchored VWAP

The two tools answer neighbouring questions and are strongest together. A profile tells you where volume sits but not who is up or down on it. Anchored VWAP tells you the average cost basis of everyone since a chosen event, so it tells you whether that cohort is in profit.

Concretely: anchor a VWAP to the same event you anchor the profile to. If the AVWAP and the POC sit at nearly the same price, that level is both the most-traded price and the average cost basis, which makes it a strong reference for both entry and invalidation. If the AVWAP sits well above the POC, the average participant paid more than the most agreed-on price, which is overhead supply waiting to sell into strength.

An AVWAP reclaim occurring at a low volume node is a more interesting setup than one occurring in the middle of a high volume node, because there is less inventory to chew through above it. The anchored VWAP guide covers the reclaim mechanics →

The AVWAP reclaim is the one setup my walk-forward testing did not eliminate, at +0.117R over 4,933 trades on a 129-symbol, 10-year universe with a 95% confidence interval of +0.057 to +0.174. It is not a validated edge: a risk-matched random entry captured +0.086R on the same data, so the signal's own contribution is about +0.030R with a confidence interval crossing zero. An earlier, roughly double figure measured over barely a hundred hand-picked trades failed my own adversarial re-test and is retired. Backtest results, not live trading claims.

Limits

  • Profiles are descriptive, not predictive. They show where trade happened, not where it will happen.
  • They say nothing about sequence. A POC built early in a range and one built yesterday look identical on the profile and mean different things — this is precisely the information TPO retains and volume profile discards.
  • The value area is construction-dependent, as the two worked calculations above demonstrate. Two implementations of the same 70% rule disagreed by a dollar on identical data.
  • Free retail data is often consolidated and incomplete. Off-exchange and dark-pool prints may be missing or lagged, so the shape is approximate rather than exact.
  • Every level is negotiable in a strong trend. Value areas are reference points, not walls.
  • The parameter count is the real risk. Bucket width, range selection, and expansion method give you enough freedom to justify almost any level after the fact, which is why the range has to be chosen for a stated reason first.

The honest summary is that a profile is a good description layer and a poor signal layer. It improves the quality of an entry you already had a reason to take — better targets, better stop placement, a sense of where the inventory is — and it degrades quickly if you try to make it generate trades on its own. Tag your trades by where they sat in the profile in TradeLog and compute expectancy per tag before you believe any of it, and if a term above was unfamiliar the glossary defines POC, VAH, VAL, and single print.

Educational content, not financial advice. No live profit-and-loss figures are claimed anywhere on this site; backtest and walk-forward results are always labelled as such. Full terms: /terms.html

Tools referenced in this guide

  • Anchored VWAP guide — the cost-basis tool that pairs directly with a profile's POC.
  • Swing Screener — the screener and no-lookahead backtest engine used for the walk-forward results.
  • TradeLog — tag trades by where they sat in the profile and compare expectancy per tag.

FAQ

Quick answers

What is a volume profile?

A volume profile buckets traded volume by price rather than by time, drawing horizontal bars that show how much volume changed hands at each price level over a chosen range. It answers which prices the market spent its money at, which is a different and generally more useful question than the standard histogram's answer of when volume was heavy.

What is the point of control (POC)?

The point of control is the single price with the highest traded volume in the profile's range, representing the market's most agreed-on price for that period. It tends to act as a magnet, so price that moves away from it frequently returns to test it. A prior session's POC that price never returned to is called a naked POC and often gets revisited later.

What is the value area and how is it calculated?

The value area is the contiguous band of prices holding roughly 70% of the range's volume, centred on the point of control, with edges labelled VAH and VAL. It is computed by starting at the POC and expanding outward toward whichever side holds more volume until the running total crosses 70%. Inside it the market is balanced and mean-reverting; outside it the market is imbalanced and trending.

Do different platforms compute the value area differently?

Yes, and the difference is material. Expanding two rows at a time, the market-profile classic, gave a value area of 47.50 to 50.50 on one illustrative dataset, while expanding a single row at a time on the identical data gave 48.50 to 51.00. That is a full dollar of disagreement on VAL from the same 70% rule, so check which construction your platform uses before trading its edges.

What is the difference between TPO and volume profile?

A TPO or market profile counts time, giving one mark per 30-minute period that touched a price, while a volume profile counts the shares or contracts actually traded there. A violent high-volume spike through a level produces a large volume node and almost no TPO structure, because a lot of inventory changed hands in very little time. They answer different questions and both are legitimate.

What are high and low volume nodes?

A high volume node is a price where heavy volume traded, so price tends to slow and chop there, making it a better target than an entry and a poor place for a stop. A low volume node is a price the market passed through quickly with little trade, so price tends to travel across it fast, which makes the far side of it one of the few genuinely informative places to put a stop.

What do profile shapes like P and b mean?

A D-shape is fat in the middle and implies balance. A P-shape is thin below and fat near the highs, usually meaning buying drove price up and then acceptance built there. A b-shape is the mirror, fat at the lows after selling. A double distribution has two fat areas separated by a thin waist, and that waist becomes a decision level price tends to cross quickly. These are conventional readings rather than measured probabilities.

How does volume profile work with anchored VWAP?

Anchor both to the same event. The profile shows where volume traded and the anchored VWAP shows the average cost basis of everyone who traded since the anchor. When the two sit at the same price the level is unusually strong; when the VWAP sits above the POC, the average participant is underwater and overhead supply is likely.