SinaData.m
function [Data, DataCell] = SinaData(Code)
%参数说明: code股票代码,上交所输入sh+证券代码,深交所输入sz+证券代码
%返回值说明:Data只是行情数据,DataCell包含数据描述信息
%调用说明:SinaData('sh600000')
%调用新浪接口获取数据
url = ['http://hq.sinajs.cn/list=', Code]; %字符串拼接
s = webread(url);
%按分隔符','解析字符串并返回cell
result = textscan(s, '%s', 'delimiter', ',');
result = result{1, 1};
DataCell = result;
%分离出行情数据,并转换为double类型
Data = cellfun(@str2double, DataCell(2:30));
%设置第1行为StockName_StockID
temp = cell2mat(DataCell(1));
StockName = temp(22:end);
StockID = temp(12:19);
DataCell{1, 1} = [StockName, '_', StockID];
%设置第2行为行情日期
StockDate = cell2mat( DataCell(31) );
DataCell{2, 1} = StockDate;
%设置第3行为行情时间
StockTime = cell2mat( DataCell(32) );
DataCell{3, 1} = StockTime;
%从第4行开始,把Data的数据拷贝到DataCell
DataCell(4:end-1) = mat2cell( Data, ones(length(Data), 1) );
%因为cell一共有33行,相当于去掉最后一项数据
temp = DataCell(1:32);
DataCell = temp;
%在第2列添加中文标题
ind = 1;
DataCell{ind, 2} = '股票名称代码';
ind = ind + 1;
DataCell{ind, 2} = '日期';
ind = ind + 1;
DataCell{ind, 2} = '时间';
ind = ind + 1;
DataCell{ind, 2} = '今开盘';
ind = ind + 1;
DataCell{ind, 2} = '昨收盘';
ind = ind + 1;
DataCell{ind, 2} = '当前价';
ind = ind + 1;
DataCell{ind, 2} = '今最高';
ind = ind + 1;
DataCell{ind, 2} = '今最低';
ind = ind + 1;
DataCell{ind, 2} = '竞买价,即“买一”报价';
ind = ind + 1;
DataCell{ind, 2} = '竞卖价,即“卖一”报价';
ind = ind + 1;
DataCell{ind, 2} = '成交量,单位“股”'; %不同的证券品种有不同的单位,比如债券是张
ind = ind + 1;
DataCell{ind, 2} = '成交额,单位“元”';
ind = ind + 1;
DataCell{ind, 2} = '买一量';
ind = ind + 1;
DataCell{ind, 2} = '买一价';
ind = ind + 1;
DataCell{ind, 2} = '买二量';
ind = ind + 1;
DataCell{ind, 2} = '买二价';
ind = ind + 1;
DataCell{ind, 2} = '买三量';
ind = ind + 1;
DataCell{ind, 2} = '买三价';
ind = ind + 1;
DataCell{ind, 2} = '买四量';
ind = ind + 1;
DataCell{ind, 2} = '买四价';
ind = ind + 1;
DataCell{ind, 2} = '买五量';
ind = ind + 1;
DataCell{ind, 2} = '买五价';
ind = ind + 1;
DataCell{ind, 2} = '卖一量';
ind = ind + 1;
DataCell{ind, 2} = '卖一价';
ind = ind + 1;
DataCell{ind, 2} = '卖二量';
ind = ind + 1;
DataCell{ind, 2} = '卖二价';
ind = ind + 1;
DataCell{ind, 2} = '卖三量';
ind = ind + 1;
DataCell{ind, 2} = '卖三价';
ind = ind + 1;
DataCell{ind, 2} = '卖四量';
ind = ind + 1;
DataCell{ind, 2} = '卖四价';
ind = ind + 1;
DataCell{ind, 2} = '卖五量';
ind = ind + 1;
DataCell{ind, 2} = '卖五价';
end