感谢西伯利亚的寒流,为我们带来了冰冷而又清新的空气
关心天气,更关心你
诸君安。
有雪,有啤酒,有炸鸡,最开心的是
有你
有stata,有chinafin
还有
cnstock
——李春涛教授携高徒薛原、李子健重磅推出
回顾往期推文,我们给大家介绍过stata神器chinafin,详见往期推文天路——chinafin与cntrade命令,今天,我们介绍大家cnstock命令,和chinafin搭配刚刚好。
chinafin能够从互联网下载中国上市公司的历史财务数据。当我们希望批量下载多个上市公司的财务数据时,比照之前推文中讲过的cntrade命令批量下载数据的方法是否可行。
当 我们希望下载深圳主板的上市公司财务数据时。由于chinafin命令的数据源不公布退市公司的财务数据,因此PT金田A(000003)的数据不存在, 我们无法得到该公司的财务数据,那么有什么办法能够令我们的循环在下载上市公司财务数据的时候,不包括已经退市的上市公司,继续数据下载呢?那就用到本文 重点推荐的cnstock命令。
cnstock命令能够下载最新中国沪深两市上市公司的公司名称以及股票代码。大家要使用这个命令,首先要进行安装,安装命令为:
ssc install cnstock
当我们运用help命令就能够了解到cnstock命令的信息以及具体用法:
help cnstock
cnstock命令的语法为:
cnstock exchange, [options]
cnstock命令之后加证券交易市场(exchange)缩写,就能够得到该交易市场的上市公司的公司名称以及股票代码,每个不同的证券交易市场缩写有其含义:
SHA:上海A股市场(Shanghai A-share)
SZM:深圳主板市场(Shenzhen Stock Exchange)
SZSM:深圳中小板市场(Small and Medium-sized Enterprises of Shenzhen)
SZGE:深圳创业板市场(Growth Enterprise Market of Shenzhen)
SHB:上海B股市场(Shanghai B-share)
SZB:深圳B股市场(Shenzhen B-share)
选项(options):path( )定义下载数据的路径,在默认情况下是保存到当前工作路径。
下面,我们来演示一下cnstock命令的具体用法:
例如,我们要下载上海A股(SHA)的上市公司名称及股票代码,可以输入命令:
cnstock SHA
这样,我们就下载到了上海A股市场的上市公司名称(stknm)及股票代码(stkcd)。这个文件在我们的默认路径下面保存成cnstock的dta文件。
当我们希望下载多个交易市场的上市公司名称以及股票代码,可在cnstock命令后直接跟上这些交易市场的名称,并以空格来分隔。
例如我们希望得到深圳主板市场(SZM)、深圳中小板市场(SZSM)、深圳创业板市场(SZGE)的上市公司名称以及股票代码,可以输入命令:
cnstock SZM SZSM SZGE
这样,我们就下载到了深圳主板市场、深圳中小板市场和深圳创业板市场的上市公司名称(stknm)及股票代码(stkcd)。这个文件在我们的默认路径下面保存成cnstock的dta文件。
当我们希望得到所有的上海A股市场、深圳主板市场、深圳中小板市场、深圳创业板市场、上海B股市场、深圳B股市场的上市公司名称与股票代码。不需要在cnstock命令后跟这些市场的缩写,可在命令后直接跟all,并保存在路径为D:/temp/的文件下。命令如下:
cnstock all,path(D:/temp/)
这样,我们就下载到了中国沪深两市的所有上市公司名称(stknm)及股票代码(stkcd)。这个文件在D:/temp/下保存成cnstock的dta文件。
之后我们就来解决chinafin批量下载上市公司的财务数据的问题。例如我们下载深圳主板市场上市公司的财务数据。可将cnstock与chinafin强强联合,批量财务数据的获得易如反掌啦!
第一步:下载深圳主板市场最新上市公司名称与股票代码,并保存至d:/chinafin路径下
cnstock SZM,path(d:/chinafin)
第二步:依照最新上市公司股票代码,运用levelsof进行批量宏循环,通过chinafin批量下载上市公司财务数据。
use " d:/chinafin/cnstock.dta"
levelsof stkcd,local(levels)
foreach c of local levels {
chinafin `c'
}
第三步:对上市公司财务数据进行合并,并保存至当前工作路径下
erase cnstock.dta
openall *
我们可以看到深圳主板市场最新上市公司财务数据已合并得到,包括上市公司年度的货币资金、交易性金融资产、应收票据、应收账款等等财务数据。
另外cnstock与cntrade搭配,批量下载上市公司历史市场报价;以及cnstock与cnintraday搭配,批量下载上市公司日分笔交易数据。效果更佳呦!
另附完整程序
clear
set more off
capmk d:/chinafin
cdd:/chinafin
cnstock SZM,path(d:/chinafin)
use"cnstock.dta"
levelsof stkcd,local(levels)
foreachc of local levels {
chinafin `c'
}
erase cnstock.dta
openall*
save chinafin.dta,replace
以上就是今天小编与大家分享的全部内容了,如果各位看官喜欢今天的分享,不要吝啬您的打赏哦!~~想了解更多有关stata的小秘密,请继续关注我们的公众号哦,更多惊喜等着您!~~
另外,又到了年末,各个单位又到了填报学术成果的时候了。为海量的工作发愁?
来找爬虫俱乐部呀,诸位小编解你烦忧。质优价廉的劳动力就在这里。
爬虫俱乐部从现在开始,可以帮各单位整理科研成果,费用根据工作量可以以勤工助学的形式发给爬虫君小编,每个学院每年只要2000元呢。2000元就把你从双眼酸涩、颈椎酸痛、腰间盘突出的痛苦中解救出来,还等什么!
编辑by梅洁瓷傲
往期推文推荐:
7.爬虫俱乐部周末送大礼——chinagcode提取中文地址经纬度
此外,欢迎大家踊跃投稿,介绍一些关于stata的数据处理和分析技巧。
长按二维码关注你懂哟!~~
微信扫一扫
关注该公众号