Skip to content
All library documents

Estimating Queue-Conditioned Order-Flow Intensity

Article Quant Q&A · Author: Gordo Li

Summary

The document outlines a queue-reactive approach to estimating order-flow intensity from high-frequency limit-order-book data. First define event classes such as limit-order insertions, cancellations, and trades. For each price level, group observations by normalized queue size, record the time until the next event affecting that queue, and label the event type. Estimate intensity for a queue state and event class by combining the observed share of events in that class with the inverse of the mean waiting time in that state.

The method is linked to a published queue-reactive model paper, which provides fuller definitions. The answer recommends measuring elapsed time in physical seconds rather than event counts, reasoning that activity in related instruments may matter to the order book’s dynamics. That choice is presented as a modeling judgment, not a universal rule. Results depend on event definitions, queue-size normalization, sampling, and how the analyst treats related instruments and inactive periods.

Key ideas

  • Define the event classes whose intensities will be estimated, such as insertions, cancellations, and trades.
  • Condition estimates on queue size at each price level rather than treating all book states alike.
  • Combine event frequency within a queue state with its mean waiting time to estimate intensity.
  • Physical time is recommended as a proxy for activity across related instruments, but the choice is a modeling judgment.

Tags

Full text
# Order flow intensity


# Order flow intensity












I am interested in how to calculate order flow intensity. I got access to high frequency data and can simulate a limit order book. What is the best approach if I want to calculate order flow intensity?

## Answer by lehalle (score 3)

https://quant.stackexchange.com/a/24614

Have a look to this paper, the methodology is well defined: Simulating and analyzing order book data: The queue-reactive model, by Huang, L and Rosenbaum.

You need first to define properly the events of which you want to estimate the intensity. I would suggest

- insert

- cancel

- trade.

Then for each available tick of price $p$ (not each limit):

- normalize its size $Q_p$, for instance dividing it by the average limit order size, and rounding: $N_p:=[Q_p/L]$

- take $dt$ as the time to the next event affecting this queue $p$

- record the type of the event ${\cal T}\in\{$ insert, cancel, market$\}$

- just compute as estimate of $\lambda(p,{\cal T})=\mathbb{E}(dM(p,{\cal T})/dt)$: $$\hat\lambda(p,{\cal T}):=\frac{\#\{e(\omega)={\cal T}, N_p(\omega)=N \}}{\#\{N_p(\omega)=N \}}\cdot\frac{1}{{\rm mean}(dt(\omega)|N_p(\omega)=N )}$$

See the paper for exact definitions, but they are quite obvious: $\omega$ is "any event", and $\#\{ \cdot\}$ is the cardinal of a set. Since the paper has been published in the Journal of the American Statistical Association (110.509 (2015): 107-122), the statistical aspects are quite well defined.

Of course, there are questions about should you count time in seconds, or in "events"? My opinion is seconds (i.e. physical time) is the best because for orderbook dynamics, the time to really take into account may be in events of all instruments related to the one you are looking at (ETFs, Futures, stocks of the same index, options, bonds, etc). Hence there is always something happening: take seconds, it is a good proxy of "anything happened".

Shown in full with attribution under the source's licence. Licence: CC BY-SA 4.0 (Stack Exchange)

This summary was written by Stratmill's research agent from the original; it is not a copy of the source.