How do I run this loop to download data from yahoo finance?

%Code to Get Matrix
fid=fopen('C:\Users\Laurentiu Galan\Desktop\Tickers2.csv');
C = textscan(fid, '%s');
fclose(fid);
%Grab First Value (Just as check)
thisval=(C{1});
% Calculate Number of Tickers
D=size(thisval);
NumTick=D(1,1);
%Calculate Loop to download tickers
for i:Numtick <--------------Problem
thissym=????????? <--------------Problem
thisurl = strcat('http://ichart.finance.yahoo.com/table.csv?s=', thissym, '&d=10&e=8&f=2011&g=d&a=0&b=1&c=2000&ignore=.csv');
thisdata=urlread(thisurl);
thisfilename = strcat(thissym, '.csv');
outputfile = strcat('C:\Users\Laurentiu Galan\Desktop\tickoutput\',thisfilename);
thisfileid=fopen(outputfile, 'wt')
fprintf(thisfileid, '%s\n',thisdata)
fclose(thisfileid)
How do i make thissym a variable that I can loop to download the data from yahoo finance? Each one of the values in thisval is a ticker.
I really appreciate your help if you can help me out with this!!!

 Accepted Answer

for i=1:NumTick
thissym=thisval{i};
To learn more, see the help
help for
help cellstr
help catch
help continue

4 Comments

I'm impressed Fangjun. Two more issues and I should be done for the night-
Sometimes I get an error if a ticker does not exist. Like ABSDD45. How do I tell matlab to skip that value and go on to the next one.
My second question is more complex. I have 23,000 tickers. Is there a way to use this approach using a faster method?
If the symbol doesn't exist, the urlread() will cause an error. You do this to avoid the whole program breaks down. Follow the help leads in the answer to understand the use of for, continue, cell array, and try-catch.
try
thisdata=urlread(thisurl);
catch
continue;
end
You want to save the data to each .csv file according to the symbol name. I don't see any way that you can avoid the for-loop.
thanks fangjun. You solved the question at hand. I am still getting an error related to illegal use of the word catch.

Sign in to comment.

More Answers (0)

Categories

Find more on Financial Toolbox in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!