Issue with Missing Current 1-Min Candle in Market Data Feed V3

Hi @RENJITH_44369921

On speaking with top algo-traders and folks in the community, it led us to the insight that the most compute on algorithmic logic is done after the close of a candle, and not while its in progress.
Hence, we made this change while moving from v2 to v3.

Let me share on why it was made this way.

The full mode on V3 has the following structure:

  1. Ticker data
  2. Depth [5]
  3. Greeks
  4. OHLC - 1D and 1min [TBT accuracy]
  5. Other essentials - ATP, VTT, OI, IV and total buy/sell quantity for the day.

To maintain TBT standards delivered accurately, it required over 100MBPS of stable bandwidth for the sockets on the user end. We tested subscribing to 1000 instruments, and still lost 0.2% of the packets. Trust me - TBT data is quite heavy and super high frequency, especially on ATM contracts of indices.


To counter the heavy flow in data and streaming everything as quickly as it is updated from the exchanges, we designed a rather unusual but extremely efficient socket - where only the data that has updated is streamed and the rest remained the same.
This made caching and other services of great use. We could quickly send the data as we got from the exchange and wouldn’t need to add other “unchanged” parameters.

Now coming to the use case of the sockets. The Ticker data (1) part, can be used for your price sensitive logics. Realtime tick data can be accessed via this. Very close to TBT, but not fully on point (constrained as I explained above).

For technical logics, candle once formed is used rather than the live (current) candle which is still “forming”. Let me explain with a use case instance considering 1-min timeframe.

You would apply the logic on the candle the moment the candle is closed. This means that the accurate candlestick data is already formed and is N-1 (N minus 1) position. This N-1 candle is what we’ve made to match TBT data. On the first tick of the Nth candle, the N-1 is fully updated at TBT accuracy.


This resolves for any of the lost packets on the connection and still get TBT accurate data for your logic computation at the same timing as you would using v2, viz. on candle closing.


What has changed, is how you would handle the socket. I understand this is some effort to change what’s already working. But its worth the TBT accuracy that top algo-traders and funds rely on.


I hope this answers why the V3 is built in a different way than V2!

1 Like