Yahoo和Google免费提供了全球金融市场各种证券的日交易数据。以下以Yahoo Finance为例,演示基于Matlab 的网络免费金融数据获取方法。
编写函数yahooprice.m ,执行以下任务:从yahoo finance网页读书数据,利用textscan进行语法分析,抓取价格数据并输出。函数有三个输入变量:StockName=证券代码,StartDate=数据起始日期,EndDate=数据截止日期。返回三类格式的价格数据,分别为常规数据、dataset数据和fts数据。
代码如下:
function result = yahooprice(StockName,StartDate,EndDate)
% Purpose: get Yahoo Finance data
% Written by: sundros@163.com
result=[];
start_date=datenum(StartDate,'mm/dd/yyyy');
end_date=datenum(EndDate,'mm/dd/yyyy');
mS= num2str(str2num(datestr(start_date,'mm'))-1);
dS= datestr(start_date,'dd');
yS= datestr(start_date,'yyyy');
mE= num2str(str2num(datestr(end_date,'mm'))-1);
dE= datestr(end_date,'dd');
yE= datestr(end_date,'yyyy');
url=sprintf('http://ichart.finance.yahoo.c