LOBSTER data is limit-order-oriented, as Level III message data, on which it is built. As a consequence, a market(able) order is represented as a sequence of limit-(or hidden-) order executions (and a limit order submission). Let’s take a buy marketable order 1000@20.01 (buy 1000 shares at $20.01) as an example. The ask side of the current lit order book is 200@20.00 (2limit orders, 100@20.00) and 100@20.01, while there is also a hidden sell order 500@20.00. When the marketable order is coming to the market, it matches with the limit-(hidden-) orders according to the price-display-time priority. That’s how LOBSTER messages look like:

  1. Sell limit order execution 100@20.00 , with event type 4 and  side -1

    2. Sell limit order execution 100@20.00 , with event type 4 and side -1

    3. Hidden order execution 500@20.00, with event type 5 and side 1 (NASDAQ    Totalview masks the hidden order side by BUY)

   4. Sell limit order execution 100@20.01, with event type 4 and side -1

   5. Buy limit order submission 200@20.01, with event type 1 and side 1

When this happen, we expect that the time interval between those events are very small.However, the gaps could depend on the environment in the trading system. We have to set a threshold subjective. I usually suggest people to use a number between 10 – 100 ms.

Notice that because LOBSTER data trace all quote change, you need only construct one level order book for reconstructing market(able) orders.

Did this answer your question?