Posts

Bundle of amber light streaks hurled at high speed against a dark stone monolith that does not move an inch, the streaks bursting into sparks against its face while a few pass beyond it into the dark meeting nothing

CVD does not tell you who is buying. It tells you who is in a hurry.

Hi trader,

when I closed the order flow series I left one thing hanging.

I said that CVD, if we ever talked about it, deserved a piece of its own.

Here it is. And it is the one where I risk annoying you the most, because it touches the indicator everybody sticks under their chart and almost nobody reads for what it is.

Let me tell you straight away how I used it badly myself, so we get that out of the way.

I had put it under the price and I was drawing divergences on it the way I used to draw them on the RSI ten years earlier. I found dozens of them. You will find dozens too, if you do that.

After a few months the conclusion I had reached was that order flow does not work.

The right conclusion was a different one: I was using a measuring instrument as if it were an oscillator.

Ok, vamos.

The arithmetic, in three lines

In the first episode we opened the candle up and saw that every fill has a side: there is the one who was waiting with a resting order, and there is the one who went and took it, paying the spread.

Delta is the difference between those two, bar by bar: buy aggression minus sell aggression.

CVD, meaning cumulative delta, is the same thing summed over time. A line that rises when the hurry to buy is in charge, and falls when the hurry to sell is.

That is all. There is nothing else inside it.

And now the sentence that changes everything

CVD does not measure how many are buying and how many are selling.

It cannot, and this is arithmetic, not opinion: in every single trade the quantities bought and sold are identical by definition. If somebody bought ten contracts, somebody else sold them ten. Always. There is no such thing as a candle where “they bought more than they sold”.

What is not identical is which of the two was in a hurry.

So:

CVD measures who is in a hurry, and which side they are on.

Read that again, because everything else in this piece descends from that line, mistakes included.

The right way to read it: it is the effort, not the result

If CVD is the hurry, then it is the effort. And price, which is the result, sits on the other side of the scale.

Taken on their own they say almost nothing.

They matter when they do not add up.

Table crossing CVD and price: when they rise or fall together there is nothing to read, while the two highlighted rows are the ones where CVD runs hard and price stays flat or goes the other way, meaning somebody is absorbing
The matrix between CVD and price. When they rise together or fall together there is nothing to read. When CVD runs hard and price does not move, or goes the other way, somebody is absorbing on the other side.

Look at the two highlighted rows in the figure, because they are the only two that count.

Lots of people in a hurry to buy, and price not going up.

At that point the right question is not “who is buying”. The question is: who is on the other side taking all of them?

The three reasons a divergence appears

And here we get to the part that makes reading this far worthwhile.

Price makes a new high, CVD does not. The famous divergence. On the internet they sell it to you as the signal that gets you the high of the day.

The problem is that the very same picture comes from three different situations, and only the first two are interesting.

One, real absorption. There is a big resting order sitting there taking all the aggression and reloading as they eat it. That is the one we care about, and it is the one we covered in the second episode. You check it on the book, not on CVD.

Two, the iceberg. A huge order shown in small slices. On the book it looks small, in reality it is a wall. Same dynamic as the first, except you cannot see it: you infer it from the fact that the level holds without showing size.

Three, and this is the one nobody tells you about: there simply is no aggression on the other side.

Price rises, CVD does not rise, and not because somebody is absorbing.

It rises because there is nobody selling.

The sellers got out of the way, the road is clear, and price drifts up without anyone having to pay to carry it there.

The three reasons a divergence between price and CVD appears, side by side: real absorption which you check on the book, an iceberg which you infer because the level holds without showing size, and simply no aggression on the other side, where there is nobody on the book and nothing to see
The three reasons a divergence appears, side by side: real absorption, iceberg, and simply no aggression. The first two get checked on the book, the third one is not a signal of anything.

That third one is the majority of cases, and it is why a divergence on its own is never enough.

Because the first two say “there is a wall”. The third says “there is nothing”.

And on the chart, under the price, they have exactly the same face.

A case of mine, and the mistake I made with it

ES, 6 August, two screenshots ten minutes apart.

I am telling you about it because I got this wrong first, and the mistake is exactly the one this piece is supposed to teach you to avoid.

At 12:10 price was at 7,756.25, with the book showing a fresh ceiling of sell orders just above, and further up the sellers pulling themselves out of the way.

Real screenshot of the ES order book on 6 August at 12:10, price at 7,756.25: in the A.PS column the fresh sell ceiling just above price, higher up the sellers pulling their size, and below price the floor being built in the B.PS column
ES, 6 August, 12:10. The real book: at the top the sellers pulling out, just above price the fresh sell ceiling, and below it the floor being built.

At 12:20 price was at 7,760.25. The ceiling had not held.

Ten points of upside. And underneath, cumulative delta was reading -239.

My first read was this one: CVD is negative, so nobody is buying aggressively, so that rise is not a push, it is a void.

It sounds good. And it is wrong.

Real screenshot on ES at 12:20: price has risen ten points to 7,760.25 while in the bottom panel the cumulative delta line stays negative at -239
The same screen ten minutes later. Cumulative delta reads -239, but its slope is rising: it came from below -400.

Look at the figure, and look at the slope instead of the number.

Between 12:04 and 12:07 CVD had sunk below the -400 mark. From there it climbs without stopping, and across the window of the rise it goes from roughly -380 to -239.

Which means that over those ten minutes delta was positive by a hundred and something contracts. Somebody was buying and paying the spread, very much so.

That -239 was not describing the rise. It was describing the selling from twenty minutes earlier, still sitting inside it, because CVD is cumulative and carries everything since the last reset.

