⑴ MATLAB怎样获取实时股市行情数据
1Sina股票数据接口
以大秦铁路(股票代码:601006)为例,如果要获取它的最新行情,只需访问新浪的股票数据
接口:
http://hq.sinajs.cn/list=sh601006
这个url会返回一串文本,例如:
var hq_str_sh601006="大秦铁路, 27.55, 27.25, 26.91, 27.55, 26.20,
26.91, 26.92,
22114263, 589824680, 4695, 26.91, 57590, 26.90, 14700, 26.89,
14300,
26.88, 15100, 26.87, 3100, 26.92, 8900, 26.93, 14230, 26.94, 25150,
26.95, 15220, 26.96, 2008-01-11, 15:05:32";
这个字符串由许多数据拼接在一起,不同含义的数据用逗号隔开了,按照程序员的思路,顺序号从0开始。
0:”大秦铁路”,股票名字;
1:”27.55″,今日开盘价;
2:”27.25″,昨日收盘价;
3:”26.91″,当前价格;
4:”27.55″,今日最高价;
5:”26.20″,今日最低价;
6:”26.91″,竞买价,即“买一”报价;
7:”26.92″,竞卖价,即“卖一”报价;
8:”22114263″,成交的股票数,由于股票交易以一百股为基本单位,所以在使用时,通常把该值除以一百;
9:”589824680″,成交金额,单位为“元”,为了一目了然,通常以“万元”为成交金额的单位,所以通常把该值除以一万;
10:”4695″,“买一”申请4695股,即47手;
11:”26.91″,“买一”报价;
12:”57590″,“买二”
13:”26.90″,“买二”
14:”14700″,“买三”
15:”26.89″,“买三”
16:”14300″,“买四”
17:”26.88″,“买四”
18:”15100″,“买五”
19:”26.87″,“买五”
20:”3100″,“卖一”申报3100股,即31手;
21:”26.92″,“卖一”报价
(22, 23), (24, 25), (26,27), (28, 29)分别为“卖二”至“卖四的情况”
30:”2008-01-11″,日期;
31:”15:05:32″,时间;
Matlab 调用sina实时行情数据接口源码 matlab R2013a
function SysUpdateStockDataSets(StockCode)
if(StockCode==999999)
symbol=strcat('sh000001');
elseif(StockCode>=600000)%symbol='sz000415'
'sh600000';
symbol=strcat('sh',num2str(StockCode,'d'));
else
symbol=strcat('sz',num2str(StockCode,'d'));
end
url2Read=['http://hq.sinajs.cn/list=',symbol];
s=urlread(url2Read);
result=textscan(s,'%s','delimiter', ',');
result=result{1};
%Name=cell2mat(result(1));%名称
%Name=Name(22:end);
OpenPrice=str2double(result{2});% 今日开盘价;
TPrice=str2double(result{4});% 当前价格;
HighPrice=str2double(result{5});% 当前最高价格;
LowPrice=str2double(result{6});%当前最低价格
Vol=str2double(result{9});%成交量
CurrentStockData=single([today,OpenPrice,HighPrice,LowPrice,TPrice,Vol,0]);
⑵ 使用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画出股票的价格曲线
xlsread 可以导入数据 比如data=xlsread('dd.xls','Sheet1','B1:G2')就是读取dd.xls文件里面b1到g2之间的数据
⑷ 如何用matlab做1000次的门特卡罗模拟股票价格
用matlab算股票价格的收益率的方法:
在matlab里面通常指令是:log(Xt/Xt-1)。
其中Xt是某股票或某指内数第t天的容价格;
其中Xt-1是某股票或某指数第t-1天的价格.
股票收益率简介:
股票收益率指投资于股票所获得的收益总额与原始投资额的比率。股票得到投资者的青睐,是因为购买股票所带来的收益。股票的绝对收益率就是股息,相对收益就是股票收益率。
⑸ 用matlab 预测股票走势的函数
股票是不可预测的!
⑹ 如何使用matlab建立股票交易模型
您好,针对您的问题,国泰君安上海分公司给予如下解答
能否麻烦您把问专题再详细点叙属述,或者直接与我们联系,人工解答。
欢迎您登录国泰君安证券上海分公司网站人工咨询。
回答人:国泰君安证券上海分公司理财顾问曾经理
工号:011891
国泰君安证券——网络知道企业平台乐意为您服务!
如仍有疑问,欢迎向国泰君安证券上海分公司官网或企业知道平台提问。
⑺ 如何将EXCEL的股票数据导入到matlab软件中进行分析
望高手支招!
不一定要拷贝到data文件中啊,你使用xlsread时指定excel绝对路径就可以了嘛
二如果只是几个很大的矩阵数据,你直接在matlab中定义矩阵,再复制粘贴得了
定义矩阵就先定义个空的呗比如一维:a=zeros(1,n);%%这是1xn的二维:a=zeros(n)
%%这是nxn的
然后在workspace窗口打开这个空矩阵,把excel中的数直接复制过来就行了xlsread(),但是对excel表要求还挺高的,比如有次我就导入失败,是因为名字虽然是.xls,但是实际是
文本文件(制表符分隔)(*.txt)
格式的,所以你注意一下,对照matlab帮助,一般不会有问题如何把excel中的文本格式的数字转化成数值格式在一个空单元格输入1,并复制它选中要转化成数值的单元格区域
右击-选择性粘贴-乘补充回答:这样操作以后,仍不能转换数值,说明你原来的数据格式有问题,提示你检查以下几项:1、数据内是否存在空格,(可以通过查找替换,将空格替换掉)
2、数据内是否存在非法字符!清除后,就可以运算了有的时候还需要:把修改过的区域再进一步修改,全选中,然后“单元格格式”,把单元格格式由“常规”改为“数值”!!!
⑻ 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对股票数据做聚类分析
直接调kmeans函数。
k = 3;%类别数
idx = kmeans(X, k);%idx就是每个样本点的标号。
⑽ 想问一下怎样用MATLAB画10000条股票的价格走势图
xlsread 可以导入数据 比如data=xlsread('dd.xls','Sheet1','B1:G2')就是读取dd.xls文件里面b1到g2之间的数据!