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.

  • What are you attempting to do with the data? Also, are you referring to trade prices, bid prices, ask prices, mid prices, or something else? – dg99 Mar 2 '15 at 23:20
  • How to deal with it will depend on how you are analyzing the data. I think you need to decide this for yourself based on whatever model you have chosen to use. Clearly there is no consensus even among the pros... – keshlam Mar 2 '15 at 23:53
  • I'm attempting to use historical trade data to find patterns to anticipate price movement. I should have phrased the question better to ask why these anomalies might occur so I can understand how to handle them so it doesn't throw off my analysis. It is hard for me to tell whether the same EOD high/low from multiple sources is wrong or the intraday data exceeding these is more likely wrong. Premium Data gave me the answer I was looking for and the needed direction on what information to look for on how my data provider is producing the data. – EricL Mar 3 '15 at 15:09

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.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.