The level tells you where you are coming from. The slope tells you what is happening now.

And if you go back to the table from earlier, this case is not even a divergence: CVD rising, price rising, first row, normal, nothing to read. Effort and result added up.

It took me months to stop looking at the number and start looking at the tilt. If this piece saves you those months, it has done its job.

Two notes on this example, because I would be annoyed if nobody gave them to me.

These are two photographs, not a recording. They say the transition happened, not whether that ceiling was eaten or pulled.

And it was 12:20 in Europe, meaning US pre-market on the ES: thin book, few participants. Pulling size when there are few people around costs little, and the same read at 15:30 carries far more weight. Do not take the midday ruler and use it at the Wall Street open.

And the clean case of the third reason, the one where there really is nobody on the other side, I do not have in a single screenshot yet. When I capture it I will publish it. Better a hole I admit to than an example that proves something else.

The three traps, and all of them need saying

One. CVD depends on how it is calculated. Every platform decides in its own way how to classify fills, and the results are not identical. There is no “true” CVD and there is no best setting. What matters is knowing how your tool calculates it, and using one only. Comparing the CVD of two different platforms is like comparing two watches set by two different people.

Two. It is cumulative, so it depends on where it starts. A CVD starting at midnight and one starting at the cash open tell two different stories about the exact same afternoon. The absolute level means nothing: only the shape inside the window you chose matters. Pick one and keep it.

Three. On rollover days CVD is garbage. Volume splits across two contracts and the series stops making sense. It applies to volume, it applies to open interest, it applies here. Mark the quarterly rollover dates on your calendar and do not play doctor on those days.

And a note that concerns a lot of you: CVD is read on the future, where the volume is real and centralised. It is the structure I work with and I have always declared it: analysis on the future, execution wherever you trade. A CVD calculated on an instrument without centralised volume is not measuring what it thinks it is measuring.

“A sold rally”

Two words about this expression, which you will hear everywhere.

In the head of whoever says it, it means: price is going up but CVD is going down.

The fact itself can perfectly well be true. It is the conclusion they pull out of it, namely “so now it goes down”, that does not hold.

First, because it can be the third case: there is no aggressive selling, so CVD does not go up, but price goes up anyway because there is no supply.

Second, and more importantly: it is not an entry, because it does not tell you where to enter. An entry is a price. A divergence is not a price, it is a shape.

The line to take home

A divergence is not a signal. It is a question.

The question is “who is absorbing?”, and the answer is not on the CVD. It is on the book.

I look at the book in the DeepDOM.

Two lines of transparency, which feel owed: that above is an affiliate link. If you use it and subscribe I earn a commission, and you don’t pay a cent more.

If you look at the book and there is nobody there, the answer is “nobody”, and then there was nothing to see in the first place.

Used well, CVD is a confirmation that adds to a level you had already marked this morning. It is never the reason that level exists.

Which is also why, in my order of switching instruments on, CVD is the last one. Not the first.

What you do from tomorrow morning

Small homework and for a week you do not trade it, as always.

Mark down ten divergences. They do not need to be pretty, take the first ten you see.

For each one, at that same moment, look at the book and write one single word: was there real size on that level, yes or no.

Then wait and write down how it ended.

At the end separate the two groups and count them.

What almost always comes out is that divergences with size on the book and the ones without behave differently, and that the ones without are the majority.

After that homework you will never look at CVD on its own again, which is exactly the point. If you don’t have a place to keep the notes, the TradingBlog Diary is free and exists for this.

CVD measures who is in a hurry. The book shows who is standing still. Looking at only one of them is like listening to half an argument.

tradingblog.itPosta su X

Let me close with the thing that saved me the most money in this whole story.

It was not learning to read CVD.

It was stopping asking it for what it cannot know.

It tells you who was running. Who was standing still on the other side, and whether they were big, that has to be told to you by a different instrument.

When two different instruments tell you the same thing, that thing stops being your opinion.

Suerte Amigo!

Tiziano Brunno

Tradingblog

Want to put your market reading to the test?

Compete and challenge other traders inside an Arena in a demo environment, with no real capital at risk. Discover the Performance Arena Events by The Thunder Trader.

Discover The Thunder Trader →


Disclaimer: purely informational and educational content. It does not constitute financial advice or an invitation to trade. Trading involves the risk of capital loss.

Monumental wall of stacked glowing amber blocks emerging from the dark, its top sliced perfectly flat, with a faint scaffolding of light hovering above the cut like a job left half done

Poor high and poor low: the extreme that never finished the job

Hi trader,

I was shorting it with the face of someone who has understood everything.

Yesterday’s high, today’s high, same price to the tick. A textbook double top, the kind that makes people write “very strong resistance” with three exclamation marks in the Telegram groups.

Order in, stop above, off we go.

Price went through it like a knife through butter. Not even a pause out of politeness.

It took me years to understand that that high was not a resistance.

It was a job left half done.

First the name, which is already half the explanation

In the communities they call it a bad high and a bad low.

In the serious books the name is different, poor high and poor low, and it comes from Market Profile, the method Peter Steidlmayer developed at the CBOT in the Eighties to read the market as an auction instead of as a chart.

I use both names because you will hear both. But keep the second one in mind, because that is the one telling you the right thing.

Poor means poor, shabby.

Not “strong”, not “resistance”. Poor.

It is a badly made extreme, and the market usually comes back to make it properly.

Ok, vamos, let’s take it in order.

How an auction ends when it ends well

The market is an auction. It goes up until it finds someone willing to sell in size, it goes down until it finds someone willing to buy in size.

