I am interested in learning some nuances about how orderbook (DOM) updates along with time and sales updates might be affected
during 'fast conditions'.
I don't have a precise definition of a 'fast' condition but think of a market taking out 3
consecutive price levels within a matter of a millisecond (all trades at those prices are reported by the exchange with
the same millisecond timestamp). This is an almost everyday occurrence in, say, crude oil trading.
Let's look at an example (again, CL) to be able to state some of my questions.
Let's assume (big assumption-but don't question it for now) I have all sequential trade/DOM updates as they come from CME.
Order book snapshot looks as follows:
95.87, 50
95.86, 33
95.85, 60
95.84, 34
95.83, 26
95.82, 5
7, 95.81
39, 95.80
.
.
.
Now I see, in this order, a sequence of trades (long list) that add up to the following:
5 contracts at 95.82,
26 at 95.83,
34 at 95.84,
80 at 95.85 (not 60!),
40 at 95.86 (not 33),
17 at 95.87
After this sequence of trade updates I get a Level2 update that looks as follows
.
.
.
95.87, 33
1, 95.86
.
.
.
All of this transpires within a fraction of a second. So 5 ask levels were 'swept' (95.82-95.86) and one was partially executed (95.87).
After that trading continues at a slower pace were orderbook and level1 updates 'keep up' with trades occurring.
1. How come there was more volume executed at 95.85 and 95.86 than showed in order book 'just' before this event?
Let's assume no icebergs were sitting there. Then clearly, this would point to me not getting some order book updates
while this was happening as someone provided additional liquidity at those levels that was not reflected in order book
updates during that time. Even if there were icebergs sitting there, I would likely see some 'intermediate quotes' at
those levels, reflecting the exhaustion/replenishment of size at those levels.
I can find so many of these situations where during fast market conditions I see a mismatch of posted size versus
executed size (including situations were executed size < posted-i.e., pulling of orders), that I can only make two conclusions:
a) my data is always incomplete during that time (not likely-as here there is no issue of latency here-the only important
criterion is to get all updates sequentially even with a lag)
b) I don't fully understand the algorithm by which CME disseminates their order book updates, especially in such 'fast'
conditions
Does anyone have a good explanation for question '1.' above? Knowing more about b) would be great too...
I am hoping hft,NetTecture and others with hft knowledge would be able to answer this.
I can provide concrete examples with times down to a millisecond for anyone willing to discuss this with me (feel free to PM).
during 'fast conditions'.
I don't have a precise definition of a 'fast' condition but think of a market taking out 3
consecutive price levels within a matter of a millisecond (all trades at those prices are reported by the exchange with
the same millisecond timestamp). This is an almost everyday occurrence in, say, crude oil trading.
Let's look at an example (again, CL) to be able to state some of my questions.
Let's assume (big assumption-but don't question it for now) I have all sequential trade/DOM updates as they come from CME.
Order book snapshot looks as follows:
95.87, 50
95.86, 33
95.85, 60
95.84, 34
95.83, 26
95.82, 5
7, 95.81
39, 95.80
.
.
.
Now I see, in this order, a sequence of trades (long list) that add up to the following:
5 contracts at 95.82,
26 at 95.83,
34 at 95.84,
80 at 95.85 (not 60!),
40 at 95.86 (not 33),
17 at 95.87
After this sequence of trade updates I get a Level2 update that looks as follows
.
.
.
95.87, 33
1, 95.86
.
.
.
All of this transpires within a fraction of a second. So 5 ask levels were 'swept' (95.82-95.86) and one was partially executed (95.87).
After that trading continues at a slower pace were orderbook and level1 updates 'keep up' with trades occurring.
1. How come there was more volume executed at 95.85 and 95.86 than showed in order book 'just' before this event?
Let's assume no icebergs were sitting there. Then clearly, this would point to me not getting some order book updates
while this was happening as someone provided additional liquidity at those levels that was not reflected in order book
updates during that time. Even if there were icebergs sitting there, I would likely see some 'intermediate quotes' at
those levels, reflecting the exhaustion/replenishment of size at those levels.
I can find so many of these situations where during fast market conditions I see a mismatch of posted size versus
executed size (including situations were executed size < posted-i.e., pulling of orders), that I can only make two conclusions:
a) my data is always incomplete during that time (not likely-as here there is no issue of latency here-the only important
criterion is to get all updates sequentially even with a lag)
b) I don't fully understand the algorithm by which CME disseminates their order book updates, especially in such 'fast'
conditions
Does anyone have a good explanation for question '1.' above? Knowing more about b) would be great too...
I am hoping hft,NetTecture and others with hft knowledge would be able to answer this.
I can provide concrete examples with times down to a millisecond for anyone willing to discuss this with me (feel free to PM).