2011-11-22 40 views
1

我有一个名为蒂克斯(矩阵1列500行)与雅虎代码的xls表。我希望matlab能够将每个股票报价器的最近5年的历史数据下载到单独的xls电子表格中,并将其保存在具有sheet = ticker标题的给定目录中。所以这意味着我想要一个代码,可以在500个单独的spreadhseets中创建并保存500个代价值的数据:)任何人都可以帮助或指导?如何将雅虎历史股票数据下载到xls中。格式通过matlab?

+0

请给的数据格式的示例(前4行的文件) – abcde123483

+0

\t日期打开\t \t高低\t \t关闭卷\t调关闭 –

+0

2011年11月21日\t 28.17 \t 28.2 28.05 28.05 –

回答

1

如果您有Datafeed Toolbox,您可以使用它从雅虎下载历史财务数据。

下面是一个使用只有三行情的例子,但可以很容易地改为从文件中的值,并适用于所有的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] 
    ... 
+0

,如果你没有访问到工具箱,你必须手动获取使用雅虎的数据CSV API(请参阅此[以前的答案](http://stackoverflow.com/questions/6717218/yahoo-fetching-currency-in-matlab/6718234#6718234)) – Amro

相关问题