Quant Memo
Advanced

Hawkes Processes for Order Flow

A "self-exciting" model where every event temporarily raises the chance of the next one, capturing the bursty, clustered way orders and trades really arrive. One number — the branching ratio — measures how much of the activity the market generates from itself.

Prerequisites: The Poisson Process, The Poisson Distribution

If you watch a market's tape, orders do not trickle in at a steady rate. They come in bursts — a flurry of trades, then quiet, then another flurry. A plain The Poisson Process, which assumes events arrive at a constant average rate with no memory, completely misses this. A Hawkes process fixes it with one idea: every event makes the next one more likely for a little while. Activity feeds on itself, so bursts are built in.

This "self-excitement" is exactly what real order flow looks like. One aggressive trade triggers hedging trades, which trip stop orders, which set off market-making adjustments, which spark more trades. Hawkes processes turn that cascade into a clean, estimable model — and one number falls out that tells you how much of the market's activity is the market reacting to itself rather than to outside news.

The self-exciting intensity

In a Poisson process the arrival rate is a constant μ\mu. In a Hawkes process the rate — called the intensity λ(t)\lambda(t), the instantaneous chance per unit time of the next event — jumps up after every event and then fades:

λ(t)=μ+ti<tαeβ(tti).\lambda(t) = \mu + \sum_{t_i < t} \alpha\, e^{-\beta (t - t_i)} .

Reading it: μ\mu is the baseline rate from outside causes (genuine news), the same as Poisson. The sum runs over every past event time tit_i; each one adds a bump of size α\alpha that decays away at speed β\beta. So α\alpha is how big a kick each event gives to the arrival rate, and β\beta is how fast that kick fades. Right after a flurry, λ(t)\lambda(t) is high — more events likely — which is precisely the clustering we see.

μ intensity λ(t) burst burst time →
Each event (tick) kicks the intensity up by α; it then decays at rate β back toward the baseline μ. Because a high intensity makes the next event more likely, events pile into self-reinforcing bursts — the clustering a Poisson process can never produce.

The one number that matters: the branching ratio

Think of it like an epidemic. Each event is a "parent" that spawns some number of "child" events before its influence dies out. The average number of children per event is the branching ratio:

n=αβ.n = \frac{\alpha}{\beta} .

This is just the total size of one bump (its area) — the height α\alpha spread over its decay time 1/β1/\beta. If n1n \ge 1 each event spawns at least one child on average and the process explodes; the market is only stable (stationary) when n<1n < 1. And nn has a gorgeous interpretation: it is the fraction of activity that is endogenous, self-generated by the market reacting to itself. Empirically, estimated branching ratios for liquid markets sit disturbingly close to 1 (often 0.7–0.95), meaning the overwhelming majority of trading is the market echoing its own moves, not responding to fresh news.

The branching ratio n=α/βn = \alpha/\beta is the average number of events each event triggers. The process is stable only when n<1n < 1, and nn is the share of activity that is endogenous — the market feeding on itself. Real markets run at nn uncomfortably near 1.

Worked example

Suppose you fit a Hawkes model to a stock's trade arrivals and get a baseline μ=0.5\mu = 0.5 trades per second, a kick α=8\alpha = 8 per second, and a decay β=10\beta = 10 per second. Then:

  • Branching ratio: n=α/β=8/10=0.8n = \alpha/\beta = 8/10 = 0.8. Below 1, so the process is stable — good.
  • Cluster size. One outside-driven trade spawns on average n=0.8n = 0.8 children, each of which spawns 0.80.8 grandchildren, and so on. The total number of trades set off by a single exogenous one is the geometric sum 1+0.8+0.82+=1/(10.8)=51 + 0.8 + 0.8^2 + \dots = 1/(1 - 0.8) = 5. So each genuinely new trade drags five trades in total through the network.
  • Average trade rate. The long-run intensity is the baseline amplified by that same factor: λˉ=μ/(1n)=0.5/0.2=2.5\bar\lambda = \mu/(1 - n) = 0.5/0.2 = 2.5 trades per second. Only μ=0.5\mu = 0.5 of that is truly exogenous; the other 2.0 is the market reacting to itself.

Now watch what happens as the market gets more reflexive. If tighter feedback pushes nn to 0.950.95, the cluster size jumps to 1/(10.95)=201/(1-0.95) = 20 and the trade rate to 0.5/0.05=100.5/0.05 = 10 per second — the same trickle of real news, but four times the activity and much longer-lived bursts. This sensitivity near n=1n = 1 is why crowded, high-feedback markets can flip from calm to frantic on a tiny nudge.

As the branching ratio approaches 1 the market becomes critical: cluster sizes and reaction times blow up, so a small shock can cascade into a huge, self-sustaining burst — the microstructure fingerprint of flash crashes. A near-1 branching ratio is a warning that the market is mostly reacting to itself and is fragile to shocks.

The Hawkes framework also captures cross-excitement: buy trades can excite sell trades, quote updates can excite trades, one asset can excite another. Swap the single kernel for a matrix of them and you get a compact model of how order-flow imbalance and impact propagate through the book and across instruments.

Hawkes processes are the natural upgrade from Poisson whenever "one event begets another." They underpin modern models of order-book dynamics, of how Market Impact decays (the impact kernel and the Hawkes kernel are close relatives), and of the high-frequency feedback loops that make markets bursty. When someone says order flow "clusters," the Hawkes process is the math that says it precisely.

Related concepts

Practice in interviews

Further reading

  • Hawkes (1971), Spectra of Some Self-Exciting and Mutually Exciting Point Processes
  • Bacry, Mastromatteo & Muzy (2015), Hawkes Processes in Finance
  • Bouchaud, Bonart, Donier & Gould, Trades, Quotes and Prices
ShareTwitterLinkedIn