I am trying to do some analysis for stock data, so every day I download the EOD and Intraday (Minute) data for NYSE, NASDAQ, and AMEX. Usually there are a couple hundred rows of intraday data where the price reported is outside the highs and lows of the EOD data for that stock for the day. For example, the low from the EOD data could be $20.00, yet I have a series of minutes where the price was around $18.00. Maybe a couple hundred rows out of a million plus every day isn't terrible, but I am not sure if the best way to handle this would be ignore the intraday anomalies, assuming the data is bad, or extend the EOD lows/highs where the intraday exceeds within certain limits. I have read from a few sources the EOD lows/highs are not very accurate from most sources, so I am leaning towards extending those based on the Intraday data. I am currently using EODData as my provider. Any insight into this issue would be appreciated.
In the US, stocks are listed on one exchange but can be traded on multiple venues. You need to confirm exactly what your data is showing: a) trades on the primary-listed exchange; or b) trades made at any venue.
Also, the trade condition codes are important. Only certain trade condition codes contribute towards the day's open/high/low/close and some others only contribute towards the volume data. The Consolidated Tape Association is very clear on which trades should contribute towards each value - but some vendors have their own interpretation (or just simply an erroneous interpretation of the specifications).
It may surprise you to find that the majority of trading volume for many stocks is not on their primary-listed exchange. For example, on 2 Mar 2015, NASDAQ:AAPL traded a total volume across all venues was 48096663 shares but trading on NASDAQ itself was 12050277 shares.
Trades can be cancelled. Some data vendors do not modify their data to reflect these busted trades.
Some data vendors also "snapshot" their feed at a particular point in time of the data. Some exchanges can provide data (mainly corrections) 4-5 hours after the closing bell. By snapshotting the data too early and throwing away any subsequent data is a typical cause of data discrepancies.
Some data vendors also round prices/volumes - but stocks don't just trade to two decimal places.
So you may well be comparing two different sets of trades (with their own specific inclusion rules) against the same stock. You need to confirm with your data sources exactly how they do things.
Disclosure: Premium Data is an end-of-day daily data vendor.