用MATLAB获取新浪股票数据
(2017-04-15 12:33:38)
标签:
matlabm代码股票新浪股票数据接口 |
炒股票自然要做家庭作业,现在的股票家庭作业自然也不能继续停留在手工计算或揿计算器的时代了,取而代之的用计算机自动来算,为此必须先获得股票数据,这次家庭作业要用到恒生中国企业指数有关数据,却发现平时管用的计算机自动数据读取程序却不管用了,考虑到用MATLAB读取新浪股票数据、显示数据比较方便,为此复习了一下这方面M代码知识,并将复习“成果”记在这里。
stock_code=num2str(k);
stock_code=strcat('sh',stock_code)
%stock_code='hkHSCEI';
url1=strcat(url,stock_code);
s = urlread(url1)
if ~isempty(s)
[sd,j]=stockdata(s)
end
if
s(i)=='"'
flag1=1;
end
if flag1==1 &&
s(i)~=','
if s(i)~='"'
&& s(i)~=';' %&& s(i)~=' '
str=strcat(str,s(i));
%else
%str=strcat(str,'_');
end
%elseif flag1==1
&& (s(i)==','|| s(i)=='"')
elseif flag1==1
&& s(i)==','
%|| s(i)=='"')
j=j+1;
sd{1,j}=str;
str='';
end
用MATLAB获取新浪股票数据的M代码,如下所示:
clc;close all;clear all;
url='http://hq.sinajs.cn/list=';
stock_code='sz000877';%'sh601212';%'sh601006';
url1=strcat(url,stock_code);
s = urlread(url1)
%length(s);
[sd,j]=stockdata(s)
stock_code='sh000001';
url1=strcat(url,stock_code);
s = urlread(url1)
%length(s);
[sd,j]=stockdata(s)
stock_code='hkHSCEI';
url1=strcat(url,stock_code);
s = urlread(url1)
%length(s);
[sd,j]=stockdata(s)
for k=601001:601005
end
function [sd,j]=stockdata(s)
n=length(s);
sd=cell(1,32);
str='';
j=0;
flag1=0;
for i=1:n-1
end
j=j+1;
sd{1,j}=str;
str='';
主程序的前半部分是获取单个股票数据,后半部分是获取连续代码股票数据,从网站上获取的股票数据只是一串文本,为此,要对此文本进行解析,那么stockdata()就是解析股票数据的。
回到前文,运行这个代码可以发现恒生中国企业指数的数据格式与别的股票数据格式不同,怪不得出错。
这个代码只是简单试验性的,你可以根据自己的需求作改进,比如,你的“家庭作业”是在EXCEL中的,那么需要增加读写EXCEL的语句,如果要循环读取数据,则要增加一个定时器语句等,总之要按照你自己的要求来改进。
前一篇:一道有趣决策题-赌徒的下注策略
后一篇:用MATLAB玩控制-结构辨识2