Best data source for Daytrading (1M chart)


I am a daytrader and I trading US stocks and futures in 1M chart.

First I connected my Amibroker with IB, but the data was not accurate in Amibroker. The 1M candel didn't look completely like historical data.

Then I tried to connect my Amibroker with DTN IqFeed data source. It was the same. At the end of the day I compared my 1M candle (IqFeed) with the historical 1M candle. There were also minor differences in the number of candles.

I want real time, tick by tick accurate data for my Amibroker!

What data provider could you recommend?

Thank you!


You did not even say to what you are comparing to? And what you mean with "accurate".
Even straight from the exchange bad ticks happen, see:

Also upper case letter M means MONTH. While you apparently are talking about 1m (minute).

Data sources are listed here:

eSignal may offer cleanest historical data (because they post-filter it including manual corrections), IQFeed is unfiltered still quite good and IB is good as well.

If you are having problems, you might have incorrect config (filtering set up).

1 Like

@Balolah - additionally check your Database configuration and Intraday settings:

1 Like

Dear Milosz,

I made a screen shot about my settings. I upload them here.
Do you see something that is not set correctly?

Thank you for your help!





Dear Tomasz,

Thank you for your answer.

I compare the 1m data that I recieved during the day (from IqFeed or IB) to the historical 1m data.
I made a screen shot from the 1m chart at the end of the day.
After that I refreshed my chart with the historical data.
I compared the screen shot to this new 1m historical chart.
There were smaller differences of 60-70% of the candles.
This has a significant impact on my strategy.

I keep the historical data accurate.

What kind of config can be incorrect?
Where can I find my filtering set up?

Thank you!


You still did not tell to WHAT you are comparing to. You wrote "to the historical 1m data"
which means nothing. You should write what is the SOURCE of your data that you use for comparison. Or are you comparing it to just data that you are backfilling later? If that is the case - did you read the white paper about bad tick filtering (from my first response)? Did you understand it? Do you realize that bad tick filtering changes data? And do you realize that tick filtering is turned ON in your screenshots? Did you read "please note" message in the configuration screen?
Do you realize that all data vendors may change the historical data when bad tick is reported later or out of sequence trades are reported later (trades may be reported even with 10 second delay) Black liquidity pools do that all the time. This applies to ANY vendor. Such delayed reporting will skew real-time collected data and can only be corrected later.
See also:

Also with regards to Interactive Brokers - keep in mind that they do NOT send every tick. They send only snapshots (synthetic ticks) every ~0.20 seconds. Which means not every trade is included in RT stream, see this for details:

This plus the fact that IB does not send timestamp with their tickPrice updates means that you must use local computer time and if your local computer time is not in perfect sync with exchange you are going to have differences between candles on candle boundaries when difference in your local computer clock causes tick to be accounted for new or previous candle. Their "historical" quotes on the other hand use their clock, which is likely to be different than your computer clock.

If you are looking for data source that is filtered and has minimum amount of differences between RT stream and post-factum corrected historical data, you are likely to find the less differences in eSignal but the differences will still be there due to the the fact how exchanges and trade reporting work.

If your system is affected by very minor fluctuations it means that it is curve-fitted to data and as such unreliable and should not be traded.