DataIntellectTech/TorQ-CME

tall_book.q creates entries with incorrect price

Closed this issue · 3 comments

given the first few rows of a cme file:

$ zcat xcme_md_es_fut_20180903-r-00019.gz | grep ESU8 |head
1128=9�9=175�35=X�49=CME�75=20180903�34=1743�52=20180902214503167161015�60=20180902214503166879423�5799=10000100�268=1�279=1�269=0�48=57287�55=ESU8�83=173�270=290575.0�271=25�346=6�1023=2�10=147�
1128=9�9=177�35=X�49=CME�75=20180903�34=1755�52=20180902214503853254318�60=20180902214503853004477�5799=10000100�268=1�279=1�269=0�48=57287�55=ESU8�83=174�270=290375.0�271=46�346=11�1023=10�10=248�
1128=9�9=176�35=X�49=CME�75=20180903�34=1795�52=20180902214506492119601�60=20180902214506491718105�5799=10000100�268=1�279=1�269=0�48=57287�55=ESU8�83=175�270=290400.0�271=57�346=12�1023=9�10=202�

wide_book.q creates this correctly:

date       sym  time                          bprice                                                                 bsize                           aprice                                                               asize                         msgseq rptseq matchevent underlying
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
2018.09.03 ESU8 2018.09.02D21:45:03.166000000 ,2905.75                                                               ,25f                            `float$()                                                            `float$()                     1743   173    84         ES        
2018.09.03 ESU8 2018.09.02D21:45:03.853000000 2905.75 2903.75                                                        25 46f                          `float$()                                                            `float$()                     1755   174    84         ES        
2018.09.03 ESU8 2018.09.02D21:45:06.491000000 2905.75 2904 2903.75                                                   25 57 46f                       `float$()                                                            `float$()                     1795   175    84         ES        

specifically, three different price levels appear

tall_book.q, however, adds three rows into the table all with the same level, orders, size and price:

date       sym  time                          side  level orders size price  msgseq rptseq matchevent
-----------------------------------------------------------------------------------------------------
2018.09.03 ESU8 2018.09.02D21:45:03.166000000 BID   2     6      25   290575 1743   173    84        
2018.09.03 ESU8 2018.09.02D21:45:03.853000000 BID   2     6      25   290575 1755   174    84        
2018.09.03 ESU8 2018.09.02D21:45:06.491000000 BID   2     6      25   290575 1795   175    84        

Will resolve.

I think it was an issue in widebook at one stage and the fix never got carried over potentially.

Will resolve.

I think it was an issue in widebook at one stage and the fix never got carried over potentially.

I've created a pull request #10, please confirm accuracy

fixed in #10