When an upside auction really ends, it does not end from tiredness.

And above all it does not end because price went “too high”. Get that idea out of your head, it does not exist: there is no such thing as a price that is too high in absolute terms, and whoever sells because “it has gone up a lot by now” finds that out the hard way, usually another two hundred points later.

It ends because price reaches the place where somebody actually wants to sell in size. There it finds serious sellers, and from there it gets rejected fast.

That speed leaves a mark, and it has a name: excess.

On the profile you see it as a spike sticking out: two or three very thin rows with very low volume, stuck on top of the fat body of the profile. In classic Market Profile those are the single prints of the tail, meaning prices that in the whole session only one thirty minute period traded.

The meaning is simple: almost nobody traded up there because price did not stay up there long enough to allow it.

It was pushed up, rejected, and brought back down.

That is a closed auction. The market asked the question, got the answer, turned the page.

Two session profiles side by side sharing the same body: on the left the upper extreme ends with three thin rows sticking out, the excess of a closed auction, on the right it ends squared off with three full rows aligned at the same price, a poor high
Two session profiles side by side. On the left the upper extreme ends with a thin tail sticking out, the excess, which is an auction that closed properly. On the right it ends squared off, with two full rows aligned at the same price, which is a poor high.

And how an auction ends when it ends badly

Now look at the profile on the right of the picture.

No spike. No tail.

The extreme is squared off, cut clean, with two or more full rows aligned at the same price. In Market Profile terms you would say two or more TPOs ending exactly there.

That high was not rejected by anybody.

Time simply ran out.

Bell rang, shop closed, and price was still up there trading happily at the high of the day. Nobody told it no. Its session just expired.

Which is why in English it is also called unfinished business.

And unfinished business, in markets as in life, sooner or later comes knocking.

The spike that gets you, because not all spikes are the same

This is where ninety per cent of the people who have just discovered volume profile fall over, and I fell over here too.

You see a thin band, you say “excess”, you lean a trade on it.

Three cases where it is not.

One. A spike in the middle of the profile is not an excess.

If the thin rows are in the middle, and not at the extreme, they have another name and another meaning: it is called an LVN, a low volume node.

It is not a place where somebody rejected the price. It is a place where price raced through without anyone wanting to negotiate.

It is a corridor, not a wall. And the operational consequence is the opposite: on an LVN price tends to slide fast, not to stop.

A session profile with two thin bands highlighted: the one at the top, in amber, is an excess and marks rejection, the one mid body, in blue, is a low volume node and marks a fast transit area
A single session profile with two thin zones highlighted. The one at the upper extreme is excess, meaning rejection. The one mid body is an LVN, meaning a fast transit area. Same shape on the chart, opposite meaning.

Two. An excess without speed is not an excess.

The spike counts if the bar that created it moved fast. Rejection means violence, it means price came back in a hurry.

If those thin rows formed over twenty minutes of price floating around, you did not see a rejection.

You saw stagnation with few trades, which is another thing entirely and gives you no rights.

Three. At night, spikes are worth nothing.

On futures the overnight session, and illiquid instruments in general, produce thin bands by the bucketload.

Not because somebody rejected those prices, but because nobody was there.

It is a skinny profile because the shop was empty, not because the goods were unappealing. Whoever reads those bands as rejection levels is reading the closing time and mistaking it for information.

And now the part that counts: what you do with it

Here I have to give you the uncomfortable news, the one that will probably annoy you about this piece.

A poor high is not a level to trade against.

The reasoning is straightforward, follow it.

The auction up there did not close. There was no rejection. Nobody defended that price.

So that price, far more than a wall, is a target.

A place where the market has a job to finish, where above it there are stops leaning from everyone who believed the double top, and where to get there it does not have to break any defence because the defence never existed.

That is exactly my short from the beginning: I had stood in front of a target thinking I was behind a wall.

And the operational translation is this, in two lines.

On a poor high you do not short aggressively. If you really do have a bearish idea, you do not play it there.

On a poor high, if anything, you bring a target. If you are long and above you there is a squared off high, you have one more reason not to close too early.

And above all: it is context, it is not a signal.

Nobody enters the market because they saw a squared off profile. It tells you what kind of ground you are walking on, it does not tell you to click.

The trigger stays the one you already have: how price reacts when it gets there. It gets there, slows down and reacts, or it goes straight through without even slowing down. That is the answer, and it always comes after, never before.

If you read the two order flow pieces from the last few weeks, you already have the microscope for that moment: in the bid/ask candles you see who is trading at the level, and with absorption and exhaustion you work out whether anyone is actually defending it.

The profile tells you how the auction ended at that price. Order flow tells you who is there now.

They are two different questions about the same spot on the chart, and that is why they go well together.

The percentage I am not going to give you

At this point of the conversation, live, they always ask me the same question.

“Ok Tiziano, but how often does a poor high get retested?”

And here I am going to tell you something that is not what you want to hear.

I don’t know.

I mean: there are numbers floating around, I have read them too, and I promise you that whoever fires them at you is not telling you on which instrument, in which years, on which timeframe and with which definition of “retested” they measured them.

Because the truth is that it all changes. It changes between ES and DAX, it changes between a full session and a thin August one, it changes depending on whether you count the touch to the tick or the genuine break.

A statistic you don’t know how it was built is not a number, it is an elegant way of guessing.

So the serious answer is: measure it on your market and in your hours.

You need very little. Every time you find a squared off extreme at the end of the day, you write it down. Then you write down whether price came back to it in the following days, and whether it took it out or not.

