We help IT Professionals succeed at work.

Issue with retrieving stock quotes from yahoo finance

opike
opike used Ask the Experts™
on
I've been using yahoo finance for obtaining stock quotes in a java program for about 6 months now and haven't had any issues until recently. I'm using the following url to retrieve the quote for the last trade of a stock:

http://download.finance.yahoo.com/d/quotes.csv?f=sl1d1t1c1ohgv&e=.csv&s=MSFT

What happens is about every 5th retrieval (it's not consistent), rather than returning the data for the most recent trade, it returns data from 3 days ago.

I only see this issue in my java program... when I issue the url from a browser it always seems to work fine. I would've suspected the problem to be in my code except for the following conditions:

1. This was working fine for many months and I haven't touched the code dealing with retrieving the data.
2. It happens totally randomly. I cycle through the stocks in the S&P 500 and sometimes a particular ticker will work and sometimes it doesn't. There is no discernible pattern.
3. These users also reported a problem with yahoo finance at around the same time (it's not the exact same symptom as what I'm seeing but it is suspicious):Yahoo finance issue
Comment
Watch Question

Do more with

Expert Office
EXPERT OFFICE® is a registered trademark of EXPERTS EXCHANGE®
Do you have a question?

Author

Commented:
The question was implied... but allow me to be more explicit.

1) Has anyone else run into this?
2) Has anyone come up with a workaround?
I guess the workaround is to keep the date and time of the most recent quote.  If the quote you retrieve is earlier, ignore it and try again.  You could even show an error if the quote becomes significantly delayed.

If it works differently in your browser and the Java program it might be something to do with the formation of the HTTP request.  Perhaps Yahoo responds differently to different user agents.  It might be something to do with the Pragma, Cache-Control or If-Modified-Since headers.

Then again, it could be that Yahoo is messing up and nothing you can do except deal with it as described above.