Matlab获取新浪财经实时行情

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



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值