IB doesn't provide tick-by-tick streaming data?!

Here's what i read in a post:
Generally speaking, IB only sends a message when something changes. So if a trade occurs at the same price and size as the previous trade, IB sends neither price nor size messages (but it may send a volume message).

When the size has changed, but not the price, it sends only the size message.

When the price has changed, but not the size, it sends both price and size messages.

When both the price and the size have changed, it sends both the price and the size messages, and then sends the same size again. I've no idea why, but that seems to be the way it is.

This description applies to index futures. For stocks, it seems to be altogether more bizarre, and I haven't been able to make any sense of what it sends.

I should also point out that IB sends price data at regular intervals. For index futures, the interval seems to be 300 milliseconds, and for stocks it seems to be 200 milliseconds, though this may have changed since I investigated it in early 2004. At the end of each interval, it sends data for the last trade that occurred during that interval, if any. It compares the prices and sizes against the last ones sent. So suppose the last price and size notified were 1187 and 5, and volume was 22841. Then during the next interval there are two trades, one at 1187.25 for 10, and another at 1187 for 10. At the end of that interval, IB would notify only a size of 10 and a volume of 22862, because the price is still the same as the previous price notified. The fact that a trade occurred at 1187.25 doesn't get reported. Note however that the volume has increased by the amount of all the trades during the period.

The great benefit of this scheme is that the total load on IB's market data servers is well-defined, no matter how busy the markets become. As a result, IB's data feed keeps pretty much exactly in step with the market at all times. Compare this with other feeds that send every price, like eSignal. At busy times, like when there's a sudden drop in the DAX or the S&P and all the other index futures follow, there's a huge surge of data and quite a noticeable lag happens as their servers struggle to pump it all out. I've noticed two occasions this week where my eSignal feed has been a good 10 seconds behind the IB feed.

The disadvantage is that because the IB feed misses out some prices, your 1-minute or 5-minute bars (or whatever timeframe you use) might occasionally be slightly inaccurate in their highs and lows. Whether this is a big issue depends on your trading strategy. It hasn't been a significant problem for me.

What does it imply?
I'm a bit confused. :confused:

How frequently does IB refresh the price/volume?

If IB doesn' send all ticks, it seems we are getting inadequate market data.

How does it affect traders who trade in a very-shot time frame (eg tick or seconds)?

Thank you.
 
It is not inadequate for most purposes. I far prefer this snapshot approach to getting every tick. My other platform (Hammer@Assent) sucks a ton of CPU and bandwidth when the stupid bots start flailing around 10 times a second, even with just a few symbols.
 
When comparing IB with some of the real-time tick by tick data vendor, IB seems to only provide time pull price and is usually lagging behind.
 
Quote from moneymonkey:

When comparing IB with some of the real-time tick by tick data vendor, IB seems to only provide time pull price and is usually lagging behind.

Really?
How does it affect daytrader or scalpers?
Is the lagging serious?
Why does IB decide to deliver real-time data by such a lagging method?

Thanks! :)
 
I find that compared to Qcharts, Genesis, Esignal, and others, that IB leads or is equal to the others speed. While I respect that some individuals may indeed have a lag (maybe IB's fault, maybe not) it would be foolish to base a decision off of a single, internet forum opinion.
 
Quote from moneymonkey:

When comparing IB with some of the real-time tick by tick data vendor, IB seems to only provide time pull price and is usually lagging behind.

I hope you realize that readers may be making a decision based on your claim. Could you please provide the proof?
 
I suspect IB drops ticks for performance reasons. The gain in performance is very obvious during fast markets - eSignal will lag behind IB by several seconds while sending outdated ticks that have backlogged the pipeline.

The drawback is that you cannot use tick charts with IB's data.

I have collected a database of about 4 terabytes of e-Mini ticks from eSignal and IB, with my own timestamp for when each tick was received. My own random observation is that when IB is slower to reflect a price/size change, it is usually by not more than several hundred milliseconds. However, when eSignal is slower it could be by almost 10 seconds.
 
Back
Top