1000字范文,内容丰富有趣,学习的好帮手!
1000字范文 > 指数市盈率计算matlab matlab获取A股 港股 美股的全市场实时盘口数据

指数市盈率计算matlab matlab获取A股 港股 美股的全市场实时盘口数据

时间:2022-11-26 09:03:12

相关推荐

指数市盈率计算matlab matlab获取A股 港股 美股的全市场实时盘口数据

% 例子

% load stocklistA;tic;[data,name]=get_stock_tick(stocklistA(:,4));toc

function [data,name]=get_stock_tick(stocklist) % 获取股票实时盘口数据

data=[];

name=[];

str=get_str(stocklist); % 获取需要解析

%% 判断是A股还是港股,美股

s=stocklist{1,1};

s=s(1);

if strcmp(s,'s') % A股

N=1;

elseif strcmp(s,'r') % 港股

N=2;

else % 美股

N=3;

end

[data,name]=get_data(str,N,stocklist) ;% 解析

end

function str=get_str(stocklist) % 获取需要解析的字符

N=size(stocklist,1);

N1=800;

M=ceil(N/N1);

str=[];

for i=1:M

ind1=(i-1)*N1 1;

ind2=min(i*N1,N);

symbol=[];

for j=ind1:ind2

symbolT=stocklist{j,1};

if size(symbol,1)==0

symbol=symbolT;

else

symbol=[symbol,',',symbolT];

end

end

url2Read=['/list=',symbol];

strT=urlread(url2Read);

str=[str,strT];

end

end

function [data,name]=get_data(str,N,stocklist) % 解析

NN=N;

datacell=textscan(str,'%s','delimiter', ',');

datacell=datacell{1,1};

ind=strfind(datacell,'var hq_str' );

indA=find(~cellfun(@isempty,ind));

indDiff=[indA(1:end-1)-indA(2:end);indA(end)-size(ind,1)-1];

indD=find(indDiff~=min(indDiff));

indNow=find(indDiff==min(indDiff));

indB=indA;

indB(indD)=[];

datacell(indA,:)=[];

N=size(datacell,1)/size(indB,1);

M=size(indB,1);

dataA=reshape(datacell,N,M);

if NN==1

dataA=dataA(1:end-3,:);

name={'今日开盘价';'昨日收盘价';'最近成交价';'最高成交价';'最低成交价';'买入价';'卖出价';'成交数量';'成交金额';...

'买数量一';'买价位一';'买数量二';'买价位二';'买数量三';',买价位三';'买数量四';'买价位四';'买数量五';...

'买价位五';'卖数量一';'卖价位一';'卖数量二';'卖价位二';'卖数量三';'卖价位三';'卖数量四';'卖价位四';'卖数量五';'卖价位五'};

elseif NN==2

dataA=dataA(2:16,:);

name={'开盘';'昨收';'最高';'最低';'当前';'涨跌额';'涨跌幅';'卖一';'买一';'成交额';'成交量';'市盈率';'收益率';'52周最高';'52周最低'};

else

dataA([3 14 24 25 27],:)=[];

name={'最新价';'涨跌幅';'涨跌额';'开盘价';'最高价';'最低价';'52周最高价';'52周最低价';'成交量(单位股)';'平均成交量(单位股)';...

'市值(单位元)';'每股收益,市盈率';'fpe';'贝塔系数';'股息,收益率,总股本(单位元)';'instown';'盘前盘后价';...

'盘前盘后涨跌幅';'盘前盘后涨跌额';'昨收价'};

end

dataB=str2num(char(dataA));

dataC=reshape(dataB,size(dataA,1),M);

data=nan(size(dataC,1),size(stocklist,1));

data(:,indNow)=dataC;

end

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。