我有一个名为 Tickers 的 xls 表(矩阵 1 列 500 行),带有雅虎代码。我希望 matlab 将每个股票代码过去 5 年的历史数据下载到一个单独的 xls 电子表格中,并将其保存在给定目录中,其中表的标题 = 股票代码。所以这意味着我想要一个代码,它可以在 500 个单独的电子表格中创建和保存 500 个代码的数据:) 任何人都可以帮助或指导吗?
问问题
2578 次
1 回答
0
如果您有Datafeed Toolbox,您可以使用它从 Yahoo 下载历史财务数据。
这是一个仅使用三个代码的示例,但可以轻松更改为从文件中读取值并应用于您拥有的所有 500 个代码:
endDate = date; %# today
startDate = datestr(addtodate(datenum(endDate),-1,'year')); %# last year
tickers = {'GOOG' 'IBM' 'AAPL'};
headers = {'Date' 'Open' 'High' 'Low' 'Close' 'Volume' 'Adj Close'};
y = yahoo;
for i=1:numel(tickers)
%# fetch daily data
data = fetch(y, tickers{i}, startDate, endDate, 'd');
%# format dates, and add header row
A = [headers; cellstr(datestr(data(:,1))) num2cell(data(:,2:end))];
%# write to XLS file
xlswrite([tickers{i} '.xls'], A);
end
close(y);
您获得的数据示例:
>> A
A =
'Date' 'Open' 'High' 'Low' 'Close' 'Volume' 'Adj Close'
'21-Nov-2011' [ 370.4] [371.68] [365.91] [369.01] [15999300] [ 369.01]
'18-Nov-2011' [378.92] [379.99] [374.88] [374.94] [13283500] [ 374.94]
'17-Nov-2011' [383.98] [384.58] [ 375.5] [377.41] [17139300] [ 377.41]
'16-Nov-2011' [389.25] [391.14] [384.32] [384.77] [12449900] [ 384.77]
'15-Nov-2011' [ 380.8] [ 389.5] [379.45] [388.83] [15386100] [ 388.83]
...
于 2011-11-22T18:19:44.913 回答