Orderflow Atlas

Guides

Volume profile: the complete guide

A price chart organises the market by time. A volume profile turns that axis ninety degrees and organises it by price: how many contracts changed hands at each level, regardless of when. This guide builds one from scratch, names the four things it shows, and spends most of its length on the setting that quietly decides what you see.

A volume profile is a histogram of contracts traded at each price over a chosen window. Its point of control is the busiest price, its value area the band holding roughly 70% of the volume. It records where business was done. It says nothing about where price goes next.

Rotating the axis

Every chart you have looked at organises volume by time. The bars along the bottom answer one question: how much traded in this minute, this hour, this day. It is a useful question, and not the only one. A volume profile rotates it ninety degrees and asks how much traded at this price, regardless of when.

The construction is arithmetic, not interpretation. Choose a window — a session, a week, the life of a range. Divide the price axis into rows. Add up every contract that traded inside each row. Draw the totals as horizontal bars. That is the entire algorithm, which is why two people with the same data and the same settings are obliged to produce the same profile. Very little in this field has that property.

What comes out is a silhouette of the window's business. Long bars are prices the market kept coming back to; short bars are prices it crossed on the way somewhere else. That is a description of what happened — and the gap between description and prediction is what this page keeps coming back to.

The four objects on every profile

Everything a volume profile offers reduces to four features of that silhouette. Learn them in this order, because each one is defined in terms of the one before it.

The row-size problem

Here is the part most introductions skip. A profile has no natural resolution: you choose one by setting how many ticks of price go into each row, and that choice manufactures or destroys the very features you were about to trade.

Take twelve consecutive price rows from a synthetic session, one tick each, carrying these volumes: 700, 1 600, 240, 1 500, 1 400, 200, 1 350, 1 450, 300, 1 250, 1 100 and 900 contracts. At one tick per row the profile is unambiguous. The busiest price is the second row with 1 600 contracts, and three pinches stand out — rows three, six and nine, each smaller than both its neighbours.

Now double the row size, which merges the rows in pairs. Rows one and two become 2 300, rows three and four become 1 740, rows five and six become 1 600. The pinch at row three has been buried: 240 merged with 1 500 is 1 740, larger than the 1 600 sitting next to it, so it is no longer a low point. Two pinches survive. One never existed as anything but a consequence of the setting.

The point of control moves as well, and further than you would guess. At one tick it sits on row two. At two ticks the busiest bucket is rows seven and eight combined at 2 800 contracts — five rows from the answer of a moment earlier. Shift the bucket boundary by a single tick without changing the row size at all, and it moves a third time, to rows four and five at 2 900.

None of the three readings is an error. They are three honest summaries of one dataset at three resolutions, and the market has no opinion about which you picked. The rule follows: before you trade a node, widen the rows one step and look again. A feature that survives is a property of the data. A feature that vanishes was a property of your settings.

A workable starting point is 30 to 60 rows across a session profile — for most instruments, the day's range divided by roughly forty. The number matters far less than writing it down and keeping it. Two profiles built at different row sizes are not comparable, and comparing them anyway is how a trader concludes a level moved when only the setting did.

The same twelve rows of synthetic volume, read at three settings. The data never changes.
SettingPoint of control lands onLow volume nodes visible
One tick per rowRow 2, at 1 600 contractsThree, at rows 3, 6 and 9
Two ticks per row, boundary on row 1Rows 7 and 8 merged, at 2 800Two: the pinch at row 3 is absorbed
Two ticks per row, boundary shifted one tickRows 4 and 5 merged, at 2 900One: only the rows 6 and 7 pinch survives

Volume profile is not market profile

The two are drawn the same way and count different things, and the confusion is old enough now to be inherited rather than reasoned. A market profile splits the session into half-hour brackets and marks every price that traded during each one — a single mark, one TPO, whether one contract or ten thousand went through. A volume profile counts the contracts and ignores the clock entirely.

So the volume profile measures participation and the market profile measures duration. They broadly agree on quiet sessions, because when nothing much happens time and volume accumulate together. They part company at the extremes: a release trades enormous size in ninety seconds and barely registers as time, while an overnight drift stacks marks at prices where almost nothing changed hands.

When the two points of control land far apart, that gap is the reading rather than a malfunction. The price where the market lingered and the price where it transacted are not the same price — worth knowing before you decide which of them to defend.

