全部版块 我的主页
论坛 计量经济学与统计论坛 五区 计量经济学与统计软件 Stata专版
11929 8
2019-04-02
数据是面板数据,日收盘价怎么计算对数收益率,stata新人一个,求代码!!!对数收益率公式是R=ln(Pt/Pt-1),先谢谢各位啦!

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2019-4-3 01:54:34
对了,收盘价数据都是工作日数据。时间变量里会显示有gaps,运算的时候会考虑到非工作日的影响,使得数据缺失很多,这应该怎么解决啊?急求各位大神帮忙解决!
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2019-4-3 07:04:51
catherinezengzm 发表于 2019-4-3 01:54
对了,收盘价数据都是工作日数据。时间变量里会显示有gaps,运算的时候会考虑到非工作日的影响,使得数据缺 ...
你若要问程序,永远附上相关资料;若附上资料,永远用 dataex 印出资料。
1.        先 ssc install dataex (并见说明),将原始 Stata 资料中具有”代表性”的一部分资料列出,以供有意回答者实验之用,并能提供具体操作指令。
2.        请参考说明 https://bbs.pinggu.org/thread-5048204-1-1.html
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2019-4-3 15:57:35
黃河泉 发表于 2019-4-3 07:04
你若要问程序,永远附上相关资料;若附上资料,永远用 dataex 印出资料。
1.        先 ssc install dataex (并 ...
设置完panel的个体变量和时间变量之后的结果
tsset code date
       panel variable:  code (unbalanced)
        time variable:  date, 20080801 to 20111202, but with gaps
                delta:  1 unit
因为股票收盘价,所以在周末和节假日并没有数据
当中的例子
input long date double cl
20080801 21.88
20080804 21.45
20080805    21
20080806 20.85
20080807 20.95
20080808    20
20080811  19.3
20080812  19.3
20080813 19.29
20080814 19.29
20080815  19.6
20080818 19.03
20080819 19.25
20080820 20.85
20080821 20.21
20080822  19.9
20080825 20.14
20080826 20.01
20080827 19.96
20080828 20.07
20080829  20.2
20080901 18.96
20080902 18.71
20080903 18.18
20080904  18.3
20080905 18.24
20080908 17.68
20080909 17.43
20080910  17.2
20080911  16.1
20080912 15.99
20080916 14.39
20080917 13.07
20080918  13.3
20080919 14.63
20080922 16.09
20080923 15.09
20080924  14.7
20080925 15.31
20080926 14.99
20081006  13.9
20081007 13.99
20081008  13.2
20081009 12.99
20081010 12.05
20081013 13.26
20081014 13.18
20081016 12.39
20081017  12.9
20081020 13.58
20081021 13.28
20081022 13.15
20081023 12.54
20081024 12.03
20081027 10.83
20081028 11.49
20081029 11.02
20081030 11.31
20081031  8.37
20081103   8.4
20081104  8.35
20081105  8.85
20081106  8.43
20081107  8.79
20081110  9.65
20081111  9.52
20081112  9.78
20081113 10.28
20081114 10.62
20081117 11.01
20081118  10.1
20081119 10.96
20081120 10.52
20081121 10.23
20081124  9.78
20081125  9.66
20081126   9.5
20081127  9.46
20081128  8.99
20081201  9.12
20081202  9.12
20081203  9.65
20081204    10
20081205 10.31
20081208 10.85
20081209 10.42
20081210 11.24
20081211 10.82
20081212 10.23
20081215 10.22
20081216 10.15
20081217 10.02
20081218  10.6
20081219 10.53
20081222  10.3
20081223 10.18
20081224 10.12
20081225  9.78
20081226  9.72
20081229  9.47
end
[/CODE]
------------------ copy up to and including the previous line ------------------

Listed 100 out of 201129 observations
Use the count() option to list more
指令的话
gen R=ln(code)-ln(L.code)
不过这个指令也不知道是不是完全正确
对数收益率的公式是R=ln(Pt/Pt-1)
因为是日数据,如果要计算日对数收益率的话因为非工作日会有很多缺失值。而且我的数据量较大,会有四万多的缺失值,计算出来的对数收益率也因此会有很多无数据的值。
想问的是怎么应对这种状况呢,是可以调整时间为工作日的标准,还是用上一期的值补全呢?还是有其它的方法呢?直接忽略的话缺失的数据太多了。
stata新人一个,所以问题有点多,先谢谢老师的解答啦!
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2019-4-3 16:10:39
catherinezengzm 发表于 2019-4-3 15:57
设置完panel的个体变量和时间变量之后的结果
tsset code date
       panel variable:  code (unbalan ...
你的资料应该不具代表性,我假应该是有不同公司 (stkcd,若非数值,请改成数值 egen id = group(stkcd) ),
复制代码
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2019-4-3 16:58:33
黃河泉 发表于 2019-4-3 16:10
你的资料应该不具代表性,我假应该是有不同公司 (stkcd,若非数值,请改成数值 egen id = group(stkcd) ) ...
解决啦,太棒啦,谢谢老师!
下的数据的话是按照融资融券标的名单筛选出来的股票的日收益率,确实是有不同公司的,按照您的方法改完了,谢谢你啦!
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群