Skip to content

Cont–Stoikov–Talreja model

A Markov model of limit-order-book dynamics driven by limit arrivals, market orders and per-order cancellations. Work through local queue rates without confusing them with the full-book clock.

The Cont–Stoikov–Talreja model is a continuous-time Markov model of an order book, driven by limit-order arrivals, market orders and cancellations. It turns a current book state into conditional questions about execution and price changes, such as whether a bid order executes before the ask moves. The paper was published in 2010. Cont, Stoikov and Talreja

The book is the state

The original model tracks signed order counts across a fixed, finite price grid: negative for bids, positive for asks. Orders have one model unit of size. Independent Poisson drivers specify limit arrivals at rate λ(i)\lambda(i), market buys and sells at rate μ\mu each, and per-order cancellation hazards θ(i)\theta(i). Here ii is distance in ticks from the opposite best quote. At depth qq, aggregate cancellation intensity is qθ(i)q\theta(i). The best prices are derived from the occupied grid levels. Original-author manuscript, §2

Thus, a queue calculation is a component of the book model. A birth–death process can describe local additions and removals while the relevant quote configuration remains fixed.

Twenty orders, three clocks

Consider a fictional nonempty best-ask queue containing q=20q=20 unit orders. Hold the quote configuration fixed for this reduced local calculation and choose:

Event affecting this queueCurrent intensityDepth change
New sell limit order at this priceλ=5\lambda=5 events/second+1+1 unit
Buy market orderμ=2\mu=2 events/second−1-1 unit
Cancellationθq=0.1×20=2\theta q=0.1\times20=2 events/second−1-1 unit
The cancellation parameter θ=0.1\theta=0.1 per second is per resting order. Applying it only once to the whole queue would undercount cancellations by a factor of 20 here.

For positive depth, the reduced local generator has rates

Gq,q+1=λ,Gq,q−1=μ+θq,Gq,q=−(λ+μ+θq).\mathcal{G}_{q,q+1}=\lambda,\qquad \mathcal{G}_{q,q-1}=\mu+\theta q,\qquad \mathcal{G}_{q,q}=-(\lambda+\mu+\theta q).

At q=20q=20, additions occur at rate 5 and removals at rate 4, giving total local event intensity r=9r=9 per second. In the frozen-rate race, the time TT to the next local event satisfies

P(T>t)=e−9t,E[T]=19 second≈0.111 second,\mathbb{P}(T>t)=e^{-9t},\qquad \mathbb{E}[T]=\frac{1}{9}\text{ second}\approx0.111\text{ second},
where tt is measured in seconds. Dividing each event rate by 9 gives probabilities 5/95/9 for addition, 2/92/9 for market removal and 2/92/9 for cancellation. These are probabilities of the next event type, not probabilities over a one-second interval.

The instantaneous expected depth change is

lim⁡h↓0E[Qt+h−Qt∣Qt=20]h=5−2−0.1(20)=1 unit/second\lim_{h\downarrow0}\frac{\mathbb{E}[Q_{t+h}-Q_t\mid Q_t=20]}{h} =5-2-0.1(20)=1\text{ unit/second}

for this reduced local model. Positive drift does not promise an increase on the next event: removals still have probability 4/94/9.

Fictional queue with 20 unit orders: additions at 5 per second, market removals at 2 and cancellations at 2. Next local-event probabilities are 5/9, 2/9 and 2/9. Cancellation rate is 0.1 times depth, rising from zero to 4 per second as depth rises from zero to 40. Total local rate is 9 per second, mean local wait is 1/9 second and local depth drift is plus 1 unit per second.
Fictional queue with 20 unit orders: additions at 5 per second, market removals at 2 and cancellations at 2. Next local-event probabilities are 5/9, 2/9 and 2/9. Cancellation rate is 0.1 times depth, rising from zero to 4 per second as depth rises from zero to 40. Total local rate is 9 per second, mean local wait is 1/9 second and local depth drift is plus 1 unit per second.
Original reduced local example, with rates frozen at the current quote configuration. Bars measure event rates; the line isolates cancellation rate versus depth. Events elsewhere in the full book are excluded from this local clock.

What the local calculation leaves out

After one removal, depth becomes 19 and the removal intensity becomes 2+0.1(19)=3.92+0.1(19)=3.9 per second. After one addition it becomes 21 and the removal intensity becomes 4.14.1 per second, assuming the same quote configuration. Treating the current rate 4 as a constant future death rate changes the model. The +1+1 drift is also local; it does not establish a linear expected path or a stationary depth distribution.

The next event anywhere in the full book races against arrivals and cancellations at other levels and market orders on the other side. Its total rate includes those channels. A price change elsewhere can also change a fixed level's distance from the opposite quote, hence its relevant rates. The 1/91/9 second result therefore belongs to the reduced, frozen-rate local race; it is not generally the waiting-time law for the next update at this level in the evolving full book.
When a best queue empties, the next occupied level determines the new best quote; relative coordinates and distance-based rates must be updated. Nor does total depth alone identify a tagged order's execution: priority and which orders cancel matter. The Order Books lesson develops that distinction (public preview; full lesson requires membership).

Relation to queue-reactive modelling

The later queue-reactive order-book model allows order-flow intensities to respond more generally to current queue sizes and other book-state information. Huang, Lehalle and Rosenbaum explicitly contrast their observed cancellation patterns with the linear cancellation specification used by Cont, Stoikov and Talreja. Merely having the mechanical factor qθ(i)q\theta(i) does not make the original model this later extension. Huang, Lehalle and Rosenbaum, §1 and §2.3
The original model omits strategic trader interaction and persistent order-flow memory. Its tractability makes conditional event calculations useful, but those assumptions limit what a calibration can represent. Cont, Stoikov and Talreja, introduction

Sources

Last updated
  • order book
  • markov models
  • queueing
  • execution
  • cancellation
← Back to the glossaryBack to top ↑