Signal Pilot
🟡 Intermediate • Lesson 29 of 85

Volume at Price

Reading time ~12 min • Module 4: Reading the Auction
Signal Pilot
Professional Trading Education
0%
You’re making progress!
Keep reading to mark this lesson complete

A session’s volume is not spread evenly over the prices it visited, and that shape is the most solid object this module has: it is a count, with none of the classification the last lesson had to apologise for. The number everyone quotes from it is the weakest part of it. The point of control is the tallest bar of a histogram, and which bar is tallest depends on how wide you drew the bars — on the session below it lands anywhere across nearly two-thirds of the day’s range, and the coarsest reading of it turns on twenty-one contracts out of nine thousand.

Prerequisites: Lesson 28, which established that a footprint is a second measurement with its own error rate rather than the truth behind the candle, and lesson 19, because a difference smaller than its own error bar is not a difference.

Lesson 28 stayed inside a single bar. Widen the same measurement to a whole session and you get volume at price: for every price the session traded, the total that changed hands there. Notice what has dropped away. There is no aggressor rule here, no classification step, no error rate inherited from your data feed. Buys and sells are the same trades counted once, and every venue and every feed will agree on the total at each price. After a module spent largely on things that have to be inferred, this is a count.

That makes what follows a different kind of criticism from the last lesson’s. Nothing below says the measurement is unreliable. The measurement is fine. What is fragile is the one number the whole industry reads off it.

The shape is real, and it is not an accident

Prices do not receive equal volume, and there are two ordinary reasons rather than one mysterious one. Price spends more time in some places than others, and volume follows time loosely. And participants do not choose prices uniformly: they put orders on round increments. Harris measured that clustering directly and found it pervasive rather than incidental — transaction prices pile onto round fractions far more than any continuous process would produce. So a lumpy profile is partly the auction’s structure and partly its habits, and both of those are real things about the market rather than noise in the drawing.

The vocabulary is worth having, because the rest of the module uses it. A price where a lot of volume traded is a high-volume node; one where little traded is a low-volume node; the price where the most traded is the point of control, universally abbreviated to POC. That is the whole vocabulary, and the first two terms are in better shape than the third.

The point of control is a mode, and a mode has a bin

Open the profile settings on any platform and you will find a row height: ticks per row, or number of rows, or something that amounts to the same thing. It reads like a display preference, next to the colour picker. It is not. It is the bin width of a histogram, and it is chosen by you or defaulted by your vendor.

Of all the summaries you can take from a histogram, the mode is the one bin width moves most. The mean barely notices; the median hardly cares; the tallest bar can jump from one end of the distribution to the other, because widening the bars merges neighbours and a merged pair of medium bars can overtake a lone tall one. This is not a trading observation and it is not controversial. It is why Scott published a rule for choosing the bin width in 1979, and Freedman and Diaconis published another in 1981, instead of either paper simply naming a default: the choice is a genuine tradeoff with no neutral setting, and both exist because there is no way to avoid making it.

Your charting package made that choice for you, silently, and then drew a confident horizontal line at the answer.

One session, four bin widths, four different answers

Here is a session that traded 9,160 contracts across sixteen prices, from 100.00 up to 100.15. This is the whole of the raw data: no aggressor split, no interpretation, just the total that changed hands at each price.

PriceVolume
100.15520
100.14660
100.13800
100.12840
100.11820
100.10780
100.09700
100.08560
100.07420
100.06340
100.05300
100.04380
100.031,080
100.02420
100.01300
100.00240

Read the shape before reading any summary of it, because the shape is the part that will survive. There is a broad, heavy region across the upper half of the range, peaking around 100.12, and there is a single very tall price low down at 100.03 with thin prices either side of it. Split the sixteen prices into thirds and the upper third holds 3,640 contracts, the middle 3,100 and the lower third 2,420. The busiest part of the day, by a half, is the top.

And the price that took the most volume in the whole session sits in the quietest third of it. That one price took 1,080 contracts, nearly 12 per cent of the day at a single tick, which is exactly what one large trade looks like when it lands somewhere the market was otherwise passing through. Hold on to that sentence: the mode and the mass are pointing in opposite directions, and everything below is the consequence.

Now bin it. Four settings, all of them ones a real platform offers, applied to the same sixteen numbers.