After thirty observations you have a percentage of your own, on your own instrument, and it is worth a thousand times the one from some guy on the internet. And above all you know how you counted it.

If you don’t have a place to keep these notes, use the TradingBlog Diary: it is free, it was built exactly to record observations and not just trades, and it saves you from the fate of every statistic done from memory, which is to confirm precisely what you already believed.

What you do from tomorrow morning

Small homework, as always. And for a week you do not trade it.

Turn the profile on for the session of the market you follow, and every evening look at the two extremes, the high and the low.

Then write one single word for each: tail, if the spike sticks out and it was born from a fast move, or squared, if it is cut clean.

That is all. No orders.

After two weeks open your notes and look at what happened the next day to the “squared” ones and what happened to the “tail” ones.

You need nothing else to build a view that is yours, and to stop having to take my word for it.

A high that nobody defended is not a resistance. It is a job left half done, and the market always comes back to finish its jobs.

tradingblog.itPosta su X

I want to close on something that goes well beyond the profile.

For years I looked at charts hunting for walls. Levels that hold, prices that reject, textbook resistances.

The day I started asking myself “this extreme, how was it formed?” instead, half of my levels disappeared from the map.

And it was the best thing that could have happened to my account, because those levels were not holding before either.

I just didn’t know it.

If this was useful, send it to that friend of yours who shorts every double top because “it’s a double top”. You’d be doing them a favour, and you might save their day.

Suerte Amigo!

Tiziano Brunno

Tradingblog

Want to put your market reading to the test?

Compete and challenge other traders inside an Arena in a demo environment, with no real capital at risk. Discover the Performance Arena Events by The Thunder Trader.

Discover The Thunder Trader →


Disclaimer: purely informational and educational content. It does not constitute financial advice or an invitation to trade. Trading involves the risk of capital loss.

Vertical wall of glowing amber blocks resembling a volume profile, crossed by a completely empty band through which a streak of light races without meeting any obstacle

Absorption, exhaustion, imbalances: how you pick the price of your order

Hi trader,

there is a precise moment when trading stops being a quiz and becomes a craft.

It is when you stop asking yourself “is it going up or down?” and start asking “what price do I put my order at, and where do I pull it if I got it wrong?”.

The first one is a bar-room question. The second one forces you to pick a number, and a number you can either defend or you can’t.

In the previous episode we opened the candle up: volume at every price, who was aggressive, the delta. That was the view.

Today we close the series from the other side, the one that matters: how you read a level, and above all why the level sits right there and not two points further along.

At the end I’ll show you two screens of mine, real ones, from two different days.

Absorption: all that effort, no result

Start here, it is the most important concept in the whole series.

Absorption means that a mountain of aggressive volume hits one price from one side, and price does not move on in that direction.

On the footprint you see it like this: one or two cells with numbers off the scale compared to their neighbours, concentrated on a handful of levels, and the bar that does not extend beyond. Often it even closes on the opposite side.

Remember the rule from episode 1? If a cell prints 800 at the ask, it means there were 800 contracts sitting there passively for sale at that price, and somebody took the lot while paying for the hurry.

Now flip that sentence around.

If price did not rise after those 800, that passive seller won the exchange. They sold everything thrown at them and kept restocking the counter as fast as it was bought.

It is the scooter being pushed uphill we talked about. You push like mad, you don’t move: the problem is not the push, it is the weight on the other side.

Side by side comparison: on the left a classic candle with only the open, high, low and close labels, on the right the same bar broken down into nine price levels with the volume traded at the bid and at the ask
Two groups of candles with the exact same buying aggression in the middle bar. On the left the next bar moves on, the effort produced the result. On the right the next bar does not move on and closes lower: someone was selling everything.

And now the uncomfortable part

That picture has a third possibility it cannot tell apart.

Huge volume and price standing still can mean two opposite things:

a large passive side that is holding, and price turns;

or a large passive side that is about to run out of ammunition, and that is where the breakout starts.

They are the same image. Identical. There is no threshold, colour or indicator that separates them in real time, and anyone telling you otherwise is selling you something.

Absorption and exhaustion can only be recognised with certainty after the fact.

That is not bad news, it is the most useful thing in this piece, because it tells you where the information actually is: not inside the cell, in what price does immediately after.

Huge volume and price standing still is a question, not an answer.

The answer comes from the bars that follow. If price turns, that passive side held and the level worked. If instead the level gets crossed with volume behind it, that passive side had run out, and what you were looking at was not a wall but the start of a move.

That is why the event on its own is worth nothing and the reaction to the event is worth everything. It is the same reason a big isolated cell tells you nothing, while the same cell followed by three bars that cannot get past it tells you plenty.

Exhaustion: the move continues, the fuel does not

Exhaustion is another thing entirely and has to be kept separate, because the two get mixed up constantly.

In absorption there is a lot of aggression producing no movement. In exhaustion there is little aggression still producing movement.

The first is a wall. The second is fuel running out.

On the footprint you recognise it by the cells thinning out as price gets closer to the extreme. The first bars of the push have numbers of 300, 400 contracts. The last ones have 20, 30. Delta stays positive, but it is a thinner and thinner positive.

Price is still rising, but it is doing it with almost nobody left.

Anatomy of a bid/ask candle with five numbered callouts: the price column, the volume traded at the bid, the volume traded at the ask, the point where buying dries up and the most traded row of the bar
Four rising candles with the cells thinning out towards the extreme, from 300-400 contracts down to 20-30, and delta still positive but smaller and smaller. The move continues, the fuel does not.

Careful here too: a thinning push can restart a minute later if new people show up. It is telling you that whoever brought price this far is nearly done, not that it now goes down.