One counts contracts, the other counts half-hours. Same drawing, different measurement.
CriterionVolume profileMarket profile
Unit countedContracts traded at a priceBrackets in which a price traded
What a long row meansA lot changed hands thereThe price stayed in play a long time
Weight of one large tradeIts full size, on one rowOne mark, same as a single contract
Needs a volume feedYesNo — price and time are enough
Value area targetAround 70% of contractsAround 70% of the marks
Where they disagree loudestA release: huge volume, almost no timeA quiet drift: many marks, almost no volume

Levels that outlive the session

A profile built for one session dies with it, but three of the things it produced can be carried forward onto tomorrow's chart.

How old levels stop meaning anything

A caution applies to all three: a carried level is only as relevant as the price regime that produced it. After a catalyst that redefines value — a policy decision, an inflation print, an earnings release — a level from before it can sit untested for a long time and quietly stop describing anything. Age is not the criterion. Whether the conditions that built the level still hold is.

A cluster also beats a single line, for a structural reason rather than a statistical one. Three past points of control within a few ticks of each other describe a band the market has independently agreed on three times. One on its own describes one session, and that session may have been strange. The corollary is a habit worth breaking: a chart carrying thirty lines has no levels on it, because nothing on it is distinguishable.

What a volume profile cannot do

This is not a disclaimer bolted on at the end for form. A volume profile is a good measurement with narrow reach, and the reach is narrow for structural reasons no better tool and no amount of practice will widen.

Say it plainly: a profile is a record of the past drawn on the price axis. Everything it appears to say about the future is supplied by the reader. The five limits below are permanent.

How to read one without fooling yourself

Fix the construction before the session and do not touch it during: the window, the row size, the value area target, the session definition. Each of those moves your levels. Changing one after you have marked a chart means comparing two different maps and calling the difference a signal.

Use the profile to choose locations, and something else to decide what happens at them. It answers where would this matter very well — the value area edges, the pinch between two nodes, an untested point of control from three sessions ago. It is silent on whether the level is holding when you arrive. That question belongs to the flow: what is being absorbed, what is trading through, whether aggression continues past the level or dries up on contact.

Target node to node, and never into a pinch. A take-profit in the middle of a low volume node is an instruction to exit at the one price the market has shown it wants to cross quickly. Aim at the shelf on the far side of the gap rather than at the gap.

Then treat every level you mark as a question, not an answer. The profile has told you where the market did its business. Whether it defends that price today is decided by participants who have not arrived yet and who owe your chart nothing.

In short

  • A volume profile answers where business was done, on the price axis. It carries no statement about direction or timing.
  • Point of control, value area, high volume node and low volume node are the four objects, each defined in terms of the one before it.
  • The row size is not cosmetic. The same session read at two settings gives different nodes and a different point of control — so widen the rows one step before trading a node.
  • A volume profile counts contracts, a market profile counts half-hours. When their points of control disagree, the disagreement is the reading.
  • Carried levels — untested points of control, composite nodes, prior value area edges — are targets and references, not support and resistance.

Frequently asked

What is the difference between a volume profile and a market profile?
The unit they count. A volume profile counts contracts traded at each price; a market profile counts the half-hour brackets in which a price traded, one mark per bracket whatever the size. Contracts versus half-hours: participation versus duration. They agree on slow sessions and separate around anything fast.
What row size should I use for a volume profile?
A workable starting point is 30 to 60 rows across a session profile — for most instruments, the day's range divided by roughly forty. The number matters less than fixing it, recording it, and never comparing profiles built at two settings. The test that protects you is different anyway: widen the rows one step and check whether the node you were about to trade is still there.
Is the point of control support or resistance?
Neither: it has no fixed polarity. Approached from below it behaves like resistance, from above like support, so the label is decided by the direction of arrival rather than by the level. Read it as a magnet rather than a wall — it marks where the largest inventory was built, which is why price tends to return, and says nothing about what happens on the return.
Does the value area really contain 70% of the volume?
No, and it never does. The band grows outward from the point of control and stops before the target would be exceeded, so it holds at most the target and usually a little less. Anything reporting exactly 70.0% did not build the band that way. The 70 itself is a convention rounded from one standard deviation of a normal distribution, which covers 68.27% — a borrowed analogy, not a measurement of the market.
Does a volume profile work on a 24-hour market?
The construction works anywhere a traded volume series exists, including instruments that never close. The complication is that there is no natural session boundary, so you invent one — and where you put it changes the point of control, the value area and every node between. Pick one convention and never mix it with another.