business calendar——您值得拥有(二)

2016-11-07 谢慧蓉 爬虫俱乐部 爬虫俱乐部

嗨喽,诸君安啦,小编又来跟大家分享business calendar的内容了,上回书说到啊,用business calendar排除了周末,但是我们还保留了一个小问题,那就是还有重大节日比如国庆节,也是非交易日,属于股票交易数据中的间隔,我们还没有将其剔除出去。


一、剔除其他非交易日


通过bofd函数,可以发现除双休之外的非交易日没有被剔除出去,比如通过date函数我们可以将2001年10月1日换算成stata 数值型日期,再用bofd函数对其进行检验,具体命令如下:

dis date("01/10/2001","DMY")


dis bofd("stkcd",15249)


结果并不为缺失值,对于这种特定需要排除的日期,我们通过在do-file文件中加入omit命令语句将特定的节假日排除在business calendar之外,重新编辑do-file文件如下:

version 13.1

dateformat dmy

range 10nov1999 28oct2016

centerdate 10nov1999

omit dayofweek (Sa Su)

omit date 01oct*

再通过bcal load stkcd导入business calendar

通过bofd函数对2001年10月1日进行检验,命令如下:

dis bofd("stkcd",15249)

结果为缺失值,business calendar已经将每年的国庆节剔除出去了,这就是剔除特定节假日的方法。

      接下来小编要开始放大招了,前方高能请注意!!!



二、通过bcal create创建business calendar


如果你觉得上面介绍的创建business calendar的方法比较复杂,那么小编教你一个一招制敌的方法,通过bcal create命令来创建business calendar。

我们可以通过use重新调用一份数据http://www.stata.com/data/nasdaq,首先通过date函数,将date列的数据转化为Stata 数值型日期,并保存在mydate和mydate1中,并且将mydate的数据显示格式变为%td格式,具体命令下:

generate mydate = date(date,"YMD")

generate mydate1 = mydate

format %td mydate

list date mydate mydate1 in 1/10


对mydate使用tsset命令并且显示变量index及其滞后一期的数据,具体命如下:

tsset mydate

list date mydate mydate1 index L.index

出现了与business calendar(一)中一样的问题,接下来我们就可以直接用bcal create命令创建business calendar,并创建business date,将其以%tbcalname的显示格式,保存在bcaldate中,具体的命令如下:

bcal create nasdaq, from(mydate) gen(bcaldate)


显示前100行的结果:

list in 1/100


至此,business calendar及business date创建成功,对其正确性的检验及滞后期的分析均按照business calendar(一)中所说内容。

       以上就是今天小编与大家分享的全部内容了,如果各位看官喜欢今天分享的内容,不要吝啬你的打赏哦,毕竟马上就是双十一啦,小编已经做好吃土的准备了!  

       编辑by谢慧蓉 徐苾雯    

                                                                       


往期推文推荐:

1.天路——chinafin与cntrade命令

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

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

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

5.用“套路”处理数据

6.厉害了,我stata哥

7.图之多,stata放得下

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

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

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

11.登登等登 凳登等灯——均值t检验ttable2命令

12.I have a Stata, I have a python


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

投稿邮箱:xueyuan19920310@163.com

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

长按二维码关注你懂哟~




微信扫一扫
关注该公众号