Im working on the implementation of the Queue Reactive Model by Lehalle (https://arxiv.org/pdf/1312.0563.pdf), but I have encountered some implementation problems for my specific assets.

  1. First, the average spread in them is between 15 up to 70 bps, a lot larger than tick size. In the paper, the reference price is updated by $\delta$ (tick size), but i think this would be a negligible change in my specific context. Maybe multiply by some constant?

  2. Second, my LOB data comes in this format (Incrementals, Up to level 5): enter image description here

With $s$ meaning size. In this format, I can never have $q_{\pm 1} = 0$, making it difficult for the implementation of the intensities conditional on $q_{\pm 1} =0$ like in Model 2a. I dont know how i can overcome this problem.

Since I didnt find any code for this, I ventured to implement the paper on my own, but im struggling with the exact implementation for my assets and data. I would appreciate if someone can help me with this.
Thanks in advance


1 Answer 1


The paper has been written having "large tick assets" in mind for a direct application, nevertheless it is possible to use it with small tick assets.

Come back to the spirit of the Queue Reactive Model: intensities of the events hitting the orderbook are a function of the shape of this orderbook.

And the empirical result are:

  1. this is a good model for the liquidity game, i.e. when market participants do not get exogenous information,
  2. in this context, what influences the intensities is "local", it is essentially the queue just before and just after your queue.

For a large tick asset, you will have to aggregate the queue to get shapes that make sense for market participants. The bad aspect is that you will not easily be able to use this Queue Reactive model to deduce your exact optimal placement (like in C-A L, and Othmane Mounjid. "Limit order strategic placement with adverse selection risk and the role of latency" Market Microstructure and Liquidity 3, no. 01 (2017)). But it is natural: when the tick is small, the placement in the queue is of less importance (you can jump in the empty queues for cheap).

As a conclusion: aggregate your queues and condition the intensities of the processes of insert, cancel, trade by aggregated shapes. I would suggest to aggregate prices that are "easily reachable", like around one bid-ask spread (you can test what makes sense between 1/2 spread and 1.5 spread).


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.