Diagnosing Executions Below the Best Price in Limit Order Book Data
Summary
The document examines apparent executions of limit orders at prices worse than the best displayed bid or ask in message-level equity data. One response distinguishes exchange trade messages that are not linked to an order ID, such as reports of block or off-exchange activity, from execution reports that can be matched to a specific order. With aggregated feeds, a reported trade may also originate on another venue or qualify for an exception to the national best bid and offer rules.
Other responses caution that, if the event truly occurred on the same exchange and timestamps are reliable, missing or misinterpreted messages are plausible explanations. They recommend checking the source data and the order-book reconstruction, since irregular message sequences and binary feed formats can make processing errors easy. A possible anti-internalization explanation is raised, but the response says associated cancellations should appear in the event sequence. The discussion offers diagnostic hypotheses rather than a definitive resolution; the right explanation depends on feed scope, venue, message type, and market rules.
Key ideas
- An unlinked trade message may report activity that cannot be matched to an individual displayed order.
- Aggregated feeds can include executions from other venues and trades covered by exceptions to best-price rules.
- For same-exchange events, missing feed messages or parsing errors can create apparent price anomalies.
- Order-book reconstruction should account for message types, sequencing, and cancellations.
- The document presents possible explanations but does not identify the cause of the reported cases.
Tags
Full text
# Executions deep in the Limit Order Book? # Executions deep in the Limit Order Book? I have some Level III (message level) data for equities and I have found several cases in which I register the execution of a Limit Order at a price "worse" than the best bid or ask. For example, let's say that the Best Bid on that exchange is `$`20.48 and that there is considerable depth at that price (say, 20,000 shares.) I have several cases in which I have a "full execution" message for a Buy Limit Order (on that same exchange) at price `$`20.47 without anything happening to all the Buy orders at $20.48... How is that even possible? ## Answer by Jason Nordwick (score 1) https://quant.stackexchange.com/a/16495 It can be a couple things depending on what you are looking at: If you are looking at a single exchange's feed, it can be a Trade Message that isn't linked to any individual order ID. These can be things like block orders or off exchange orders that get reported to them. I usually ignore Trade messages when looking at intraday data. These are different from Execution reports which have an order id an you can linked them back to an entry in the limit book. If you are looking at some form of aggregated feed, the are probably executions on another exchange that (probably) qualify for bypassing the NBBO (such as being flagged Intramarket Sweep) or a couple other exceptions. ## Answer by LOB (score 1) https://quant.stackexchange.com/a/33685 - It happens at the same exchange and you are using the exchange time stamps, so it is unlikely due to the time jitter problem. - According to my knowledge, if your data is from US or EMEA developed equity markets, by-passing the best price in the limit order book is not allowed. - Anti-internalization is in general for internal-crossing or dark pool in the sell side. I haven't seen it in the external exchange level. So that is not likely to be the reason either. My suggestions: 1. review your data carefully, see if some messages are missing. 2. review your codes carefully, because the Level III data is irregular and typically in binary format. It's very easy to miss (or miss-translate) some messages. Here is a short reference on how to construct order books from NASDAQ ITCH-Totalview Level III data, https://lobsterdata.com/info/HowDoesItWork.php, and the corresponding working paper at https://papers.ssrn.com/sol3/papers.cfm?abstract_id=1977207. ## Answer by JoshK (score 0) https://quant.stackexchange.com/a/25816 Most likely you are missing something as any new order can't bypass the existing orders. The only possibility that comes to mind is if you have anti-internalization set and the broker is trying to hit his own quotes. Say broker A has two quoting systems running and they would otherwise interact. Anti-internalization would not allow this broker to trade with himself. But, then in the sequence you should see the offending orders get canceled. Those cancelations might come in after the executions.
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.