楼主: xuning5176
12026 11

[学习分享] Matlab 如何从Yahoo上读取免费数据并画图 [推广有奖]

  • 11关注
  • 9粉丝

已卖:779份资源

讲师

87%

还不是VIP/贵宾

-

威望
0
论坛币
3812 个
通用积分
15.5361
学术水平
5 点
热心指数
3 点
信用等级
2 点
经验
4031 点
帖子
212
精华
0
在线时间
802 小时
注册时间
2009-10-13
最后登录
2025-5-28

楼主
xuning5176 发表于 2013-4-8 15:06:18 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
Matlab支持从金融数据提供商(包括yahoo,Bloomberg和Retuters)直接读取数据,当然啦,之后Yahoo是免费的。
那么我们如何读取这些数据呢。使用fetch函数
  该函数的帮助文件如下
    D = fetch(C,S,D1,D2,P) returns the data for the given security  for the date range D1 to D2 with a period of P.   P can be
    entered as:
   'd' for daily values.        'w' for weekly values.          'm' for monthly values.       'v' for dividends.

现在举例说明如何使用(斜体字代表是程序代码
案例:绘制标普500最近360个交易日的走势图。
Step1  到http://finance.yahoo.com 上搜索所需要股票(指数,期货,ETF等)的代码。  标普500的代码是^GSPC。
Step2  提取所需数据
fetch(yahoo,'^GSPC')   
   enter
显示当前该数据的最新值,以及当天的日期(数字格式)
结果如下
   Symbol: {'^GSPC'}
      Last: 1553.28
      Date: 735329.00
      Time: 0.69
    Change: -6.70
      Open: 1559.98
      High: 1559.98
       Low: 1539.50
    Volume: 547925568.00
当天时期减去380(一年365天,大约260个交易日,还有休市,所以选择380)。
然后使用函数    fetch

输入程序
735329.00-380
ans =
     734949.00
a=fetch(yahoo,'^GSPC', 734949.00,735329.00,'d')
得到如下结果
     735329.00       1559.98       1559.98       1539.50       1553.28 3515410000.00       1553.28
     735328.00       1553.69       1562.60       1552.52       1559.98 3350670000.00       1559.98
...
矩阵的各列分别表示(注意时间从上到下是倒序)
  Date                 Open             High             Low           Close     Volume                    Adj Close*
我们只需要第五列数据,而且时间是从过去到现在的。输入下面命名
SPClose= flipud(a(1:260,5))         %  flipud 是将矩阵的行进行倒排  , %
得到收盘价最新260个交易日的数据,且是按时间由过去到现在
数据已经得到。
Step3 绘图
在 Workspace中找到SPClose  可以看到它是260*1 double类型的数据
选中该变量,然后直接在Plot标签页中选择所需要的图形类型(这里选择plot图)。
如果是Matlab的较低版本可以在命令窗口中输入
plot(SPClose)

完成!
觉得有用记得给我评分呦!







二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:MATLAB YAHOO atlab matla YAHO 如何

已有 1 人评分学术水平 收起 理由
hzsh2009 + 1 观点有启发

总评分: 学术水平 + 1   查看全部评分

金融爱好者。

沙发
hzsh2009 发表于 2013-4-15 22:48:07
您好,当我输入 fetch(yahoo,'^GSPC')   的时候都是显示Undefined function or variable 'yahoo'. 这是因为我没装什么toolbox吗?应该如何解决呢?

藤椅
anycxy 在职认证  发表于 2013-4-15 23:13:24
太好了,正需要这个东西!

板凳
xuning5176 发表于 2013-4-15 23:22:34
hzsh2009 发表于 2013-4-15 22:48
您好,当我输入 fetch(yahoo,'^GSPC')   的时候都是显示Undefined function or variable 'yahoo'. 这是因为 ...
不要直接在fetch函数中使用yahoo。
我用的是2013a,遇到的问题和你一样。结果方法,
在调用fetch之前,在命令行中输入
c=yahoo;
然后用fetch(c,'  ') 就可以了。
比如

>> c=yahoo;
>> fetch(c,'GLD')
回车后
ans =

    Symbol: {'GLD'}
      Last: 131.9900
      Date: 735339
      Time: 0.4590
    Change: -11.9600
      Open: 136.0300
      High: 136.7500
       Low: 131.2300
    Volume: 42562652
金融爱好者。

报纸
hzsh2009 发表于 2013-4-17 00:00:32
xuning5176 发表于 2013-4-15 23:22
不要直接在fetch函数中使用yahoo。
我用的是2013a,遇到的问题和你一样。结果方法,
在调用fetch之前, ...
好像还是不行诶。。是我有什么地方没注意吗?
>> c=yahoo;
Undefined function or variable 'yahoo'.

>> c=yahoo;
fetch(c,'GLD')
Undefined function or variable 'yahoo'.

地板
xuning5176 发表于 2013-4-17 08:41:21
hzsh2009 发表于 2013-4-17 00:00
好像还是不行诶。。是我有什么地方没注意吗?
>> c=yahoo;
Undefined function or variable 'yahoo'.
可能是你的版本太低的问题吧,或者是网络连接的问题。
最新版本如何获得安装,看我之前的帖子
金融爱好者。

7
hzsh2009 发表于 2013-4-17 09:59:41
xuning5176 发表于 2013-4-17 08:41
可能是你的版本太低的问题吧,或者是网络连接的问题。
最新版本如何获得安装,看我之前的帖子
我是用2012b的,那我试试看载新的不吧。谢啦!

8
xuning5176 发表于 2013-4-17 10:12:02
hzsh2009 发表于 2013-4-17 09:59
我是用2012b的,那我试试看载新的不吧。谢啦!
https://bbs.pinggu.org/thread-2293462-1-1.html
这个不错,是2013a
已有 1 人评分学术水平 热心指数 收起 理由
hzsh2009 + 1 + 1 好的意见建议 谢谢!

总评分: 学术水平 + 1  热心指数 + 1   查看全部评分

金融爱好者。

9
吉文子 发表于 2013-7-17 10:42:12
楼主强人呀

10
树林儿 发表于 2015-11-3 20:46:09
>> clear
>> c=yahoo

c =

  yahoo (带属性):

     url: 'http://download.finance.yahoo.com'
      ip: []
    port: []

>> fetch(c,'000001.SS')
错误使用 datenum (line 178)
DATENUM 失败。

出错 yahoo/fetch>DateNA2NaN (line 566)
  tmpdat = datenum(dt(j));

出错 yahoo/fetch (line 254)
        tmpd{j} = DateNA2NaN(tmpd{j});

原因:
    错误使用 datevec (line 212)
    无法查找一年中的月份。


用'^GSPC'和‘GLD’试了一下都挺好的,但是怎么用上证代码出现这种情况?谢谢!!

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-26 10:59