Welcome to NexusFi: the best trading community on the planet, with over 150,000 members Sign Up Now for Free
Genuine reviews from real traders, not fake reviews from stealth vendors
Quality education from leading professional traders
We are a friendly, helpful, and positive community
We do not tolerate rude behavior, trolling, or vendors advertising in posts
We are here to help, just let us know what you need
You'll need to register in order to view the content of the threads and start contributing to our community. It's free for basic access, or support us by becoming an Elite Member -- see if you qualify for a discount below.
-- Big Mike, Site Administrator
(If you already have an account, login at the top of the page)
Hi - I am having trouble getting consistent results from different data sources (IQ feed CME/Globex and IB Globex).
I am currently using IQ feed to backtest some ES futures strategies in Multicharts. When I test the Globex data from IQ feed vs data from Interactive Brokers over the same period the results differ significantly. Various metrics can be out by as much as 2-3x. Anyone have any idea what might be causing this?
Also, what is the difference between the straight CME data vs the Globex data from IQ Feed? the two also give significantly different results when tested under the same strategies.
Can you help answer these questions from other members on NexusFi?
IB data has a known issue. It aggregates the data in windowed snapshots, so you don't see everything that happened inbetween snapshots..
IQF data is lossless from what I understand.
CME's (DataMine's) data preserves the original message trees, which allows you to construct a more accurate simulation than IQF's data, which undergoes some modifications before it reaches you.
This is a common problem. It also depends on how well your data source filters bad ticks. Multicharts does not deal with this on its own. IQFeed is unfiltered but it also does not do a great job of correcting bad data. I also have a second feed that is much better at cleaning historical data but is problematic in other areas.
Keep in mind that your real time data might not match your historical data either regardless of who the provider is. Honestly, I don't think there is much you can do about it. Don't put too much faith in your back tests unless they correlate well with your forward tests.
I maybe should have been more specific, I am using the continuous backadjusted futures contract from IQ Feed and a custom futures contract for data from IB as they do not allow the continuous contracts to be queried through IB gateway yet or something.
I am aware of IBs snapshot but thought this only applies to really small timeframes (eg 1 second) and would have a minimal effect on the hour bars my system is built to trade on.
also, as far as the CME Vs globex data issue, IQ Feed appears to offer both CME data and CME_GLOBEX and was wondering if anyone could explain what the difference was? I presume regular CME data includes open out cry but the globex data is electronic only?
I'd start with comparing the actual number of bars you get for the two instruments to make sure they are same.
You could also switch to the continuous contract for IQFeed to rule out any differences caused by the backadjustment or compare your system's results on the backadjusted contract versus the continuous contract both using IQFeed data.
DTN/IQ supplies to the official data published by CME. The bar close represents the daily settlement price calculated as an average from all transactions between 3:14:30 and 3:15:00 PM CT (different method used for the last business day of the month). Interactive Brokers aggregates intraday data to build daily bars. The bar close represents the last traded price prior to 4:00 PM CT.
2. Minute data
HIstorical minute data should be identical. However, Interactive Brokers does not supply genuine real-time volume. This means that with data supplied from Interactive Brokers volume indicators will not work correctly on your minute charts. Historical backfill supplied by IB shows correct volume. Volume figures will change when you replace real-time data with historical backfill.
3. Tick data
Interactive Brokers does not supply historical tick data. Real-time tick data is snapshot data, not showing all transactions and not showing correct volume.
Comparing backtests
When you use daily data or tick data, back tests will not match. When you use volume for your backtest, there will be minor discrepancies resulting from slightly different data for historical back fill.
In case that you find major differences when backtesting strategies on minute data, please look at the following issues
- are there any holes in your data?
- how are contract merged, what rollover offsets are used?
You should be able to match backtests on minute data taken from DTN/IQ and IB. Please pay attention to all minor details.
IQFeed has been working well and they have an excellent set of indexes that work in real time. It is however not without problems. I think it depends a lot on which platform you use so you can't just look at the feed alone.
I use Multicharts which has no way to deal with bad ticks except by manually correcting them. This is very frustrating. It also leads to incorrect back tests on intraday data. I have attached a snapshot of SPY and an indicator that tracks volatility. It gets completely distorted by these bad ticks which don't get corrected. You will have to decide if this is important to you.
depending on what causes these "bad" ticks, you might have a chance to filter them by enabling the "Filter extended trades supplied by the exchange" option in the data feed settings for IQ (open the MC Quotemanager and
go to -> Tools -> Data Sources, select IQFeed and click on "Settings" to get to the window, where you can enable this option).