Matlab通过Yahoo与Sina获取历史与实时股票数据[faruto版本]
发布:faruto | 分类:Matlab软件培训
关于本站
人大经济论坛-经管之家:分享大学、考研、论文、会计、留学、数据、经济学、金融学、管理学、统计学、博弈论、统计年鉴、行业分析包括等相关资源。
经管之家是国内活跃的在线教育咨询平台!
获取电子版《CDA一级教材》
完整电子版已上线CDA网校,累计已有10万+在读~ 教材严格按考试大纲编写,适合CDA考生备考,也适合业务及数据分析岗位的从业者提升自我。
TOP热门关键词
以前做的一些东西。和大家分享~~原帖地址:Matlab通过Yahoo与Sina获取历史与实时股票数据[faruto版本]http://www.matlabsky.com/thread-38988-1-1.html==============================通过访问Yahoo和Sina的URL进行股 ...
扫码加入金融交流群![]() |
原帖地址:
Matlab通过Yahoo与Sina获取历史与实时股票数据[faruto版本]
http://www.matlabsky.com/thread-38988-1-1.html
==============================
通过访问Yahoo和Sina的URL进行股票数据的提取,其中部分函数的实现是基于 郑志勇兄弟( ariszheng @http://www.ariszheng.com/) 的相关函数进行修改优化而成。
这部分东西一直想抽时间弄来着,这段有点犯懒。O(∩_∩)O
历史数据通过YahooData.m函数实现,访问的Yahoo的URL形式为
- url2Read=sprintf(...
- 'http://ichart.finance.yahoo.com/table.csv?s=%s&a=%s&b=%s&c=%s&d=%s&e=%s&f=%s&g=%s&ignore=.csv', StockName, ms, ds, ys, me, de, ye, Freq);
可以获取某一股票的日、周、月 的历史数据。
实时数据通过SinaData.m函数实现,访问的Sina的URL形式为
- url2Read=['http://hq.sinajs.cn/list=',StockCode];
测试脚本 SinaYahooDataTest.m
- %% SinaYahooDataTest
- % by LiYang
- % Email:farutoliyang@gmail.com
- % 2013/11/26
- %% A Little Clean Work
- tic;
- clear;
- clc;
- close all;
- format compact;
- %% 获取历史数据测试
- % 历史数据通过Yahoo接口获得 (历史数据为未复权数据,使用时候请注意)
- % Yahoo中证券代码为 (上海 .ss 深圳 .sz),例如招商银行,600036.ss
- StockName = '600036.ss';
- StartDate = today-200;
- EndDate = today;
- Freq = 'd';
- [DataYahoo, Date_datenum, Head]=YahooData(StockName, StartDate, EndDate, Freq);
- % K线展示
- scrsz = get(0,'ScreenSize');
- figure('Position',[scrsz(3)*1/4 scrsz(4)*1/6 scrsz(3)*4/5 scrsz(4)]*3/4);
- Open = DataYahoo(:,2);
- High = DataYahoo(:,3);
- Low = DataYahoo(:,4);
- Close = DataYahoo(:,5);
- MT_candle(High,Low,Close,Open,[],Date_datenum);
- xlim( [0 length(Open)+1] );
- title(StockName);
- %% 获取实时数据测试
- % Sina中证券代码为 (sh. 上海 sz.深圳),例如招商银行sh600036
- StockCode='sh600036';
- [DataSina, DataCell]=SinaData(StockCode);
- DataCell
- %% Record Time
- toc;
- DataCell =
- '招商银行_sh600036' '股票名称代码'
- '2013-11-27' '日期'
- '10:28:22' '时间'
- [ 10.8400] '今开盘'
- [ 10.8300] '昨收盘'
- [ 10.7800] '当前价'
- [ 10.8500] '今最高'
- [ 10.7600] '今最低'
- [ 10.7700] '竞买价,即“买一”报价'
- [ 10.7800] '竞卖价,即“卖一”报价'
- [ 11165602] '成交量,单位“股”'
- [ 120618712] '成交额,单位“元”'
- [ 17119] '买一量'
- [ 10.7700] '买一价'
- [ 348053] '买二量'
- [ 10.7600] '买二价'
- [ 509400] '买三量'
- [ 10.7500] '买三价'
- [ 129800] '买四量'
- [ 10.7400] '买四价'
- [ 236600] '买五量'
- [ 10.7300] '买五价'
- [ 36790] '卖一量'
- [ 10.7800] '卖一价'
- [ 50257] '卖二量'
- [ 10.7900] '卖二价'
- [ 158371] '卖三量'
- [ 10.8000] '卖三价'
- [ 143496] '卖四量'
- [ 10.8100] '卖四价'
- [ 33665] '卖五量'
- [ 10.8200] '卖五价'
- function [Data, Date_datenum, Head]=YahooData(StockName, StartDate, EndDate, Freq)
- % by LiYang(faruto) @http://www.matlabsky.com
- % 本函数是基于 ariszheng @http://www.ariszheng.com/ 的相关函数进行修改而成
- % 用来通过Yahoo获取股票历史数据
- % 历史数据通过Yahoo接口获得 (历史数据为未复权数据,使用时候请注意)
- %% 输入参数
- % StockName 证券代码(上海 .ss 深圳 .sz)
- % StartDate, EndDate 时间段的开始日与结束日
- % Freq 频率
- %% 测试函数
- % StockName = '600036.ss';
- % StartDate = today-200;
- % EndDate = today;
- % Freq = 'd';
- % [DataYahoo, Date_datenum, Head]=YahooData(StockName, StartDate, EndDate, Freq);
- %% 数据时间区间
- startdate=StartDate;
- enddate=EndDate;
- %字符串变化
- ms=num2str(str2double(datestr(startdate, 'mm'))-1);
- ds=datestr(startdate, 'dd');
- ys=datestr(startdate, 'yyyy');
- me=num2str(str2double(datestr(enddate, 'mm'))-1);
- de=datestr(enddate, 'dd');
- ye=datestr(enddate, 'yyyy');
- % s: 股票代码 (e.g. 002036.SZ 300072.SZ 600036.SS 等)
- % c-a-b: 起始日期年、月、日 (月份的起始索引为0) 2010-5-11 = 2010年6月11日
- % f-d-e: 结束日期年、月、日 (月份的起始索引为0) 2010-7-23 = 2010年8月23日
- % g: 时间周期。d=每日,w=每周,m=每月,v=只返回除权数据
- % 省略所有参数,只制定股票代码时,返回所有历史数据
- url2Read=sprintf(...
- 'http://ichart.finance.yahoo.com/table.csv?s=%s&a=%s&b=%s&c=%s&d=%s&e=%s&f=%s&g=%s&ignore=.csv', StockName, ms, ds, ys, me, de, ye, Freq);
- s=urlread_General(url2Read);
- Head = ['Date Open High Low Close Volume AdjClose'];
- Result=textscan(s, '%s %s %s %s %s %s %s', 'delimiter', ',');
- temp = Result{1,1};
- Date_datestr = temp(2:end);
- Date_datestr = Date_datestr(end:(-1):1);
- temp = Result{1,2};
- temp = cellfun(@str2double, temp(2:end));
- temp = temp(end:(-1):1);
- Open = temp;
- temp = Result{1,3};
- temp = cellfun(@str2double, temp(2:end));
- temp = temp(end:(-1):1);
- High = temp;
- temp = Result{1,4};
- temp = cellfun(@str2double, temp(2:end));
- temp = temp(end:(-1):1);
- Low = temp;
- temp = Result{1,5};
- temp = cellfun(@str2double, temp(2:end));
- temp = temp(end:(-1):1);
- Close = temp;
- temp = Result{1,6};
- temp = cellfun(@str2double, temp(2:end));
- temp = temp(end:(-1):1);
- Volume = temp;
- temp = Result{1,7};
- temp = cellfun(@str2double, temp(2:end));
- temp = temp(end:(-1):1);
- AdjClose = temp;
- Date_datenum = datenum(Date_datestr);
- Date_double = str2num( datestr(Date_datenum, 'yyyymmdd') );
- Data = [Date_double, Open, High, Low, Close, Volume, AdjClose];
- end
整理所有函数源码打包下载。
Matlab通过Yahoo与Sina获取历史与实时股票数据[faruto版本]
「经管之家」APP:经管人学习、答疑、交友,就上经管之家!
免流量费下载资料----在经管之家app可以下载论坛上的所有资源,并且不额外收取下载高峰期的论坛币。
涵盖所有经管领域的优秀内容----覆盖经济、管理、金融投资、计量统计、数据分析、国贸、财会等专业的学习宝库,各类资料应有尽有。
来自五湖四海的经管达人----已经有上千万的经管人来到这里,你可以找到任何学科方向、有共同话题的朋友。
经管之家(原人大经济论坛),跨越高校的围墙,带你走进经管知识的新世界。
扫描下方二维码下载并注册APP
免流量费下载资料----在经管之家app可以下载论坛上的所有资源,并且不额外收取下载高峰期的论坛币。
涵盖所有经管领域的优秀内容----覆盖经济、管理、金融投资、计量统计、数据分析、国贸、财会等专业的学习宝库,各类资料应有尽有。
来自五湖四海的经管达人----已经有上千万的经管人来到这里,你可以找到任何学科方向、有共同话题的朋友。
经管之家(原人大经济论坛),跨越高校的围墙,带你走进经管知识的新世界。
扫描下方二维码下载并注册APP
您可能感兴趣的文章
- Matlab软件 ... | [视频]Matlab基础班&Matlab数据 ...
- Matlab软件 ... | Matlab 2011a绿色版+完整版合集( ...
- Matlab软件 ... | Numerical Computing with MATLA ...
- Matlab软件 ... | TIOBE 2013年1月编程语言排行榜— ...
- Matlab软件 ... | MATLAB科学计算与可视化仿真宝典
- Matlab软件 ... | [求助]请教如何用matlab求下面的 ...
- Matlab软件 ... | 推荐给初学者 Mathematical Expl ...
- Matlab软件 ... | matlab循环出问题?
人气文章
本文标题:Matlab通过Yahoo与Sina获取历史与实时股票数据[faruto版本]
本文链接网址:https://bbs.pinggu.org/jg/ruanjianpeixun_matlabruanjianpeixun_2903014_1.html
2.转载的文章仅代表原创作者观点,与本站无关。其原创性以及文中陈述文字和内容未经本站证实,本站对该文以及其中全部或者部分内容、文字的真实性、完整性、及时性,不作出任何保证或承若;
3.如本站转载稿涉及版权等问题,请作者及时联系本站,我们会及时处理。