Bin widthPoint of controlVolume in itRunner-upMargin
1 tick100.031,080840 at 100.12240
2 ticks, grid on the even cent100.12 to 100.131,6401,600 at 100.10 to 100.1140
2 ticks, grid shifted one cent100.11 to 100.121,6601,480 at 100.09 to 100.10180
4 ticks100.08 to 100.112,8602,820 at 100.12 to 100.1540

Every row is the same session. Nothing was added, removed or reclassified between them; the sixteen numbers in the first table are all that any of the four readings had to work with, and each column of buckets still adds to 9,160. What changed is a setting.

At one tick the point of control is 100.03, down in the quietest third, because a single large print is taller than anything the busy region managed at any one price. At two ticks it is 100.12 to 100.13, nine ticks higher, because merging neighbours lets the broad region assemble a taller bar than the lone spike can. At four ticks it is 100.08 to 100.11. Take the centre of each answer and they span from 100.03 to 100.125 — 9.5 ticks of a 15-tick range, or a shade under two-thirds of the day. The same trades, the same tape, four settings, and the line lands almost anywhere.

The third row is the one worth pausing on, because it changes nothing but the phase. It is still two ticks wide; the grid simply starts one cent lower, which is a thing that happens on its own when a session opens at a different price. That alone moves the answer a tick.

Then read the margin column, which is the more damaging half. At four ticks the winning bucket beats the runner-up by 40 contracts out of 9,160 traded — 0.4 per cent of the day. Move 21 contracts from the winner to the runner-up and the point of control jumps four ticks. Twenty-one contracts, on a day that traded nine thousand, decide where the line gets drawn; and the chart does not draw it any fainter for that. Lesson 19 spent itself on the difference between a measurement and its error bar, and this is that lesson applied to a number nobody thinks of as a measurement at all.

Notice which way that runs, because it is not the direction most people expect. The finest bin gave the most decisive winner here — 240 clear, or 22 per cent of the winning bucket — and the coarsest the least, at 40 and 1.4 per cent. That ordering is a property of this particular session rather than a law, and it is worth checking on your own before relying on it either way. What is general is the first finding, not the second: the mode of a binned distribution depends on the binning, always, and the more evenly the volume is spread the more it depends on it.

So what does survive? The shape. The upper half of the range holds 5,680 of the 9,160 against the lower half’s 3,480, and no bin width can touch that, because halves are not buckets. The lightest quarter of the range is 100.04 to 100.07 with 1,440, barely half of what the busiest quarter holds. On three of the four settings the point of control sits somewhere in that heavy upper half.

And the three obvious summaries of this session behave exactly as the last section said they would, which is worth doing rather than asserting: across all four settings the mean of the distribution moves by a sixth of a tick, the median by one tick, and the mode by nine and a half. The one number a volume profile puts a line through is the only one of the three that moves. If you had described this session as “a busy region in the upper half with one outsized print low down”, every one of the four readings would have agreed with you, and you would have been carrying a description the setting cannot take away. It is the moment you compress that description into one price that the setting starts making the decision instead of you.

Which gives a test that costs a minute and settles the question for your own instrument. Before you use a point of control for anything, re-draw the profile at half and double your usual row height and see how far the line moves. If it moves further than the stop you would have placed against it, it is not a level; it is your vendor’s default row height, drawn confidently.

What this does not settle

That the count itself is in doubt. It is not, and that is the difference between this lesson and the last one. A delta needed a rule to decide which side crossed the spread, and that rule has a measured error rate; volume at price needs nothing of the kind. Every objection above is about a summary taken from the count, not about the count.

That a finer bin is therefore the honest one. It is not; it moves the problem rather than solving it. At one tick this session’s point of control is a single 1,080-contract print, which is to say it is one trade, and one trade is not a level either. Both extremes fail, which is precisely why the two papers cited below propose rules for choosing the width instead of naming a number. If you want a defensible setting, take one of those rules and apply it to your instrument rather than accepting a default or reaching for the finest available.

That this makes volume profiles useless. It makes one number in them fragile, and the picture around that number is not fragile at all. The whole constructive half of this lesson is that the shape held across every setting tried. The finding is about the line, not the profile.

That a high-volume price will be defended and a low-volume price crossed quickly. That is the claim the entire vocabulary is built to suggest, it may well be true, and this lesson has not tested it. It is a base rate and nothing else will do — the third problem below is how you would get it, and until you have it, a high-volume node is a description of the past and not a reason.