Imbalances, and why you read them diagonally

An imbalance is a cell where one side beats the other by a mile.

Easy so far. The point almost nobody explains is that the comparison is NOT horizontal.

The ask at a given price is compared with the bid one tick below. Diagonally.

The reason is a good one, and it is the reason this stuff makes sense at all. At the moment those two trades happened, those two prices were the two sides of the same spread: best bid and best ask are one tick apart. Whoever was buying aggressively up there, the seller who could have countered them was the one waiting one tick below.

Comparing the two numbers on the same row instead compares two different moments, when the market was on two different sides. Two teams that played on different days.

The diagonal comparison puts back on the pitch the ones who actually faced each other.

Three panel sequence showing the order book before and after a 120 contract market buy order arrives, with the table of who consumes what and which column the volume ends up in
On the left the diagonal arrows linking the ask at one price with the bid one tick below, that is the two sides of the same spread. On the right the same grid with the horizontal arrow crossed out: those two numbers never faced each other.

The threshold is not a law of nature

When a cell beats its diagonal counterpart by a lot, the platform colours it for you. How much “a lot” is, you decide.

No exchange defines it. There is no standard, and the platforms do not agree with each other.

On Sierra Chart, which I used for years, the thresholds are yours: you set them as a percentage or as absolute volume, across several colour bands.

On DeepCharts by Volumetrica, which is what I use now, the threshold is changed in the footprint candle parameters.

Two lines of transparency, which feel owed: that above is an affiliate link. If you use it and subscribe I earn a commission, and you don’t pay a cent more.

The value that circulates most as a default is three times the opposite side, but that is common practice, not law.

And the consequence is heavy: change that number and the signals on your screen change. Anyone showing you a footprint full of imbalances without telling you the threshold it is set to is showing you an option of theirs, not market data.

Then there is the filter almost everybody forgets to switch on: a minimum volume for the cell to count. Without it, 3 against 1 is a 300% imbalance and means nothing. There is even a setting that decides whether a level with zero contracts on one side should count as an imbalance: with that on, 40 against 0 becomes an infinite imbalance, and half your chart lights up.

When instead you find three or four consecutive levels imbalanced on the same side, stacked imbalances, that is a more solid trace: it means the aggression was not an isolated hit, it walked through several prices in a row.

Three panels with the total volume, the delta and the most traded price of a bid/ask candle, each with the question it answers
Four consecutive levels with the imbalance on the same side, and next to it the parameters panel: 300% threshold, minimum 3 levels, minimum cell volume 20. These are your settings, not a standard: change them and the signals change.

Delta that does not follow

Last tool, and the most abused in the business.

Price makes a new high, cumulative delta does not: it stays below its previous peak. It is called divergence, and online it is sold as the signal that gets you the tops.

It is not.

No published study shows that this pattern predicts reversals. I am writing it here because this is where I lose a few readers, but I would rather lose them now than watch them go short on a divergence.

What a divergence does, and does well, is send you to look at a specific place.

Three bid/ask candles side by side with very different deltas: the bought rally, the rally with negative delta and the bar with huge volume and price going nowhere
Price making a new high and, lined up below it, the cumulative delta curve that does not. With the warning in plain sight: no published study shows that this pattern predicts reversals, it is a question to ask the level, not an entry.

And there is a second reason never to read delta on its own: the same imbalance moves prices differently depending on how much liquidity it finds in front of it. On a thick book it moves price by a few ticks, on a thin book by far more. Microstructure has measured it: for the same flow, the impact grows the thinner the wall is.

Delta is not read on its own. It is read divided by how thick that wall was.

The three outcomes of a level

Let’s put it all on the table. When price arrives at a level you marked, there are three possible endings in front of you, not two.

Rejected. It arrives, finds people ready on the other side, the aggression fades as it climbs, the cells thin out, price turns. That is the scenario you had in mind.

Eaten. It arrives, finds people ready, and eats the lot: stacked imbalances going straight through the level, and price coming out the other side with volume behind it. The level was not a wall, it was a door.

False move. It arrives, pokes through slightly, the volume beyond the level is laughable and price comes straight back. Someone pushed just enough to go and collect the orders sitting there.

The footprint does not tell you which of the three it will be. It tells you which of the three just happened, while to the naked eye they all looked the same.

And now the real question, the one holding up everything else.

Why the level sits right there

Let me show you a screen of mine from August 4 on the S&P. There is no order, there is no position. It is a demonstration, and it is the thing that convinced me more than a thousand explanations.

On the right the chart, with a purple box drawn by the most trivial rule there is: three candles, price runs, and between the first and the third a gap is left that nobody covered. In English they call it a fair value gap, in Italian an unfilled imbalance. That box sat between 7,755 and 7,760.

On the left, on the same price scale, the session volume profile. That is, how many contracts went through at every single price.

And in there, between roughly 7,755.6 and 7,759.4, the profile is not there. A hollow notch. Above it, right above the box, the biggest volume node of the day. Below, the profile starting to fill in again.

Schematic of the NQ case of 29 July 2026: on the left the chart with the imbalance zone and its midpoint at 27,797, on the right the order book map with the band of sell orders just above, plus the entry, stop and target levels
ES, August 4, 2026. On the right the chart with the imbalance area highlighted as a single band between 7,755 and 7,760, with no internal levels. On the left the session volume profile, with the void almost exactly in the same band and the largest volume node just above. Two tools that do not talk to each other point at the same range. Diagram redrawn from the real screen.

Stop a second on what that means.

The box comes from a rule about candles. The void comes from counting contracts. Neither knows the other exists. They are two independent measurements of the same five point range.

