Comparing our data to other sources
Many of our customers compare our data with other free sources like Yahoo Finance or Bloomberg. We strongly support this practice and believe that only data that is
throughly checked for errors can give reliable results in your backtesting and analysis.
Please make sure that you understand how Yahoo Finance data is organized before trying to compare our data with theirs.
We are going to give you some useful suggestions that will help you with your analysis.
An example of Yahoo error
Here is a good example of how Yahoo uses the price outside of the regular
session (after 4 PM) and then calculates both High and Close values incorrectly
for the company Borders Group, Inc. (BGP) on 11/24/2008. Chart below shows the
intraday data and makes it obvious how you can miscalculate your trading system
results and use completely wrong High and Close prices for the day in your
Click on the image below to see the larger version:
Adjusting Yahoo prices for splits and dividends
Our standard data format produces adjusted prices. Before doing any comparison
you need to adjust Yahoo prices. First get the multiplier by dividing the price from the "Adj Close" column with the price from the "Close" column. Multiply Yahoo prices from Open, High, Low and Close columns with that multiplier to get the adjusted prices.
Here is an example for Baidu, Inc. (BIDU) on July 25, 2007:
Open,High,Low,Close: 178.9, 185.3, 173.43, 183.23
Adj Close = 18.32
Multiplier = Adj Close / Close = 18.32 / 183.23 = 0.09998
Adjusted Open = Open * Multiplier = 178.90 * 0.09998 = 17.89
Adjusted High = High * Multiplier = 185.30 * 0.09998 = 18.53
Adjusted Low = Low * Multiplier = 173.43 * 0.09998 = 17.34
Adjusted Close = Close * Multiplier = 183.23 * 0.09998 = 18.32
Getting the correct volume value from Yahoo
Although OHLC data is shown as unadjusted, volume on the Yahoo web site is
already adjusted. If you want to compare their volume data with ours, just leave
the Yahoo value as-is. You will find out that the volume is more or less the
same. The difference, if any, is probably the result of a few transactions
outside the regular market session.
Open and Close prices are sometimes outside regular session hours
As already explained, sometimes daily Open/Close prices from Yahoo (or other sources) do not match with our data.
That is the result of how the official Open/Close price is calculated. Open price for the day is not necessarily the first intraday price. Also, the official closing price can be a transaction that occurred after the market Close and, similarly, is not always the last price
during the regular market session. The Open and Close of the regular market session are the most volatile periods of the trading day.
The price other data sources register as Open/Close can often be misaligned with the first/last tick and intraday data. The market specialist on NYSE can
also delay the open after 9:30 AM for a particular stock and set a fixed open price disregarding the accumulated buy and sell orders. Price after the Close of the session can become the Close price for the day. That is why we make the daily data match the intraday records exactly and use only data within the regular session.
High and Low prices on Yahoo can be produced by bad ticks
Whenever our high/low price do not match other sources, that is usually caused by a spike which has been filtered out on our side. Spike or a bad tick can be sent by an exchange as a result of either an error or the real transaction that has occurred outside the normal price range for a day. The data is filtered against the most obvious errors only. You
can also filter out the extreme prices in data if you compare them with the previous and/or next bars' prices.
If a Yahoo Open/Close price is outside of regular session hours and it is
simultaneously High or Low price for a day, that will not be reflected in our
data. This exact case is shown on the chart above for BGP on 11/24/2008.