Matlab通过Yahoo与Sina获取历史与实时股票数据[faruto版本]-经管之家官网!

人大经济论坛-经管之家 收藏本站
您当前的位置> 软件培训>>

Matlab软件培训

>>

Matlab通过Yahoo与Sina获取历史与实时股票数据[faruto版本]

Matlab通过Yahoo与Sina获取历史与实时股票数据[faruto版本]

发布:faruto | 分类:Matlab软件培训

关于本站

人大经济论坛-经管之家:分享大学、考研、论文、会计、留学、数据、经济学、金融学、管理学、统计学、博弈论、统计年鉴、行业分析包括等相关资源。
经管之家是国内活跃的在线教育咨询平台!

获取电子版《CDA一级教材》

完整电子版已上线CDA网校,累计已有10万+在读~ 教材严格按考试大纲编写,适合CDA考生备考,也适合业务及数据分析岗位的从业者提升自我。

完整电子版已上线CDA网校,累计已有10万+在读~ 教材严格按考试大纲编写,适合CDA考生备考,也适合业务及数据分析岗位的从业者提升自我。

以前做的一些东西。和大家分享~~原帖地址: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形式为
  1. url2Read=sprintf(...
  2. '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形式为
  1. url2Read=['http://hq.sinajs.cn/list=',StockCode];
复制代码可以获取某一股票的实时数据,进而再结合timer函数就可以获取某一股票当天的实时行情(这部分懒得弄了)。
测试脚本 SinaYahooDataTest.m
  1. %% SinaYahooDataTest
  2. % by LiYang
  3. % Email:farutoliyang@gmail.com
  4. % 2013/11/26
  5. %% A Little Clean Work
  6. tic;
  7. clear;
  8. clc;
  9. close all;
  10. format compact;
  11. %% 获取历史数据测试

  12. % 历史数据通过Yahoo接口获得 (历史数据为未复权数据,使用时候请注意)
  13. % Yahoo中证券代码为 (上海 .ss 深圳 .sz),例如招商银行,600036.ss

  14. StockName = '600036.ss';
  15. StartDate = today-200;
  16. EndDate = today;
  17. Freq = 'd';
  18. [DataYahoo, Date_datenum, Head]=YahooData(StockName, StartDate, EndDate, Freq);

  19. % K线展示
  20. scrsz = get(0,'ScreenSize');
  21. figure('Position',[scrsz(3)*1/4 scrsz(4)*1/6 scrsz(3)*4/5 scrsz(4)]*3/4);

  22. Open = DataYahoo(:,2);
  23. High = DataYahoo(:,3);
  24. Low = DataYahoo(:,4);
  25. Close = DataYahoo(:,5);
  26. MT_candle(High,Low,Close,Open,[],Date_datenum);
  27. xlim( [0 length(Open)+1] );
  28. title(StockName);
  29. %% 获取实时数据测试
  30. % Sina中证券代码为 (sh. 上海 sz.深圳),例如招商银行sh600036

  31. StockCode='sh600036';
  32. [DataSina, DataCell]=SinaData(StockCode);
  33. DataCell
  34. %% Record Time
  35. toc;
复制代码运行结果
  1. DataCell =
  2. '招商银行_sh600036' '股票名称代码'
  3. '2013-11-27' '日期'
  4. '10:28:22' '时间'
  5. [ 10.8400] '今开盘'
  6. [ 10.8300] '昨收盘'
  7. [ 10.7800] '当前价'
  8. [ 10.8500] '今最高'
  9. [ 10.7600] '今最低'
  10. [ 10.7700] '竞买价,即“买一”报价'
  11. [ 10.7800] '竞卖价,即“卖一”报价'
  12. [ 11165602] '成交量,单位“股”'
  13. [ 120618712] '成交额,单位“元”'
  14. [ 17119] '买一量'
  15. [ 10.7700] '买一价'
  16. [ 348053] '买二量'
  17. [ 10.7600] '买二价'
  18. [ 509400] '买三量'
  19. [ 10.7500] '买三价'
  20. [ 129800] '买四量'
  21. [ 10.7400] '买四价'
  22. [ 236600] '买五量'
  23. [ 10.7300] '买五价'
  24. [ 36790] '卖一量'
  25. [ 10.7800] '卖一价'
  26. [ 50257] '卖二量'
  27. [ 10.7900] '卖二价'
  28. [ 158371] '卖三量'
  29. [ 10.8000] '卖三价'
  30. [ 143496] '卖四量'
  31. [ 10.8100] '卖四价'
  32. [ 33665] '卖五量'
  33. [ 10.8200] '卖五价'
复制代码YahooData.m函数源码
  1. function [Data, Date_datenum, Head]=YahooData(StockName, StartDate, EndDate, Freq)
  2. % by LiYang(faruto) @http://www.matlabsky.com
  3. % 本函数是基于 ariszheng @http://www.ariszheng.com/ 的相关函数进行修改而成
  4. % 用来通过Yahoo获取股票历史数据
  5. % 历史数据通过Yahoo接口获得 (历史数据为未复权数据,使用时候请注意)
  6. %% 输入参数
  7. % StockName 证券代码(上海 .ss 深圳 .sz)
  8. % StartDate, EndDate 时间段的开始日与结束日
  9. % Freq 频率
  10. %% 测试函数
  11. % StockName = '600036.ss';
  12. % StartDate = today-200;
  13. % EndDate = today;
  14. % Freq = 'd';
  15. % [DataYahoo, Date_datenum, Head]=YahooData(StockName, StartDate, EndDate, Freq);

  16. %% 数据时间区间
  17. startdate=StartDate;
  18. enddate=EndDate;
  19. %字符串变化
  20. ms=num2str(str2double(datestr(startdate, 'mm'))-1);
  21. ds=datestr(startdate, 'dd');
  22. ys=datestr(startdate, 'yyyy');
  23. me=num2str(str2double(datestr(enddate, 'mm'))-1);
  24. de=datestr(enddate, 'dd');
  25. ye=datestr(enddate, 'yyyy');

  26. % s: 股票代码 (e.g. 002036.SZ 300072.SZ 600036.SS 等)
  27. % c-a-b: 起始日期年、月、日 (月份的起始索引为0) 2010-5-11 = 2010年6月11日
  28. % f-d-e: 结束日期年、月、日 (月份的起始索引为0) 2010-7-23 = 2010年8月23日
  29. % g: 时间周期。d=每日,w=每周,m=每月,v=只返回除权数据
  30. % 省略所有参数,只制定股票代码时,返回所有历史数据
  31. url2Read=sprintf(...
  32. '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);

  33. s=urlread_General(url2Read);

  34. Head = ['Date Open High Low Close Volume AdjClose'];
  35. Result=textscan(s, '%s %s %s %s %s %s %s', 'delimiter', ',');

  36. temp = Result{1,1};
  37. Date_datestr = temp(2:end);
  38. Date_datestr = Date_datestr(end:(-1):1);

  39. temp = Result{1,2};
  40. temp = cellfun(@str2double, temp(2:end));
  41. temp = temp(end:(-1):1);
  42. Open = temp;

  43. temp = Result{1,3};
  44. temp = cellfun(@str2double, temp(2:end));
  45. temp = temp(end:(-1):1);
  46. High = temp;

  47. temp = Result{1,4};
  48. temp = cellfun(@str2double, temp(2:end));
  49. temp = temp(end:(-1):1);
  50. Low = temp;

  51. temp = Result{1,5};
  52. temp = cellfun(@str2double, temp(2:end));
  53. temp = temp(end:(-1):1);
  54. Close = temp;

  55. temp = Result{1,6};
  56. temp = cellfun(@str2double, temp(2:end));
  57. temp = temp(end:(-1):1);
  58. Volume = temp;

  59. temp = Result{1,7};
  60. temp = cellfun(@str2double, temp(2:end));
  61. temp = temp(end:(-1):1);
  62. AdjClose = temp;

  63. Date_datenum = datenum(Date_datestr);
  64. Date_double = str2num( datestr(Date_datenum, 'yyyymmdd') );

  65. Data = [Date_double, Open, High, Low, Close, Volume, AdjClose];

  66. end
复制代码其中YahooData.m和SinaData.m函数会用到一个 urlread_General.m 读取网页的函数,是重新封装的,matlab的老版本的urlread再读取中文网页时会有乱码,所以这里做了一些处理。
整理所有函数源码打包下载。
Matlab通过Yahoo与Sina获取历史与实时股票数据[faruto版本]
「经管之家」APP:经管人学习、答疑、交友,就上经管之家!
免流量费下载资料----在经管之家app可以下载论坛上的所有资源,并且不额外收取下载高峰期的论坛币。
涵盖所有经管领域的优秀内容----覆盖经济、管理、金融投资、计量统计、数据分析、国贸、财会等专业的学习宝库,各类资料应有尽有。
来自五湖四海的经管达人----已经有上千万的经管人来到这里,你可以找到任何学科方向、有共同话题的朋友。
经管之家(原人大经济论坛),跨越高校的围墙,带你走进经管知识的新世界。
扫描下方二维码下载并注册APP
本文关键词:

本文论坛网址:https://bbs.pinggu.org/thread-2903014-1-1.html

人气文章

1.凡人大经济论坛-经管之家转载的文章,均出自其它媒体或其他官网介绍,目的在于传递更多的信息,并不代表本站赞同其观点和其真实性负责;
2.转载的文章仅代表原创作者观点,与本站无关。其原创性以及文中陈述文字和内容未经本站证实,本站对该文以及其中全部或者部分内容、文字的真实性、完整性、及时性,不作出任何保证或承若;
3.如本站转载稿涉及版权等问题,请作者及时联系本站,我们会及时处理。
数据分析师 人大经济论坛 大学 专业 手机版
联系客服
值班时间:工作日(9:00--18:00)