Skip to content

Order flow

Measure buyer- and seller-initiated trade flow, interpret signed volume, and distinguish executions from order submissions, cancellations and book imbalance.

Order flow is the stream of trading instructions and activity reaching a market. In trade-based research, it often means the sequence of executed trades, classified by the side that initiated them. A quant uses that signed flow to measure liquidity-taking pressure, interpret execution conditions and study subsequent price responses. The event population and measurement window are part of the definition.
Every execution has both a buyer and a seller. A buyer-initiated trade means the buyer took available selling liquidity; a seller-initiated trade means the seller took available buying liquidity. These labels identify the aggressor. They do not mean that buying occurred without selling, or that shares were created.
Aggressiveness is about what the order does. A market order normally seeks immediate execution, but a marketable limit order can also take liquidity. The order-type label alone does not establish a trade's sign.

Measuring a window of trades

Consider one synthetic stock on one venue over a 60-second window: strictly after the start time and up to and including the end time. Assume the corrected, complete tape contains only the four continuous-trading executions below, each with a known aggressor. Quantities are shares, counted once per execution.

Seconds after startAggressorExecuted sharesSigned shares
1Buyer70+70
2Seller30−30
3Buyer50+50
4Seller50−50
Let BB and SS be buyer-initiated and seller-initiated volume within that window. Signed trade-volume imbalance and its normalised version are
X=B−S,J=B−SB+S,B+S>0.X=B-S,\qquad J=\frac{B-S}{B+S},\qquad B+S>0.

Here B=120B=120 shares and S=80S=80 shares. Total executed volume is 200200 shares, signed volume is +40+40 shares, and

J=120−80120+80=0.20.J=\frac{120-80}{120+80}=0.20.
Four synthetic executions: buyer 70, seller 30, buyer 50 and seller 50 shares. Buyer-initiated volume is 120, seller-initiated volume is 80, signed volume is plus 40 and normalised imbalance is 0.20.
Four synthetic executions: buyer 70, seller 30, buyer 50 and seller 50 shares. Buyer-initiated volume is 120, seller-initiated volume is 80, signed volume is plus 40 and normalised imbalance is 0.20.
Original synthetic ledger for one stock and one venue. The window is open at its start and closed at its end; bar lengths represent executed shares, not elapsed time.

Buyer-initiated executions account for 60% of this window's volume. They account for only half its trade count: there are two prints on each side. Counting prints and weighting them by size answer different questions. One aggressive order matching several resting orders can also produce several prints.

The value 0.200.20 is a signed volume ratio. It is neither a 20% probability of a price increase nor a forecast return. Even the 60% buyer-initiated volume share is a description of the observed window, not the probability that the next trade will be a buy or that the next price move will be upward.

Executed flow and order-book events

A trade-only measure leaves out unexecuted order submissions and cancellations. Those events change the order book and can alter available liquidity without adding any traded volume.
The term order-flow imbalance also names broader measures. Cont, Kukanov and Stoikov's construction aggregates changes at the best bid and ask, including effects of limit-order arrivals, executions and cancellations. At unchanged prices, removing quantity from the bid contributes negatively to their measure whether removal comes from a seller's execution or a bid cancellation. The trade-volume measure above records only the execution. Their §4.1 explicitly separates trade imbalance from this broader order-flow imbalance.

Displayed bid-versus-ask depth imbalance is different again: it compares resting quantities at an instant, rather than activity over a window. Before comparing two charts labelled “order flow,” check whether each uses executions, quote events or book snapshots, and whether its units are shares, contracts, currency value or counts.

What the sign can tell you

Prefer a reliable feed-supplied aggressor field when available, and read its convention. Some feeds explicitly identify trades with no aggressor; CME's Trade Summary specification provides one such example. Auction or otherwise unclassified activity should have a declared separate treatment. If unknown signs are excluded, report the excluded volume and describe the ratio as conditional on classified trades. Do not silently put unknown volume into the denominator while presenting the result as the formula above.

When direction is inferred from price changes or quotes, it is an estimate. A buyer can take an offer after the whole market has moved down; an uptick/downtick classifier can then get the aggressor wrong. Quote timing, corrections and duplicate records also matter.

With positive classified volume, JJ lies between −1-1 and +1+1. Equal buyer- and seller-initiated volumes give zero; exclusively buyer-initiated volume gives +1+1, and exclusively seller-initiated volume gives −1-1. With no classified volume, the ratio is undefined. A zero value and a missing observation are different states.

Persistent positive flow may reflect a large order split into smaller pieces, shared public information or other behaviour. It does not establish informed trading or a causal market impact. A price-response model needs its own horizon, data and validation. A feature calculated over a completed window becomes available at the window's end, not its start.

For the next step, Order Flow and Adverse Selection develops trade-sign estimation, signed-volume features and the later value of passive fills. Its public preview outlines the lesson; the full lesson requires membership.

Sources

Last updated
  • market microstructure
  • execution
  • aggressor
  • signed volume
  • order book
← Back to the glossaryBack to top ↑