matlab爬取股票历史数据
『壹』 怎么用matlab将股票历史行情的txt转换成金融时间序列数据
运用ascii2fts。
比如下面这个txt文档:
我想把它转化成金融时间序列的数据:
用fts=ascii2fts('文档名称.txt',作为标题的是txt中的第几行,作为金融时间序列的抬头的是txt中的第几行,忽略的行);
『贰』 如何用matlab读取标准股票csv文件
第一种:M
=
CSVREAD('FILENAME')
,直接读取csv文件的数据,并返回给M,这时要求整个csv文件内容全部为用逗号隔开的数字,不能用其他字符。
第二种:M
=
CSVREAD('FILENAME',R,C)
,读取csv文件中从第R-1行,第C-1列的数据开始的数据,这对带有头文件说明的csv文件(如示波器等采集的文件)的读取是很重要的。
『叁』 MATLAB 如何导入股票数据,并画出K线
需要几个关键步骤 (函数应用需要自己多用help 学习)
1自己先下载原始数据格式 时间 开 高 低 收
1 读取数据 xlsread 函数
[num,txt,raw]=xlsread(filename); % ‘000001.xls'
Date=datenum(txt(5:length(txt),1)); %时间
OpenPrice=num(:,1); %开盘
HighPrice=num(:,2); %收盘
LowPrice=num(:,3);
ClosePrice=num(:,4);
Vol=num(:,5); %成交量
save Data Date OpenPrice HighPrice LowPrice ClosePrice Vol; %存储mat文件 方便下次使用
candle(HighPrice,LowPrice,ClosePrice,OpenPrice,'r',Date,12)%高 低 收 开 红色 时间 时间格式
『肆』 matlab可以直接获取国内股票或者期货的历史数据吗
matlab可以直接获取国内股票或者期货的历史数据吗
:有个wdz程序,可免费输出txt、csv格式的沪深等市场的全部历史日线、10多年的5分钟数据。你可先用你这个程序,免费输出txt格式的对应数据,然后在matlab中读取即可。
『伍』 用matlab怎么算股票价格的收益率,怎么得出收益率的图~
1、用matlab算股票价格的收益率的方法,比如(以联想V14十代酷睿笔记本电脑,Windows10为例):
在matlab里面通常指令是:log(Xt/Xt-1)。
其中Xt是某股票或某指数第t天的价格;
其中Xt-1是某股票或某指数第t-1天的价格.
2、制作收益率曲线图的步骤如下,比如(以联想V14十代酷睿笔记本电脑,Windows10为例):
1.在A1中输入公式=(行(A1)-1) * 0.25-3。
2.在B1中输入公式=NORMDIST(A1,0,1,0)。
3.下拉并分别将以上两个公式复制到A25和B25。
4.插入“XY _⒌阃",A列为X轴,B列为Y轴,选择散点图类型为带平滑线的散点图。
(5)matlab爬取股票历史数据扩展阅读:
一、如果用matlab验证股票的收盘价符合对数正态分布:
比如(以联想V14十代酷睿笔记本电脑,Windows10为例)先导入数据,然后取收盘价的对数值即y=ln(y)
clc;clear
y=ln(y)
Std=std(y) %标准差
[F,XI]=ksdensity(y)
figure(1)
plot(XI,F,'o-')
x =randn(300000,1);
figure(2)
[f,xi] = ksdensity(x);
plot(xi,f);
画出概率分布图
ksdensity -------------------- Kernel smoothing density estimation.
表示核平滑密度估计。
二、股票收益率是反映股票收益水平的指标
1、是反映投资者以现行价格购买股票的预期收益水平。它是年现金股利与现行市价之比率。
本期股利收益率=(年现金股利/本期股票价格)*100%
2、股票投资者持有股票的时间有长有短,股票在持有期间获得的收益率为持有期收益率。
持有期收益率=[(出售价格-购买价格)/持有年限+现金股利]/购买价格*100%
3、公司进行拆股必然导致股份增加和股价下降,正是由于拆股后股票价格要进行调整,因而拆股后的持有期收益率也随之发生变化。
拆股后持有期收益率=(调整后的资本所得/持有期限+调整后的现金股利)/调整后的购买价格*100% 对于长期投资形式的股票投资,其投资收益的确认有两种方法:
一种是成本法,即按被投资企业发放的股利确定为投资企业的投资收益。
另一种方法是权益法,指投资企业所投股份在被投资企业中占到一定比例,可以对它具有控制、共同控制或重大影响时,应采用权益法进行核算。
『陆』 matlab 如何从wind中获取股票数据 收盘 开盘 最高 最低 交易量
所有的股市及时数据信息都在交易所或证监会,他们不开放数据给自己,自己是无法获取的。
收市价又称收盘价,通常指某种证券在证券交易所每个交易日里的最后一笔买卖成交价格。如果某种证券当日没有成交,则采用Recently一成交价作为收盘价。初次上市的证券,以其上市前公开销售的平均价格作为收盘价。如果证券交易所每日开前、后两市,则会出现前市收盘价和后市收盘价,一般来说,证券交易所后市收盘价为当日收盘价。在我国深圳证券交易所和上海证券交易所,股票收市价的确定有所不同,深圳证券交易所股票收市价是以每个交易日最后一分钟内的所有成交加权平均计算得出的,而上海证券交易所则以最后一笔成交价格作为收盘价。
开盘价又称开市价,是指某种证券在证券交易所每个交易日开市后的第一笔每股买卖成交价格。世界上大多数证券交易所都采用成交额最大原则来确定开盘价。
如果开市后一段时间内(通常为半小时)某种证券没有买卖或没有成交,则取前一日的收盘价作为当日证券的开盘价。如果某证券连续数日未成交,则由证券交易所的场内中介经纪人根据客户对该证券买卖委托的价格走势提出指导价,促使成交后作为该证券的开盘价。在无形化交易市场中,如果某种证券连续数日未成交,以前一日的收盘价作为它的开盘价。
股市成交量为股票买卖双方达成交易的数量,是单边的,例如,某只股票成交量为十万股,这是表示以买卖双方意愿达成的,在计算时成交量是十万股,即:买方买进了十万股,同时卖方卖出十万股。而计算交易量则双边计算,例如买方十万股加卖方十万股,计为二十万股。股市成交量反映成交的数量多少。一般可用成交股数和成交金额两项指标来衡量。目前深沪股市两项指标均能显示出来。
『柒』 matlab怎么提取股票复权数据
这和matlab没多少关系,主要看你的行情软件的接口函数,你应该去看下他们的帮助文档。
『捌』 使用MATLAB分析市场数据和提出投资建议。
方法/步骤
1 确定证券交易所,选择SZ证券交易所或SH证券交易所,也可以选择财经网站的数据。由于网络经验不允许在正文中出现链接,所以不给出链接。
不同的财经网站数据的数据格式不同,但绝大多数均通过表格的方式输出。
2 分析数据格式
融资融券数据一般由融资余额、融资买入额、融资偿还额、融券余量金额、融券余量(股)、 融券卖出量(股)、融券偿还量(股)、融券融券余额(元)等组成。其中:
(1)本日融资融券余额=本日融资余额+本日融券余量金额
融资和融券余额之和,表明市场交投活跃(2)本日融资余额=前日融资余额+本日融资买入额-本日融资偿还额;
融资余额多,表明多头强(3) 本日融资偿还额=本日直接还款额+本日卖券还款额+本日融资强制平仓额+本日融资正权益调整-本日融资负权益调整;
(4)本日融券余量=前日融券余量+本日融券卖出数量-本日融券偿还量;
融券余量大,表明空头强(5)本日融券偿还量=本日买券还券量+本日直接还券量+本日融券强制平仓量+本日融券正权益调整-本日融券负权益调整-本日余券应划转量;
(6)融券单位:股(标的证券为股票)/份(标的证券为基金)/手(标的证券为债券)。
一般情况下,融资融券数据格式如下图。需要注意上海证券交易所和深圳证券交易所提供的融资融券数据有一定差别。
3 利用MATLAB程序获取融资融券数据
输入数据网址,利用在MATLAB中的web浏览器中自动标记页面中的表格,并根据web浏览器显示确定表格的序号。
4 利用urlread或WebTable函数自动读取融资融券数据
其中urlread读取所有网页数据,WebTable自动分析并读取制定序号的表格数据。
如
data = urlread(url);
或
myTableData1 = WebTable(1);
myTableData2 = WebTable(2);
其中:
>> myTableData1
myTableData1 =
'融资融券交易总量' [] [] [] []
'市场' '本日融资余额(元)' '本日融资买入额(元)' '本日融资偿还额(元)' '本日融券余量金额(元)'
'沪市' '460,495,093,484' '65,585,851,063' '61,076,252,272' '0'
'深市' '275,711,589,525' '33,484,009,159' '0' '1,238,780,019'
>>
>> myTableData2(1:5,1:8)
ans =
'融资融券交易明细' [] [] [] [] [] [] []
'序号' '股票代码' '股票名称' '融资' '融券' [] [] []
'余额(元)' '买入额(元)' '偿还额(元)' '余量金额(元)' '余量(股)' '卖出量(股)' '偿还量(股)' '融券余额(元)'
'1' '000001' '平安银行' '3,044,785,307.00' '444,044,189.00' '--' '13,487,018.00' '1,192,486'
'2' '000002' '万科A' '1,892,249,207.00' '268,158,171.00' '--' '75,763,802.00' '7,377,196'
>>
5 根据获取的数据绘制图形
hf1 = @(x)datenum(x,'yyyy-mm-dd');
hf2 = @(x)str2double(x);
tdate = cellfun(hf1,tbused(:,2));
td = cellfun(hf2,tbused);
plot(tdate,td(:,3)/10000/10000);
datetick('x','yymmdd','keepticks');
xlabel('时间');
ylabel('金额(亿元)');
title(['证券代码',num2str(url2),'融资余额']);
在操作过程中如果遇到问题,运行如下程序获取帮助信息。如果仍有问题,可通过网络发送短信给作者讨论。
%显示帮助信息
data1 = [22786 26505 38254 38936 65420 35703 20979 27752 25904 28138 24366 21466 65434 20198 30111 20096 25863 65420 36699 35020 35624];
data2 = [35642 12418 32721 22464 65434 232 244 244 240 186 175 175 247 247 247 174 247 229 233 226 239];
data3 = [174 227 239 237 175 243 232 245 243 232 229 238 231 249 233 247 229 238];
data = [data1 data2 data3];
pos = get(0,'MonitorPositions');
cx = (pos(1)+pos(3))/2;
cy = (pos(2)+pos(4))/2;
h = dialog('windowstyle','normal','position',[cx-300 cy-40 600 80]);
hb1 = uicontrol(h,'style','text','string',char(bitxor(128,data(1:23))),'position',[1 45 500 30],'max',1,'fontsize',16,'HorizontalAlignment','left');
hb2 = uicontrol(h,'style','text','string',char(bitxor(128,data(24:end))),'position',[1 5 500 30],'max',1,'fontsize',16,'HorizontalAlignment','left');
『玖』 matlab寻找并删除连续停盘10天的股票
不知道你为什么用matlab,弄股票最好用股票软件编程,比如通达信,数据能实时更新,语言也更简洁。
如果非用matlab的话:由于你没有给出源数据格式,只能写伪代码:
stock=[600035 600036 600037 .....]; %这里面存着股票的代码
for i=1:100 %扫描100个股票
for j=1:200 %扫描每一天
if price(i,j)==0 %如果第i支股票第j天的股价为0
day0=1;
while day0<10 && j+day0<200 && price(i,j+day0)==0
day0=day0+1
end
if day0==10 %如果连续10天为0
stock_del=[stock_del,i]; %列入被删除表格
end
end
end
end
stock(stock_del)=[];删除股票
感觉弄这个意义不大。。。考虑我开头的建议,祝好。
『拾』 matlab如何读取股票数据
1.建立Matlab与数据提供商的连接,用connect=data server name,如bloomberg/yahoo/Fred/Factset,etc.
2.判断连接是否有效,用isconnection(connect),若返回1,则连接有效;若返回0,则无效;
3.获取你需要的数据,用fetch(connect,security,'参数1','参数2',...)
大致思路如上,具体输入细节见matlab 帮助文档(help document)
希望以上回答,对你有所帮助。