They are not two clues that agree. They are the same thing with two different names.

And this is where the gap on the chart stops being a fashionable drawing and becomes something you can defend: almost nobody traded in there. There is no merchandise resting, nothing to slow price down. Price ran through and did not stop to do business.

Everything else follows naturally.

Price runs back through it fast, because it meets no obstacles. And the point that offers the least resistance of all is the centre of the void, where the profile is thinnest.

That is why those bands deserve a mark on the chart, while a thousand other lines drawn by eye do not.

A real case: ES, August 7

Now the same thing with a trade in it. I’ll spare you the details of how it is built, that is not today’s point.

August 7, S&P 500, early afternoon.

Price had risen, then started to pull back. Inside the pullback there was an empty area like the one before, and that is where my level was, on the buy side.

And I’ll tell you what I am not telling you as well, so we are even.

It was not only the void in the profile landing on that price. Two other things landed on top of it, my own stuff, measured over years on my markets, and that is the reason the order ended up exactly there and not one point lower.

I can’t put that part in a free article, and not because it is a secret. Because pulled out of the reasoning around it, it becomes yet another little rule to copy, and copied little rules last three stops.

Order at the level. Stop below the whole area, not just below the entry: if price had eaten that entire band, the reading was wrong and the trade had no reason left to exist. Target at the first obstacle above.

Outcome: filled, target taken, +10.25 points in about twenty minutes. After the exit price went a bit higher still, and that is fine: the target sat on the obstacle, not on my wishes.

So far it is a trade like many others. The useful part is somewhere else.

Price went under before it worked

Six minutes after getting in, price dropped almost five points below me. It made its low there, and only then turned back up.

Reconstruction of a bid/ask candle on the level: going up, the volume traded at the ask falls row after row while the volume at the bid increases
ES, August 7, 2026. The area shown as a single band, with no internal levels, the entry line inside the area, the stop resting below the whole area and the target above. Six minutes after entry price drops almost five points below, grazes the margin but not the stop, then turns and reaches the target. Overlaid, the dashed line of a tight stop just below the entry: that one would have been hit. Diagram redrawn from the real chart.

Look at what that means, because it is the most useful thing in the whole piece.

With the stop where it was, that low did not even come close: there was margin left.

With a “tight and clever” stop resting just below the entry, that trade would have been a loss. The exact same trade that made +10.25.

A tight stop is not a more careful trade. It is the same trade with a higher chance of losing.

And if that distance is too much for your account, the answer is not to tighten the stop: it is to reduce the size, or to let that trade go. On futures there is then a second ceiling, the broker’s margin, which cuts your size even when risk would say yes. If you want to run both calculations together in ten seconds I have just put the futures position size calculator online, it is free and it also tells you when it is worth switching to the micros.

What you do from tomorrow morning

Same as episode 1, the homework is small and for a week you do not trade on this.

Take a future you follow, turn on the session volume profile and hunt for the gaps: the bands where the profile thins out until it disappears. Mark the centre, which is the poorest point.

Then wait for price to come back to it, and write down a single word: rejected, eaten, or false move.

No orders. Just the word.

After twenty levels you will have something no course can give you, namely how many of your levels actually hold and how many were decoration. If you don’t have a place to keep the notes, use the TradingBlog Diary, it is free.

And I’ll close the promise I left open last week: the twin order on ES on July 29 was never filled, price reached the level, turned there and left without me. The reason fits in one line: a limit order does not get filled because price touches your price, it gets filled if somebody trades through it in enough quantity to clear the queue in front of you. It happens, and it will happen to you too.

You don’t pick a level with a ruler. You pick it where two different things tell you the same price.

tradingblog.itPosta su X

With this we close the order flow series.

And I’ll leave you with the thing that taught me the most across these two pieces, which is not a pattern and not a tool either.

The gap on the chart and the gap in the volume are the same thing. The wall on the book and the cells fading out are the same thing. When two tools that do not talk to each other give you the same number, that number stops being your opinion.

That is where you stop guessing.

If this was useful, send it to that friend of yours who draws purple boxes everywhere without ever checking whether there is a void underneath. You’d be doing them a favour.

Suerte Amigo!

Tiziano Brunno

Tradingblog

Want to put your market reading to the test?

Compete and challenge other traders inside an Arena in a demo environment, with no real capital at risk. Discover the Performance Arena Events by The Thunder Trader.

Discover The Thunder Trader →


Disclaimer: purely informational and educational content. It does not constitute financial advice or an invitation to trade. Trading involves the risk of capital loss.

Glass candlestick split open revealing an inner ladder of glowing cells, blue on one side and amber on the other, bid/ask candle concept

Bid/ask candles: what a normal candle doesn’t tell you

Hey trader,

when I started out I was chasing patterns.

Basic technical analysis, the textbook stuff: engulfing, pin bars, hammers, dojis. I spent my evenings hunting for them on charts and marking them with a highlighter, convinced the whole job was in there. You find the shape, you get in, done.

Then the shape shows up, you get in, and price goes the other way.

It took me years to work out why. And I didn’t get there on my own: I was lucky enough to meet some teachers, and since I rarely mention them I’m naming them here once and for all, because it feels right. Enrico Stucchi and Gianluca Salvatori. They handed me market concepts I had never found in books, and not even in the courses going around back then.

The biggest one of all is also the simplest to say, and it took me a while to digest.

A pattern is not a cause. It’s a drawing that stays on the chart AFTER things have happened. And those things, inside the candle, you are not looking at.

