The 'last_trade_time', 'last_price' and 'last_quantity' should be tied together and updated in the same tick. Otherwise it is not just useless, but potentially misleading.
I have observed sometimes the last trade's timestamp is updated in a much later tick, than its price and quantity. I hear you say ... a new trade could take place at the same price+quantity point, so only the timestamp may be different. That is true most of the time. But sometimes, the 'volume-of-the-day' update indicates we have been assuming too many new trades since last update .... i.e, volume increase is lesser than the cumulative Last-traded quantities since last volume update. And the volume is shortage is exactly multiple of the last-traded quantity. Which implies late/separate timestamp update wrongly indicates new trades.
Exchg Ts LT Ts LT Qnty LT Price Day Volume 2019-06-14 10:29:08 10:29:07: 51 139.25 204014 (0) 2019-06-14 10:29:09 10:29:09: 49 139.00 204514 (1) 2019-06-14 10:29:10 10:29:09: 49 139.00 204514 (2) 2019-06-14 10:29:11 10:29:09: 25 139.00 204514 (3) 2019-06-14 10:29:12 10:29:11: 25 139.00 204539 (4) ..... 1) Last Volume update to 204514 2) Nothing relevant changed here 3) 25 shares @139 traded at **** 10:29:09 ***** stale timestamp 4) 25 shares @139 traded at **** 10:29:11 ***** new timestamp
Now (3) and (4) could have been different trades, however looking at volume change we know one is duplicate. Volume Change :: 204539 - 204514 = 25 that implies the Last-Trade-Timestamp of tick-3 was stale, as a result we counted the same trade twice.
Fixing this should be fine, and not seen as API change ... IMO.
The live market data is published as is. We don't calculate or modify any data that we receive from the exchange. If you subscribe to full mode, the tick is published even when there is a change even in one of the bids or offers.
The live market data is a snapshot data (level 2) offered to all the members and not the TBT data. If you are looking for TBT data then you can contact the exchange. You may check out more details here.
@sujith thank. I know any change might trigger a tick. However I thought maybe Zerodha reorder/repack the data for optimisation. May I know in what format (data structure) does NSE distribute data? Any public link or doc will help pinpoint the source of disparity. Some well defined order of data is a must for our strategy, so we are desperate to fix it. Thanks
The exchange streams data in binary format. One can't capture all the ticks that happen at the exchange, it can be in hundreds or thousands in a second. You need to be co-located in order to capture tick by tick data. It is not possible for any platform to capture all the ticks over the internet. You may refer this thread for more information.
The correct solution for your requirement is to be co-located at the exchange and capture all the ticks there. The setup might cost around 15 to 18 lakhs per annum. You can contact talk(at)rainmatter.com, if you want any assistance in setting up colo servers.
The live market data is a snapshot data (level 2) offered to all the members and not the TBT data. If you are looking for TBT data then you can contact the exchange. You may check out more details here.
One can't capture all the ticks that happen at the exchange, it can be in hundreds or thousands in a second. You need to be co-located in order to capture tick by tick data. It is not possible for any platform to capture all the ticks over the internet.
You may refer this thread for more information.
The correct solution for your requirement is to be co-located at the exchange and capture all the ticks there. The setup might cost around 15 to 18 lakhs per annum. You can contact talk(at)rainmatter.com, if you want any assistance in setting up colo servers.