火锅和肥羊,啤酒和炸鸡,cnstock和chinafin

2016-11-22 李子健 爬虫俱乐部 爬虫俱乐部

感谢西伯利亚的寒流,为我们带来了冰冷而又清新的空气


关心天气,更关心你




诸君安。

有雪,有啤酒,有炸鸡,最开心的是

有你

有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)这个文件在我们的默认路径下面保存成cnstockdta文件。

当我们希望得到所有的上海A股市场、深圳主板市场、深圳中小板市场、深圳创业板市场、上海B股市场、深圳B股市场的上市公司名称与股票代码。不需要在cnstock命令后跟这些市场的缩写,可在命令后直接跟all,并保存在路径为D:/temp/的文件下。命令如下:

cnstock all,path(D:/temp/)

这样,我们就下载到了中国沪深两市的所有上市公司名称(stknm)及股票代码(stkcd)。这个文件在D:/temp/保存成cnstockdta文件。





之后我们就来解决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 *

save chinafin.dta,replace



我们可以看到深圳主板市场最新上市公司财务数据已合并得到,包括上市公司年度的货币资金、交易性金融资产、应收票据、应收账款等等财务数据。

另外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梅洁瓷傲



往期推文推荐:

1.天路——chinafin与cntrade命令

2.分时数据,从此唾手可得

3.有了这个命令,以后还怕重复?

4.esttab功能挖掘:“Yes”or“No”

5.用“套路”处理数据

6.厉害了,我stata哥

7.爬虫俱乐部周末送大礼——chinagcode提取中文地址经纬度

8.据说这样数据替换比较快,你试一下,然后……

9.众里寻她千百度,synth命令来帮助!

10.I have a Stata, I have a python

11.用subinfile修改文件,滚蛋吧,繁琐的命令君!

12.删繁就简三秋叶,subinfile似剪刀


此外,欢迎大家踊跃投稿,介绍一些关于stata的数据处理和分析技巧。

投稿邮箱:xueyuan19920310@163.com
投稿要求:
1)必须原创,禁止抄袭;
2)必须准确,详细,有例子,有截图;
注意事项:
1)所有投稿都会经过本公众号运营团队成员的审核,审核通过才可录用,一经录用,会在该推文里为作者署名,并有赏金分成。
2)邮件请注明投稿,邮件名称为“投稿”+“推文名称”。
3)应广大读者要求,现开通有偿问答服务,如果大家遇到关于stata分析数据的问题,可以在公众号中提出,只需支付少量赏金,我们会在后期的推文里给予解答。

长按二维码关注你懂哟!~~

微信扫一扫
关注该公众号