It is exceedingly difficult to synchronize your computer to
any standard via the internet. Using a program such as D4 (
http://thinkman.com/dimension4/index.htm) you can get a time sync from any of the world standards available via the internet. However, the length of time between the transmission of the sync info and its receipt by your computer is a variable based on internet routing and internet loading. This latency is not a constant. Further, IB aggregates and samples the quotes you receive. You are not getting an exchange provided feed, that is one of the reasons IB does not have to charge exchange fees for its data feed, you are not getting a bit-by-bit retransmission of exchange data.
If you run TWS you've probably seen the time in the lower right corner of the TWS. As an experiment set your computer clock to an hour or two away from the correct time and then start TWS. Then shutdown TWS, reset the computer time to an internet-synced time standard and restart TWS.
If you use D4 (or some other similar utility) the time difference between the timestamp you apply to the IB datastream and the actual time IB receives data from the exchanges and ECNs should be within 200 to 400 milliseconds depending on:
The latency of the internet sync signal
The latency of the quote stream from the exchange to IB
IB's 100-300 millisecond processing delay
The latency between your machine and the IB server.
IB could time stamp its data but why should they? As a trader, even a fully automated trader, it should make no difference to you. The only reason I could think of for needing to know the actual time was so that I could compare the quote (or tick) time against my machine time. If I detected a significant deviation between the normal latency and the current latency I could stop trading if my system would be affected by such a change.
I don't know for sure, but I believe IB's API does have a function that allows a call to the IB clock. You could use such a call to monitor latency variations, if it mattered.
Jack