I have made a similar test with
YM @ CME, for which I have both Level I and Level II through DTN IQFeed.
Seems "normal", as illustrated here-below.
The numbers between [] are the ID numbers of the messages in the feed (to be sure that I have not missed any).
There are two cases.
1st case: the trade(s) do(es) not take all the liquidity at the level. Then next bid/ask update reflects the decreasing liquidity.
Example: 1 trade at the ask
[128935] Update without trade: Ask =
18 @ 13215 - Bid = 8 @ 13214 | 2012-08-20 16:36:38
[128936] New trade at the ASK:
1 @ 13215 - Ask = 18 @ 13215 - Bid = 8 @ 13214 | 2012-08-20 16:36:38
[128937] Update without trade: Ask =
17 @ 13215 - Bid = 8 @ 13214 | 2012-08-20 16:36:38
Example : 2 trades at the bid
[127848] Update without trade: Ask = 22 @ 13212 - Bid =
11 @ 13211 | 2012-08-20 16:36:01
[127849] New trade at the BID:
2 @ 13211 - Ask = 22 @ 13212 - Bid = 11 @ 13211 | 2012-08-20 16:36:02
[127850] New trade at the BID:
1 @ 13211 - Ask = 22 @ 13212 - Bid = 11 @ 13211 | 2012-08-20 16:36:02
[127851] Update without trade: Ask = 22 @ 13212 - Bid =
8 @ 13211 | 2012-08-20 16:36:02
2nd case: the trade(s) do(es) take all the liquidity at the level. Then next bid/ask update reflects the up/down tick
Example : 1 trade at the bid
[127061] Update without trade: Ask = 23 @ 13212 - Bid =
1 @ 13211 | 2012-08-20 16:35:58
[127062] New trade at the BID:
1 @ 13211 - Ask = 23 @ 13212 - Bid = 1 @ 13211 | 2012-08-20 16:35:58
[127063] Update without trade: Ask = 23 @ 13212 - Bid =
32 @ 13210 | 2012-08-20 16:35:58
[127064] Update without trade: Ask = 23 @ 13212 - Bid = 30 @ 13210 | 2012-08-20 16:35:58
[127065] Update without trade: Ask = 23 @ 13212 - Bid = 29 @ 13210 | 2012-08-20 16:35:58
[127066] Update without trade: Ask = 24 @ 13212 - Bid = 29 @ 13210 | 2012-08-20 16:35:58
[127067] Update without trade: Ask = 25 @ 13212 - Bid = 29 @ 13210 | 2012-08-20 16:35:58
[127069] Update without trade: Ask = 27 @ 13212 - Bid = 29 @ 13210 | 2012-08-20 16:35:58
[127070] Update without trade: Ask = 2 @ 13211 - Bid = 29 @ 13210 | 2012-08-20 16:35:58
The green part illustrates a very short-term "liquidity vaccum": we have to wait 5 messages until the bid/ask spread reduce to 1 tick.
Example : 2 trades at the ask
[127673] Update without trade: Ask =
3 @ 13210 - Bid = 37 @ 13209 | 2012-08-20 16:36:00
[127675] New trade at the ASK:
1 @ 13210 - Ask = 3 @ 13210 - Bid = 37 @ 13209 | 2012-08-20 16:36:00
[127676] New trade at the ASK:
2 @ 13210 - Ask = 3 @ 13210 - Bid = 37 @ 13209 | 2012-08-20 16:36:00
[127677] Update without trade: Ask =
28 @ 13211 - Bid = 37 @ 13209 | 2012-08-20 16:36:00
[127678] Update without trade: Ask = 26 @ 13211 - Bid = 37 @ 13209 | 2012-08-20 16:36:00
[127679] Update without trade: Ask = 26 @ 13211 - Bid = 39 @ 13209 | 2012-08-20 16:36:00
[127680] Update without trade: Ask = 24 @ 13211 - Bid = 39 @ 13209 | 2012-08-20 16:36:00
[127681] Update without trade: Ask = 21 @ 13211 - Bid = 39 @ 13209 | 2012-08-20 16:36:00
[127682] Update without trade: Ask = 20 @ 13211 - Bid = 39 @ 13209 | 2012-08-20 16:36:00
[127683] Update without trade: Ask = 19 @ 13211 - Bid = 39 @ 13209 | 2012-08-20 16:36:00
[127684] Update without trade: Ask = 18 @ 13211 - Bid = 39 @ 13209 | 2012-08-20 16:36:00
[127685] Update without trade: Ask = 18 @ 13211 - Bid = 2 @ 13210 | 2012-08-20 16:36:00
Nicolas