As it is shipped, yahoo/fetch does not guarantee that you get the data you request (it might throw a FileNotFoundException in your face). Sometimes the data you want simply isn't to be found on yahoo, and you will have to run fetch 10 times or more, which makes it worthless if you want to run batch jobs. This little extension takes care of that (you can run fetch ONCE and it will "wait" until the data is available).
Download the latest version of yahoo/fetch (http://www.mathworks.com/support/solutions/data/37658.html). Extract EURL.class from fetch.zip to FETCH (a directory of your choice, e g c:/matlabfix).
In the commandwindow, type edit classpath.txt and add FETCH (your directory from above) as a separate row.
Edit fetch.m in your working directory. Change line 278 (or search for "is = www.openStream") to:
fix = EURL(www);
is = fix.openStream;
Now simply restart matlab (to let the changes to classpath.txt take effect) and run fetch exactly as before.
Erik Larsson (2020). Guaranteed yahoo/fetch (https://www.mathworks.com/matlabcentral/fileexchange/5049-guaranteed-yahoo-fetch), MATLAB Central File Exchange. Retrieved .
Yahoo datafeed has changed its syntax. Please see http://www.mathworks.com/support/solutions/data/1-1CB2X.html?solution=1-1CB2X
for a solution.
I got a rookie question:
I keep getting a:
??? Error: ";" expected, "<" found.
Error in ==> C:\MATLAB6p5\toolbox\datafeed\datafeed\@yahoo\fetch.m
On line 251 ==> eval(['d = [' tmpdat '];'])
I followed the format. What am I doing wrong? please help. Thanks. Jason
Simple but super. Just what I needed!
Inspired: Yahoo! Finance Data Loader