楼主: catherinezengzm
10999 4

[面板数据求助] 用收盘价求日对数收益率,并调整为月收益率,导出 [推广有奖]

  • 0关注
  • 0粉丝

已卖:47份资源

本科生

11%

还不是VIP/贵宾

-

威望
0
论坛币
4426 个
通用积分
18.3195
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
443 点
帖子
16
精华
0
在线时间
127 小时
注册时间
2014-6-26
最后登录
2020-11-28

楼主
catherinezengzm 发表于 2019-4-5 20:38:30 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
面板数据,用股票日收盘价求日对数收益率,然后然后调整成月对数收益率在stata上怎么实现?具体是先用上一期补全缺失的日收盘价(因为节假日和周末缺的),然后将按照补全的日收盘价求日对数收益率,之后再调整成月对数收益率,对数收益率公式为R=ln(Pt/Pt-1)*100,截面定义为code,时间定义为date。这样的操作具体指令是什么?
以下是数据情况
xtset code date
       panel variable:  code (unbalanced)
        time variable:  date, 20080801 to 20111130, but with gaps
                delta:  1 unit

. dataex in 1/10

----------------------- copy starting from the next line -----------------------
  1. * Example generated by -dataex-. To install: ssc install dataex
  2. clear
  3. input long(code date) double cl
  4. 1 20080801 21.88
  5. 1 20080804 21.45
  6. 1 20080805    21
  7. 1 20080806 20.85
  8. 1 20080807 20.95
  9. 1 20080808    20
  10. 1 20080811  19.3
  11. 1 20080812  19.3
  12. 1 20080813 19.29
  13. 1 20080814 19.29
  14. end
复制代码

------------------ copy up to and including the previous line ------------------

Listed 10 out of 200609 observations
我曾经尝试过ascol指令,但出来的效果只是将每一个截面算出一个整体的值,而非将日对数收益调整成月的。我想要指令能达到的效果最终能够呈现成每个股票每个月的月对数收益率。这个问题困惑了我很久,希望大神们能够帮忙解答一二,不胜感激,先行谢过!

二维码

扫码加我 拉你入群

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

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

关键词:日对数收益率 对数收益率 对数收益 日收盘价 问题困惑

沙发
catherinezengzm 发表于 2019-4-6 00:00:33
顶一顶

藤椅
黃河泉 在职认证  发表于 2019-4-6 07:10:46
catherinezengzm 发表于 2019-4-6 00:00
顶一顶
请 (ssc install) ascol。

板凳
catherinezengzm 发表于 2019-4-6 16:30:57
黃河泉 发表于 2019-4-6 07:10
请 (ssc install) ascol。
gen date=date(time,"YMD")

.  destring code,replace
code: all characters numeric; replaced as long

. format date %td

. xtset code date
       panel variable:  code (unbalanced)
        time variable:  date, 01apr2010 to 31jan2013, but with gaps
                delta:  1 day

. bys code (date): gen t = _n

. xtset code t
       panel variable:  code (unbalanced)
        time variable:  t, 1 to 688
                delta:  1 unit

. gen lcl = log(cl)

. gen r = D.lcl*100
(179 missing values generated)

. ascol r, returns(log) keep(vars) tomonth timevar(date) panelvar(code) generate(R)
这是指令
  1. * Example generated by -dataex-. To install: ssc install dataex
  2. clear
  3. input long code str10 time double cl float(date t lcl r month_id) double R
  4. 9 "2010-05-14"   9.7 18396  30  2.272126  2.822995 0 -23.258328437805176
  5. 9 "2010-06-29"   8.6 18442  59 2.1517622 -9.213376 1 -12.036371231079102
  6. 9 "2010-08-12"  9.67 18486  90 2.2690284 -.2065897 2  11.726617813110352
  7. 9 "2010-09-30" 11.95 18535 120  2.480731  1.858163 3    21.1702823638916
  8. 9 "2010-11-19" 17.15 18585 151  2.841998  7.693768 4   36.12668514251709
  9. 9 "2010-12-31" 16.77 18627 181 2.8195915  2.842641 5 -2.2406578063964844
  10. 9 "2011-02-23" 23.66 18681 212  3.163786 -3.325319 6   34.41944122314453
  11. 9 "2011-04-18" 20.33 18735 243 3.0120976 -3.051829 7  -15.16883373260498
  12. 9 "2011-06-01" 16.25 18779 273  2.788093  .1847744 8 -22.400474548339844
  13. 9 "2011-07-18" 20.89 18826 304 3.0392706 -2.878237 9  25.117778778076172
  14. end
  15. format %td date
  16. format %tm month_id
复制代码
------------------ copy up to and including the previous line ------------------

Listed 10 out of 4041 observations
用了ascol后,中间缺了好几个月份,本来应该是从2010年4月到2013年1月的,日数据也是2010年4月1日到2013年1月31日的,调整后就莫名地缺了好几个月份,请问老师这是怎么回事?

报纸
黃河泉 在职认证  发表于 2019-4-6 17:09:14
catherinezengzm 发表于 2019-4-6 16:30
gen date=date(time,"YMD")

.  destring code,replace
老实说,我没用过 ascol,所以也看不出有无异样之处。你可能要再仔细看看 help 档。

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注jltj
拉您入交流群
GMT+8, 2025-12-20 00:46