That the profile tells you who traded there. It does not, and it cannot: that was lesson 28’s question, and lesson 28’s answer was a classification with an error rate concentrated exactly where you care. Volume at price is a count, and it stops at a count. Combining the two is a real technique, and what comes out is only as trustworthy as the classification inside it, which is the less trustworthy of the two ingredients.

That the session boundary is neutral. A profile is always built over a window somebody chose — this session, this week, since the last swing low — and moving that window changes the shape as surely as the bin width changes the mode. This lesson held the window fixed and varied the bin on purpose, to isolate one thing. Lesson 30 takes up the window, and what a value area does that a point of control cannot.

Volume at price is the one thing in this module you can count rather than infer. The point of control is what happens when you throw that away and keep a single number instead.

Problems

  1. Re-bin one of your own sessions. Take a single session on the instrument and timeframe you actually trade, and draw the volume profile four times: at one tick per row, two, four and eight. Write down where the point of control lands each time, and take the spread between the highest and lowest answer as a fraction of that session’s range. Then compare that spread to the stop distance you would genuinely have used. If the line moves further than your stop, you have learned that on this instrument, at these settings, the point of control is not a price — and that is a more useful thing to know than any level it could have given you.
  2. Measure how close the decision was. On your default setting, note the volume in the point-of-control bucket and in the bucket that came second. Halve the difference and round up: that is the number of contracts that would have moved the line. Express it as a share of the session’s total volume, and do it for ten consecutive sessions rather than ten memorable ones. What you are measuring is how often your platform reports a near-tie as a confident line, and the answer is a property of your instrument that nobody else’s number can stand in for.
  3. Get the base rate the vocabulary assumes. Over thirty consecutive sessions, mark two prices from each session’s profile: the point of control, and the lowest-volume price strictly inside the range, excluding the high and the low. Then, in the following session, record how much time price spent within one tick of each. Two numbers come out of this. The first is whether price returns to high-volume prices more than to low-volume ones at all, which the folklore asserts and this lesson has not shown. The second is how big the difference is, which is the only version of it you can trade. Thirty sessions is enough to see a large effect and nowhere near enough to see a small one, so write down which of those two you found.

Where the problems above ask you to go and count something, How to Collect a Base Rate is the appendix that says how: define the observation, fix the criterion before you look, take consecutive cases rather than the memorable ones, and count into four cells.

Sources. J. Peter Steidlmayer and Kevin Koy, Markets and Market Logic (Porcupine Press, 1986), for the object itself: the idea of reading a session as a distribution over price rather than a line through time, which is where every term in this lesson comes from. David W. Scott, “On Optimal and Data-Based Histograms” (Biometrika, 1979), and David Freedman and Persi Diaconis, “On the Histogram as a Density Estimator: L2 Theory” (Zeitschrift für Wahrscheinlichkeitstheorie und verwandte Gebiete, 1981), for the result underneath the worked example — choosing a bin width is a genuine tradeoff with no neutral setting, which is why each paper proposes a rule rather than a number. Lawrence Harris, “Stock Price Clustering and Discreteness” (Review of Financial Studies, 1991), for why a profile is lumpy before anyone bins it: transaction prices cluster on round increments far more heavily than a continuous process would produce.

This lesson varied the bin and held the window still. The next one does the opposite: what a profile looks like over a session, a week and a month, why the middle of the distribution is a steadier object than its peak, and what a value area is actually measuring when it puts a boundary around most of the volume.

Related Lessons
Lesson 28

Absorption and Exhaustion

The same measurement inside one bar, and the classification step this one does not need.

Read Lesson →
Lesson 19

How Long Until You Know

Why a margin of forty in nine thousand is not a margin.

Read Lesson →
Lesson 30

Volume Profile

What a value area does that a point of control cannot.

Read Lesson →
Lesson 26

The Order Book Is Theater

The base rate this lesson asks for again and still cannot supply.

Read Lesson →
Educational only. Trading involves substantial risk of loss. Not financial advice. Past performance does not guarantee future results.

💬 Discussion (0 comments)

0/1000

Loading comments...

← Previous Lesson Next Lesson →

Ready to Trade with Signal Pilot?

Apply your trading education with professional indicators and real-time market analysis tools.

Back to Signal Pilot →