Skip to content
GetProfitable
Search

Aggression, and why price moves when liquidity is consumed

Lesson 2 · about 10 min

The last lesson ended with a claim: price moves only when market orders consume every resting order at a level. This lesson works through what that means in numbers, because once you see the arithmetic you stop thinking of price as something that "goes up on buying" and start thinking of it as the result of a contest between size that waits and size that acts.

A worked sequence

Start with this book. Each row shows resting size at the price.

   Bid | Price   | Ask
  -----+---------+-----
       | 5001.00 | 300
       | 5000.75 | 120
       | 5000.50 |  80
       | 5000.25 |  60  <- best ask
   150 | 5000.00 |      <- best bid
   200 | 4999.75 |

Now a series of market orders arrive. Track what happens.

Step Order Fills Best ask after Last print
1 Buy 30 market 30 at 5000.25 5000.25 (30 left) 5000.25
2 Buy 50 market 30 at 5000.25, 20 at 5000.50 5000.50 (60 left) 5000.50
3 Sell 40 market 40 at 5000.00 5000.50 5000.00
4 Buy 60 market 60 at 5000.50 5000.75 (120 left) 5000.50
5 Buy 100 market 100 at 5000.75 5000.75 (20 left) 5000.75
6 Buy 25 market 20 at 5000.75, 5 at 5001.00 5001.00 (295 left) 5001.00

In six steps the aggressive buyers bought 265 contracts and lifted price three ticks. Notice step 5: 100 contracts of buying, the largest single order, and price did not move because the level had 120. Then step 6, only 25 contracts, and price ticked up because it finished the level. Volume and price change are related but not the same thing. What moves price is aggression relative to the liquidity available at that price.

Aggression is measured, not guessed

Because every trade happens at either the bid or the ask, we can classify every print:

  • A trade at the ask was initiated by a buyer (they lifted the offer).
  • A trade at the bid was initiated by a seller (they hit the bid).

Add up contracts traded at the ask, subtract contracts traded at the bid, and you get delta. In the sequence above, buyers lifted 265 and sellers hit 40, so delta over the six steps was +225. Module 3 builds a whole toolkit around this number. For now, know that it exists and that it is a direct measurement of who was aggressive.

Why more aggression is not always more movement

Two sessions can have identical delta and very different price outcomes.

Session Buy aggression Sell aggression Delta Liquidity offered above Price change
A 4,000 2,500 +1,500 Thin (avg 60 per level) +12 ticks
B 4,000 2,500 +1,500 Thick (avg 400 per level) +2 ticks

Session B's buyers were just as aggressive but they ran into far more passive selling. This is the situation that produces some of the most useful reads in order flow: heavy aggression with little price progress means someone large is absorbing it, and that is covered in Module 2.

Key idea: Price change = aggression ÷ liquidity. Big aggression into a thin book moves price a long way; the same aggression into a thick book barely moves it. You need both sides of the fraction to understand a move.

Where the liquidity goes

When aggressive buyers consume the offers at 5000.25, those sellers are gone. But books refill. Three things happen after a level is cleared:

  1. New sellers place limit orders at the new best ask, often at prices they consider good value.
  2. Some of the sellers who were just filled at 5000.25 re-offer higher.
  3. Buyers who were passive at 5000.00 now see they will not be filled and either chase (market buy) or move their bids up.

This is why a single burst of aggression rarely produces a clean straight line. The book replenishes, aggression pauses, and price consolidates until the next imbalance between aggression and liquidity appears.

Slippage is this in miniature

If you send a market order for 150 contracts into the book above, you take 60 at 5000.25, 80 at 5000.50 and 10 at 5000.75. Your average fill is:

(60 × 5000.25 + 80 × 5000.50 + 10 × 5000.75) ÷ 150 = 5000.42

You "paid" 0.17 points, or almost a tick, above the best ask before you sent the order. That is slippage, and it is caused by the same mechanism that moves price: your own aggression consumed liquidity. Retail traders trading one or two contracts on a liquid product rarely experience this; the mechanism still governs what large participants can and cannot do, which is why they split orders, work them passively, or hide them, as we will see in lesson 4.

Try it: Take the starting book at the top of this lesson and run your own sequence: Sell 100 market, Sell 80 market, Buy 20 market, Sell 200 market. Write down the best bid after each step and the total delta at the end. Check that price moved down exactly when a bid level was fully consumed and not before.

Recap

  • Price ticks only when the last contract at a level is consumed; a large order that leaves size behind does not move price.
  • Trades at the ask are buyer-initiated; trades at the bid are seller-initiated. Their difference is delta.
  • Price change depends on aggression relative to available liquidity, not on aggression alone.
  • Books refill after a level is cleared, which is why moves come in bursts and pauses.
  • Slippage on your own market orders is the same mechanism at small scale.

See it drawn

Original diagrams for the ideas on this page. Illustrative, not real market data.

Bid-ask spread in an order bookSell orders stacked above buy orders with a gap between the best of each.SELLERS (asks)50.0690050.051,40050.0460050.011,10050.002,30049.99800spread = 0.03BUYERS (bids)
The bid-ask spread. Buy orders sit below, sell orders above, and the gap between the best bid (50.01) and best ask (50.04) is the spread you pay to cross. Bar length shows the size resting at each price.
How a call option's delta changes with the underlying priceAn S-shaped curve rising from zero, passing through about a half at the strike, and flattening near one.Delta of a call option1.000.5008090110120Out of the moneyAt the moneyIn the money1.00 means it moves one-for-one with the stockdelta ≈ 0.50 at the strikeStrike 100Underlying price
Delta across the range of prices. Delta says how much a call's price moves for a one-point move in the stock. Far below the strike it is near 0 and the option barely reacts; at the strike it is about 0.50; far above it approaches 1 and tracks the stock.
Slippage on a market orderA buy order clears four price levels, so the average price paid is worse than the price first quoted.Buy 1,000 shares at marketpricesell orders resting (bar length = size)20.04300 shares20.03200 shares20.01200 shares20.00300 sharesnothing resting at 20.02order sweeps up the bookaverage fill 20.02SLIPPAGE0.02 a share$20.00 in totalintended 20.00Each level fills at its own price; the average is what you really paid.
Slippage on a market order. You click at 20.00, but only 300 shares are resting there, so the rest of the order fills at 20.01, 20.03 and 20.04. The average price paid is 20.02, and that two-cent gap is slippage.