全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 MATLAB等数学软件专版
11915 11
2013-04-08
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)

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







二维码

扫码加我 拉你入群

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

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

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

扫码加我 拉你入群

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

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

2013-4-15 23:13:24
太好了,正需要这个东西!
二维码

扫码加我 拉你入群

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

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

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
二维码

扫码加我 拉你入群

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

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

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'.
二维码

扫码加我 拉你入群

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

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

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

扫码加我 拉你入群

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

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

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群