如何使用沃顿研究数据中心(WRDS,CRSP)查询美股历史交易数据(R语言的调用方法以及代码示例)

https://wrds-web.wharton.upenn.edu/wrds/

WRDS 沃顿商学院金融系列数据库是由宾夕法尼亚大学沃顿商学院开发的金融领域的跨库研究工具,同时也包含Compustat(

标准普尔公司会计数据库)和 CRSP(美国股票和指数资料数据)。

此处主要是使用其中的 CRSP 数据库,该数据库包含了自1926年以来各美国上市公司的股票价格、收益、交易信息等数据(包括中途退市的公司信息),非常有利于研究。

这里记录的主要是我自己使用的时候用到的一些部分。

1.注册

http://wrds-web.wharton.upenn.edu

上面是WRDS的注册页面,许多高校和企业都订购了这个数据库,可以在[Institution]下拉菜单中看是否有自己的学校或者机构,然后根据学校图书馆提供的方法注册WRDS用户 。




在获得WRDS用户并成功登陆以后就可以在 Your Subscription看到该账户订购的数据库。博主想要使用的是其中的 CRSP 数据库,因此点击 CRSP ,会出现三种分别是按年度,季度,月度更新的数据(此处的更新方式是指指标的更新方式而非returns 或 price 的记录方式,若只是查询收益市值等数据则不影响)。

2. 单只股票的历史数据查询 

点击 CRSP---Stock/Security Files----Monthly/Daily Stock File 即可进入月/日数据的网页查询界面。

第一步: 选择所需数据的时间范围(最早可以到1925年9月至2017年12月)


第二步:输入想要查询的公司的TICKER名称\PERMNO\PERMCO\CUSIP 等。

此处以IBM公司为例,选择PERMNO,并输入其五位编码12490.PERMNO 是由CRSP为所有证券提供的五位永久唯一编码,各公司各代码均可以通过下方Code Lookup进行查询


第三步:选择想要查询的内容,例如 市值price \ 收益Holding Period Return。


第四步: 选择输出格式 。(博主需要使用R进行后续数据处理,为利于后续读取选择 .csv格式)

提交表单后就可以得到相应的数据下载链接


此处也可以看到,我们查询的是PERMNO编码为12490的股票的2007年1月1日至2017年12月31日的日收益(RET)和价格(PRC)数据。  


3. 股票PERMNO查询以及批量数据查询

在刚才的查询界面可以看到,CRSP提供批量数据查询。在进行批量查询的时候,需要提供所有待查询的公司股票代码,并将这些代码放在一个 .txt 文档里面,按每行一个代码排列。考虑到操作简便性,可视性和准确性,可以先在CRSP中直接调出所有公司的PERMNO代码,然后使用其他工具如EXCEL/SQL等进行查找,方法如下:

点击 CRSP---Tools---Translate to PERMCO/PERMNO 可以进入查询PERMNO代码界面

第一步: 选择所需数据的时间范围,或点击下方查找所有的历史代码ALL PERMNOS

第二步:输入想要查找的TICKER\NCUSIP

 可以直接选择最后一项 Seach the entire database 查找所有

第三步:选择输出数据

此处可选择Company Name\Ticker\NCUSIP等后续方便查找

第四步:选择输出格式

提交表单即可得到相应的数据如下



 

然后查找自己所需的公司的PERMNOs制作用于批量查找的 .tex文件,  如下:


(此处查询的是标准普尔500即S&P500的所有成分股的数据,该LIST包含历史上所有曾包含在S&P500中的成分股的PERMNO代码,这个LIST在CRSP中可以直接查询到,但这个数据并不支持网页查找,需要访问CRSP的云数据库下载,具体下载方法以及代码将在后面描述。)

在获得需要查找的list文件后,再次进入 CRSP---Stock/Security Files----Monthly/Daily Stock File 的查询界面,在Step2 选择第二项,并上传该 .txt 文件如下


其他步骤与单只股票查询步骤相同,提交表单即可得到批量查询数据如下


注意,由于CRSP返回的批量数据是将不同公司股票在其可查询段内所有数据按列拼接,因此当查询的数据非常多(股票数多且时间范围较长)的时候,返回的数据维度非常高,可能会导致生成的文件无法完全打开。


4.使用Rstudio访问WRDS云数据库

在WRDS官网的support栏目可以看到,该数据库支持多种软件 R,SAS,Python等直接远程访问WRDS Cloud,并且都给出了具体方法,下面将根据官网指南给出使用 R访问WRDS Cloud 方法,并举例说明常用的获取数据的方法:

Introduction to R at WRDS

4.1 使用SSH链接 WRDS Cloud

linux系统或者安装了虚拟linux的win10可以直接在bash中输入 

