Matlab获取新浪财经实时行情

xiaoxiao2021-02-28  120

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

转载请注明原文地址: https://www.6miu.com/read-37584.html

最新回复(0)