前几天看到微博上有朋友在问哪里可以找到美国的货币数据。如果需要的只是近代的数据,这其实真不是一件难事,找FRED即可。
FRED全称是Federal Reserve Economic Data,网址是http://research.stlouisfed.org/fred2/
,这是美联储圣路易斯分局推出的一项免费服务,有来自41个数据源的45000项数据,大体关于美国的公开宏观数据,这里面都有——更关键的是,一切都是免费的,而且界面友好的。当然,这个数据库中也有中国的宏观经济数据,不过因为不是直接从中国的国家统计局获得而是通过IMF这样的二传手,所以时间延迟很厉害,比如中国的M1、M2数据这上面还是2月份的。所以如果你主要研究美国的宏观数据,或者要调取汇率、油价等数据,这个数据库是大有用处。
要从这个数据库调取数据,通过网页浏览是最简单的;它家也提供Excel插件可以提取数据,这里要谈的则是第三种方法,利用量化研究常用的Matlab来调取。
在Matlab中,因为有FRED数据库的专用接口,所以整个工作是相当容易的。
首先,你得建立一个数据链接,并赋予给一个变量:
然后你得知道你需要调取的数据的名称,这个就得在FRED的网页上寻找。比如说我们搜索美国的CPI数据,可以看到很多结果,下图就是最常用的Consumer
Price Index for All Urban Consumers: All Items
,在名称下方的那个"CPIAUCSL"就是数据的名称,调用时得用到这个。
然后就可以在Matlab中输入命令调用了。我们用的是fetch命令,这条命令很简单,第一个参数是数据连接变量,第二个是FRED内部的数据名称,第三第四个则是开始和结束的时间段。比如下一条命令就是调取2000年迄今的CPI数据。
Matlab返回的是一个数组变量,其中的Data是真正有用的数据,第一列是时间,第二列是数据。比如使用fd.Data就可以直接调用,当然也可以用fints转换成金融序列再处理。