Login Page - Create Account

Support Board


Date/Time: Fri, 22 Nov 2024 16:26:19 +0000



Post From: Rebuilding LOB from MarketDepth file

[2024-10-14 19:10:49]
ThePeeKay - Posts: 7
Hello,

I'm trying to rebuild LOB for the first 6 levels based on the .depth format. I have the parsing code and can look at all the commands available based on the documentation, but I need some help to be able to understand how these commands work to build the actual LOB myself.

So can you please take a look below and correct me? I want to generate specific metrics based on bid/ask size etc. and running this on replay takes forever, as it's per tick and the study needs to run at per tick so I cannot increase the speed to more than 1X, because then it doesn't output my calculations from the study, as its not running per tick anymore. So I though I would just parse the .depth file directly to generate my metrics.

I suppose that COMMAND_ADD_BID_LEVEL and COMMAND_DELETE_BID_LEVEL (same for ask) is interpreted as "Create this entry at Price XXXX on the bid or ask side so we can track orders"

I use this format -> Record Timestamp Command Flags NumOrders Price Quantity

So here 30  30:00.0  COMMAND_ADD_BID_LEVEL  0  1  20361  5, it says "Start 20361 level and add 1 order with 5 contracts"?

Then this -> 3685  30:03.5  COMMAND_DELETE_BID_LEVEL  0  0  20361  0, it says "Delete the bid level at 20361 because the order was removed, so nothing there"

4243  30:03.5  COMMAND_ADD_BID_LEVEL  0  1  20361  5 -> Here we add it again

And then this says 6593  30:05.0  COMMAND_MODIFY_BID_LEVEL  1  2  20361  7, Now we have 2 orders for a total quantity of 7 at 20361 on the BID. This basically means we added an order, but if we compare it to the previous one, we know we added one more, with a size of 2?, which is why we went from 1 order to 2 and quantity went from 5 to 7.

But then this says 8301  30:06.9  COMMAND_MODIFY_BID_LEVEL  1  1  20361  5, Now we have 1 order for a total quantity of 5 at 20361 on the BID. Here is seems that the order added above, was removed.

Do I understand this correctly? Each MODIFY is not "additive" to the previous one, but more like "Here is how many orders at that level, and there is the quantity aggregate for these orders".


Full parsed depth below:

E.g.
Record Timestamp Command Flags NumOrders Price Quantity

30  30:00.0  COMMAND_ADD_BID_LEVEL  0  1  20361  5
3685  30:03.5  COMMAND_DELETE_BID_LEVEL  0  0  20361  0
4243  30:03.5  COMMAND_ADD_BID_LEVEL  0  1  20361  5
6593  30:05.0  COMMAND_MODIFY_BID_LEVEL  1  2  20361  7
8301  30:06.9  COMMAND_MODIFY_BID_LEVEL  1  1  20361  5
13942  30:14.4  COMMAND_MODIFY_BID_LEVEL  1  2  20361  6
18048  30:25.2  COMMAND_MODIFY_BID_LEVEL  1  1  20361  5
94823  37:23.7  COMMAND_MODIFY_BID_LEVEL  1  2  20361  6
97403  37:49.7  COMMAND_MODIFY_BID_LEVEL  1  3  20361  7
104703  38:30.5  COMMAND_MODIFY_BID_LEVEL  1  2  20361  2
108767  39:02.2  COMMAND_MODIFY_BID_LEVEL  1  3  20361  3
110099  39:07.9  COMMAND_MODIFY_BID_LEVEL  1  2  20361  2
110952  39:14.0  COMMAND_MODIFY_BID_LEVEL  1  3  20361  3
111807  39:19.7  COMMAND_MODIFY_BID_LEVEL  1  2  20361  2
114110  39:30.4  COMMAND_MODIFY_BID_LEVEL  1  3  20361  3
115482  39:44.2  COMMAND_MODIFY_BID_LEVEL  1  4  20361  4
116240  39:50.0  COMMAND_MODIFY_BID_LEVEL  1  5  20361  8
116494  39:51.0  COMMAND_MODIFY_BID_LEVEL  1  6  20361  23
116605  39:51.3  COMMAND_MODIFY_BID_LEVEL  1  5  20361  8
116666  39:51.6  COMMAND_MODIFY_BID_LEVEL  1  6  20361  9
116669  39:51.6  COMMAND_MODIFY_BID_LEVEL  1  7  20361  24
116670  39:51.6  COMMAND_MODIFY_BID_LEVEL  1  8  20361  26
Date Time Of Last Edit: 2024-10-14 19:12:14