Take the big green candle that makes you want to applaud, long body and short wicks. Beautiful. But inside, at the last prices up top, who was really buying? How many were walking out right as you were walking in?

The normal chart doesn’t show you that stuff. Today I’m showing you a candle cut open.

Four numbers, and that’s it

A classic candle gives you four numbers: open, high, low, close. If you’re lucky, the total volume of the bar. The end.

It’s the final score without the box score. 3 to 1. Ok, so what?

You don’t know who scored, you don’t know when, and above all you don’t know who played better.

Try asking a candle the real questions.

At which price, inside that bar, did most of the trading happen? It doesn’t know. A 20 point bar can have half its volume crammed into the lowest three points, or spread out evenly: two completely different markets, drawn identical.

Who was aggressive, and at which prices? It doesn’t know.

Had the push already died out before the close? It doesn’t know that either.

Side by side comparison: on the left a classic candle with only the open, high, low and close labels, on the right the same bar broken down into nine price levels with the volume traded at the bid and at the ask
The same candle, two different pieces of information. On the left, four numbers. On the right, the volume traded at every single price, split between who was aggressive buying and who was aggressive selling.

And here’s the line to take home, even if you stop reading right now.

The color of the candle tells you where it ended up, not who won.

tradingblog.itPosta su X

How a bid/ask candle is built

Let me explain, we start from zero.

Take the same bar and instead of drawing it as a rectangle, split it by price levels: one row per tick, or per group of ticks if the market is wide.

Two numbers end up on every row: on the left the volume traded at the bid, on the right the volume traded at the ask. That is, how many contracts went through hitting the demand and how many went through hitting the offer.

Careful, some platforms swap the columns: check the header before you read the numbers.

The jargon calls it footprint, but on plenty of platforms the menu says something else entirely: Numbers Bars, Volumetric Bars, Cluster, Order Flow Analyzer. The reason is trivial, “Footprint” is a registered trademark and it isn’t everybody’s. So if you go looking for that word and can’t find it, it’s not that you don’t have it: it’s that over there it goes by another name.

Anatomy of a bid/ask candle with five numbered callouts: the price column, the volume traded at the bid, the volume traded at the ask, the point where buying dries up and the most traded row of the bar
Anatomy of a bid/ask candle: the price column, the two numbers on each row with numbered callouts, and next to it the exact same bar as you see it on the normal chart.

Passive and aggressive

There are two ways to be in the market, and this is where everything gets decided.

There’s the one who puts a limit order away from price: they name the price they want and they wait, and until the market comes to them nothing gets executed. And there’s the one who sends a market order: they don’t name a price, they say now, and they pay the spread just to get in.

The bid/ask candle counts who paid to be in a hurry.

Whoever buys at market takes the price of whoever is selling, meaning they hit the ask, and that volume ends up in the ask column. Whoever sells at market hits the bid, and ends up in the bid column.

Whoever leaves a limit sitting there waiting doesn’t end up in those columns as the aggressor. They end up there as the counterparty.

Three panel sequence showing the order book before and after a 120 contract market buy order arrives, with the table of who consumes what and which column the volume ends up in
How a number is born inside the cell. Before: 180 contracts to sell sitting on the ask, waiting. Then a market buy order for 120 comes in. After: 60 are left on the ask, and the cell lights up ask 120. 120 bought, 120 sold. The same ones.

The line that separates who understood from who repeats

Careful here, because almost everybody out there gets this wrong.

Every contract traded has a buyer AND a seller. Always, by construction: the two quantities are identical by definition. What can be different is how many there were on each side, and above all who moved first.

So those two numbers do NOT say “there were more buyers than sellers here”. That sentence means nothing.

They say who took the initiative, and who was on the receiving end.

A cell printing 340 at the ask means this: 340 contracts bought by someone in a hurry, against 340 sold by someone who was already sitting there in the queue with a limit.

Every big number tells two stories at once, the one who pushed and the one who held. The footprint doesn’t tell you who was right: it tells you they were both there.

Delta, in two minutes

At the bottom of the candle there’s the totals row, and it’s the first one you look at.

Three panels with the total volume, the delta and the most traded price of a bid/ask candle, each with the question it answers
The row at the bottom of the candle answers three different questions: how much traded in total, who was in more of a hurry (the delta), and at which price almost everybody stopped.

Delta is a subtraction: volume at the ask minus volume at the bid.

Positive, and inside that bar the net aggressive initiative was on the buy side. Negative, and it was on the sell side. It does not mean “more buyers” (see above) and it does not mean “now it goes up”.

I’m repeating it because it’s the most widespread legend in this business. Delta measures the effort, price measures the result, and delta is already inside price: when the cell exists, those contracts have gone through and price has already reacted.

The interesting part is when the two don’t match. Big positive delta and price that won’t go up a single tick: somebody is calmly selling everything that lands on them. Or the other way round, aggressive selling flat out and price nailed to the spot.

Effort against result: if you push a scooter uphill like a madman and you don’t move forward, the problem isn’t the push, it’s the weight on the other side.

Same family as GEX: price moves because of people forced to buy and sell behind the scenes, and on the chart you only see the effect.

Three bid/ask candles side by side with very different deltas: the bought rally, the rally with negative delta and the bar with huge volume and price going nowhere
The same instrument tells three different stories: the rally that was bought, the rally where the aggressive side was selling, and the bar with huge volume that doesn’t move a single tick. Delta is not a signal, it’s a question.

And now the handbrake.

A divergence, on its own, is not an entry. Delta sends you to look at a level, it doesn’t tell you to click: the level has to be there already, decided beforehand and for other reasons.

