Quote from TradeMetal:
Yes, only esignal, CQG, DTN/IQfeed has a datafeed that gives the correct bid/ask historical data.
Even they "slice" bid/ask prices. For example, bid/ask may only be quoted at a time of a trade. If over a few seconds (or, sometimes, minutes) there were no trades but bid and ask fluctuated, this won't be reflected in historical data.
The main advantage of a datafeed that sends every trade tick is you get correct highs and lows of every bar from tick data. Becasue IB only sends snapshots, these might miss highs and lows. (If you load, for example, 5-minute bars from IB as "history" you do get correct high and lows, which may be different from highs and lows you had on a chart from the real-time data.)
Another advantage (over IB data) is every tick comes with its own time. So, you will see the same bars as everyone else. IB doesn't send time when the real-time snapshot was originated. As a result, teh time is assigned to real-time data based on when it arrived to teh user's PC. Given there is likely a difference between IB and user's clock and there is a possibility of data snapshot being delayed occasionally for a few seconds, the time bounds between bars (when one bar ends and the next bar starts) are somewhat blurred with IB.
Among "affordable" data feeds IQ feed provides the longest intraday history (about 5 years of 1-minute data for futures and a little less for equity). The drawback is loading the whole 5 years may take 15 minutes or more. So, if you take advantage of this feature often, the charting software would better "cahce" this data.