ssh 你的WRDS用户名@wrds-cloud.wharton.upenn.edu

然后输入你的WRDS密码链接WRDS Cloud

win系统则需要安装SSH client SSH client 安装 

4.2 初始化安装

在R中安装 RPostgres包

install.packages("RPostgres")

然后在云目录下生成一个 .Rprofile文件输入以下内容

library(RPostgres)
wrds <- dbConnect(Postgres(), 
                  host='wrds-pgdata.wharton.upenn.edu',
                  port=9737,
                  user='你的wrds用户名',
                  password='你的wrds密码',
                  sslmode='require',
                  dbname='wrds')

然后加密

chmod 600 ~/.Rprofile
也可直接在Rtodio中运行上述程序,这个过程只用进行一次。

4.3 获取数据

在进行了上述初始化步骤后,就可以在Rstudio中利用简单的SQL语句查找WRDS中的数据了

res <- dbSendQuery(wrds, "SELECT * FROM dataset")
data <- dbFetch(res, n=-1)
dbClearResult(res)
data

基础语句如上图,在wrds中调取dataset.


下面来举个例子。这里尝试在R中调取刚才在第二章提到的IBM公司的股票数据,即PERMNO编码为12490的股票的2007年1月1日至2017年12月31日的日收益和价格数据。

首先我们需要知道这数据储存在哪个文件中,在首页的suppot栏目中可以看到Dataset Lists


在其中选择CRSP---CRSP Annual Updata 可以找到我们需要的储存了 Daily Stocks 数据的文件名为DSF


点进去则可以看到其中包含的变量的名称和示意。此处我们需要按PERMNO和时间查找股票的收益和价格,因此我们找到相应的变量并记下其变量名分别为PERMNO,DATE, PRC, RET




带入相应的查询值则可以得到与刚才在网页查询相同且精度更高的数据

res <- dbSendQuery(wrds, "SELECT PERMNO,DATE,RET,PRC FROM DSF
        where DATE between '2007-01-01' 
                   and '2017-12-31' and  PERMNO=12490")
data <- dbFetch(res, n=-1)
dbClearResult(res)
write.table(data,file="储存的文件名.txt",row.names = FALSE,quote=FALSE)


同样,刚才提到的储存了标准普尔500即S&P500成分股数据的列表可以通过下叙语句得到,该数据包含在DSP500LIST文件中


res <- dbSendQuery(wrds, "SELECT PERMNO,start,ending FROM DSP500LIST")
data <- dbFetch(res)
dbClearResult(res)
write.table(data,file="DSP500LIST.csv",row.names = FALSE,
            col.names = FALSE)

得到的DSP500LIST文件中包括历史上所有曾包含在S&P500中的成分股的PERMNOs以及他们被包含在S&P500中的起始和终止时间。

另附上生成从DSP500LIST文件中提取并生成用于批量查询的 .txt文件的语句

res <- dbSendQuery(wrds, "SELECT PERMNO FROM DSP500LIST")
data <- dbFetch(res)
dbClearResult(res)
write.table(data,file="SP500PERMNO.txt",row.names = FALSE,
     col.names = FALSE)

其他的查询方法可以参照官方指南,就算不会sql也比较容易看懂。

https://blog.csdn.net/nya0731/

  • 19
    点赞
  • 71
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
金融数据库是指收集、整理、存储和管理与金融相关的各类数据数据库系统。它包括了证券、期货、外汇、债券、基金等各类金融市场的行情数据历史数据、财务数据交易数据、资讯数据等。金融数据库的应用领域非常广泛,比如金融研究、投资决策、风险管理、期权估值、金融工程等。 国内外金融数据库的应用情况如下: 1. 国外金融数据库的应用情况: - 财经媒体:CNN Money、Bloomberg、Reuters等财经媒体的金融数据库是其资讯报道的重要依据。 - 投资机构:国际上的大型投资机构如BlackRock、J.P.Morgan等都有自己的金融数据库,用于投资决策、风险控制等。 - 学术界:学术界研究金融问题时,也需要使用金融数据库,比如Wharton Research Data Services (WRDS)、Center for Research in Security Prices (CRSP)等。 2. 国内金融数据库的应用情况: - 金融机构:国内的各大银行、证券公司、基金公司等都有自己的金融数据库,用于投资决策、风险控制等。 - 学术界:国内的高校和研究机构也需要使用金融数据库进行金融研究,比如中国金融研究院、清华大学金融系等。 - 政府部门:金融监管部门、统计机构等也需要使用金融数据库进行数据分析和政策制定。比如中国人民银行、国家统计局等。 总之,金融数据库是各个金融领域必不可少的基础设施,其应用范围和需求量在不断扩大。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值