I've been trying to build a trading algorithm and fooled myself into thinking it worked. Turns out, Google Finance quite often returns the wrong data. Not "sorry, we couldn't return data for this stock" - but factually incorrect closing prices for each day.

Case in point: https://finance.google.com/finance/getprices?q=MYSQ&x=LON&i=86400&p=40Y&f=d,c,v,k,o,h,l&df=cpct&auto=0&ei=Ef6XUYDfCqSTiAKEMg

Just look at how for weeks at a time Google thinks the price remained the same, when theydidn't.

Can someone confirm the data is actually incorrect and there isn't a great explanation behind why the prices being displayed are what they are? Additionally if you have suggestions in mind about how to recognise stocks with bad data so they can be ignored or a better API for that matter, it'd help a lot!


1 Answer 1


There is no 100%-proof answer to this question, however there are few heuristics that minimize number of bad data points.

1) Cross check with time series from other sources: finance.yahoo.com, eodhistoricaldata.com, etc.

While each of these sources is not ideal, the combination may bring a conclusive result. Yahoo finance tends to be more reliable than google.

You would need more than two sources to implement "majority vote" for a day (two sources agree, but one disagrees -- more likely the two are correct).

2) Check for abnormal log returns. When a price is incorrect that might lead to abnormal return.

3) Apply exchange calendar to prices, that might eliminate bogus prices when exchange is closed, but the source publishes a bogus price.

Hope this helps

  • $\begingroup$ Eli, I don't believe Yahoo Finance API is still available. It seems like you've used EODHistoricalData - is it a reliable source of information in your opinion? Thanks btw! EDIT: Just realised EOD doesn't have any free version, given I need to do this once for a bunch of stocks it doesn't seem worth subscribing to a monthly service. Any idea of a free source I can download this data from? $\endgroup$
    – Umair
    May 9, 2018 at 20:46
  • $\begingroup$ I've used commercial version of eod historical data, they are very cheap and crappy data. $\endgroup$
    – Eli
    May 15, 2018 at 14:45

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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