The uncomfortable bit: all this needs futures

Now the honest part, the one that might cost me a few readers. Never mind.

The bid/ask candle rests on one thing only: real traded volume, with the aggressor’s side attached to it.

On CME futures (ES, NQ and company) it’s all there. A single centralized order book, official volume in contracts, and above all the aggressor’s side, which the exchange publishes inside the data feed. It isn’t a platform estimate, it’s a figure declared by the exchange. With one exception: in auctions, like the open, the orders all cross together and nobody hits anybody. That volume ends up in the candle with no side, and the first bar after the open doesn’t read like the others.

On spot forex, no. There’s no single book, every broker sees only its own slice, and the aggressor’s side has to be guessed with rules that get it wrong, and get it wrong more often precisely on the big trades.

On CFDs it’s worse still. Your broker is not an exchange: what you see as volume is almost always tick volume, a counter of how many times price moved, not of how many contracts went through.

The practical rule is blunt: you analyze on the futures, you execute where you have the account. And if you don’t have futures data, don’t pretend you have the footprint: better nothing than a fake number.

But “better nothing” doesn’t mean going in blind. If you trade CFDs, at least keep in front of you the numbers that come out of the futures anyway: imbalance, COT, areas of interest on DAX, ES, NQ and Dow. I put them inside Thunder Desk, it’s free, and it’s the way not to go in blind on an instrument that copies a market you’re not even watching.

All the more so because the index is also moved by things that never show up on your chart, like options expiring the same day.

A real case: NQ, July 29

Let me show you how you read a level. How you read it, not how you pick it: that’s the whole of part 2.

July 29, Nasdaq.

On the chart I had a level at 27,797, coming out of an imbalance area, a gap price left behind while it was running and hadn’t gone back through yet. On its own, it’s a number on a chart. There are a thousand of them.

Then I looked at the order book. Above, at 27,800, there was a thick band of sell orders. Sitting there for minutes.

Two different tools, the same price.

That’s the heart of this piece. Not “the footprint gives the signal”, but two things that don’t talk to each other pointing at the same number.

Limit sell with two contracts at 27,796.88, just under the wall. Stop at 27,880.50, behind another big row further up, not at a distance picked with a ruler. Target 27,709, leaning on a band of buy orders.

Outcome: filled, the first contract covered along the way and the second carried all the way to the full target. +87.88 points on the contract that made it to the end, +152.76 adding the two together.

Schematic of the NQ case of 29 July 2026: on the left the chart with the imbalance zone and its midpoint at 27,797, on the right the order book map with the band of sell orders just above, plus the entry, stop and target levels
NQ, July 29, 2026: the same price flagged by two tools that don’t talk to each other. On the left the chart with the imbalance area, on the right the band of sell orders sitting just above. Diagram redrawn from the real chart.

And the bar that touches that level is the place where you need to open the bid/ask view. What you want to see, on the way up towards the wall, is the aggressive buying dying out row after row and the bid growing: the push that ends before the top. If it’s there, the wall is real. If it isn’t, that level is just a number.

I have the bid/ask view on DeepCharts by Volumetrica, where it’s called Order Flow Analyzer, while the liquidity map lives in the DeepDOM. Two different things, two different names.

Two lines of transparency, which feel owed: those above are affiliate links. If you use them and subscribe I earn a commission, and you don’t pay a cent more.

Reconstruction of a bid/ask candle on the level: going up, the volume traded at the ask falls row after row while the volume at the bid increases
The bar on the level, opened row by row: on the way up towards the wall the volume hit at the ask dies out and the one at the bid increases. Teaching diagram, the numbers are there to show the shape, they are not a printout of the order book.

Now the part almost nobody shows you.

Same day, same reading, I had the twin on the ES. The level was there, the order was there. It never started, it never got filled, full stop.

Why, we’ll see in the next part.

What you do from tomorrow morning

The homework is small, and that’s exactly why you should take it seriously.

For one week, you don’t trade this stuff. Zero.

Open the bid/ask view on a future you already follow, look only at the points where price turned, and at every turn ask yourself four questions.

Card with the four questions to ask a bid/ask candle before even thinking about an order
The four questions to ask every bid/ask candle, before you even think about an order: where most of the trading happened inside the bar, who was aggressive and at which prices, whether the push died out before the end of the candle, and whether price moved as much as the volume that went through deserved.

Then write your readings down, and write them BEFORE you know how it ends: with hindsight we’re all right. If you haven’t got a place to put them, use the TradingBlog Diary: it’s free, and you end up with a log of your readings instead of your memories. Which never match 🙂

In the next part we open the operational drawer: absorption, exhaustion, stacked imbalances and the delta that doesn’t add up. That is, how you go from “I get what I’m seeing” to “I know which price I put my order on”. Here it is: absorption, exhaustion and imbalances, that is how you pick the price of your order.

Knowing how to read a bid/ask candle won’t make you a single euro. It takes away your excuse for saying the market has gone crazy. It never goes crazy: it’s us, staring at the colored rectangle and telling ourselves the comfortable story.

I’ll stop here. If you know a trader who gets in on big green candles because “they’re nice and full”, send them this piece. It costs you nothing, and it saves them from making a fool of themselves the way I did.

Suerte Amigo!

Tiziano Brunno

Tradingblog

Want to put your market reading to the test?

Compete and challenge other traders inside an Arena in a demo environment, with no real capital at risk. Discover the Performance Arena Events by The Thunder Trader.

Discover The Thunder Trader →


Disclaimer: purely informational and educational content. It does not constitute financial advice or an invitation to trade. Trading involves the risk of capital loss.