楼主: dorislyq
11026 8

[数据管理求助] 如何在每个月计算前n个月的累积收益率,循环语句或移动平均? [推广有奖]

  • 0关注
  • 0粉丝

初中生

9%

还不是VIP/贵宾

-

威望
0
论坛币
6 个
通用积分
0
学术水平
0 点
热心指数
1 点
信用等级
0 点
经验
85 点
帖子
7
精华
0
在线时间
13 小时
注册时间
2012-9-5
最后登录
2013-7-16

楼主
dorislyq 发表于 2013-3-28 00:47:24 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
数据如下:
stkcd      code   trdmnt        mretwd     year   month
002481   878   2011-12     -.189898   2011     12
002481   878   2011-11       .062838  2011    11
002481   878   2011-10      -.017981   2011   10
002481   878   2011-09      -.036235   2011    9
002481   878   2011-08       .04701     2011     8
002481   878   2011-07       -.129576   2011   7
002481   878   2011-06        .14934     2011    6
002481   878   2011-05       -.109805   2011   5
002481   878   2011-04       -.122462   2011   4
002481   878   2011-03        .036118    2011   3
002481   878   2011-02        .065664    2011   2
002481   878   2011-01       .135678     2011  1
002481   878   2010-12        .003024    2010  12
002481   878   2010-11         .146291   2010   11
002481   878   2010-10         .079591   2010   10
000515   95    2009-04          .051582    2009   4
000515   95    2009-03          .023223    2009   3
000515   95    2009-02          .047935    2009   2
000515   95    2009-01          -.005136   2009   1
000515   95    2008-12           .034928   2008  12
000515   95    2008-11          -.046343   2008  11
其中变量mretwd为月收益率。要求:对每只股票,在每个月,都计算前12个月的累积收益率,并命名为mret.例如,对于股票002481,在2011年12月时,求这只个股前12个月的累计收益(即2011.11-2010.12的收益率之和)。以此类推,2011.11时计算2011.10-2010.11的12个月收益之和。而在2011.9时,因为向前的数据不足12个月,所以就缺失。

请问这个应该怎么实现?是否要编程用循环语句?还是有直接命令?谢谢各位!
二维码

扫码加我 拉你入群

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

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

关键词:移动平均 循环语句 收益率 month stkcd 收益率 计算 如何

已有 1 人评分热心指数 收起 理由
耕耘使者 + 1 鼓励学术交流

总评分: 热心指数 + 1   查看全部评分

沙发
dorislyq 发表于 2013-3-28 13:39:43
各位...拜托回答一下 分享一下思想也ok...毕业论文急用啊 万谢!

藤椅
dorislyq 发表于 2013-3-28 18:47:02
谢各位看官。。。用_n滚动求和 已实现
已有 1 人评分经验 收起 理由
SpencerMeng + 40 感谢分享

总评分: 经验 + 40   查看全部评分

板凳
日复一日12 发表于 2015-5-13 15:20:50
谢谢提醒!

报纸
日复一日12 发表于 2015-11-22 19:47:37
不足12个月就当作缺失?

tsset stkcd date
tsegen cr = rowtotal(L(1/11).mretwd, 12 )

为啥不用乘积的;

地板
日复一日12 发表于 2015-11-22 19:48:32
上一个回帖竟然也是我。。

7
水绕苇丛 发表于 2016-4-20 20:15:10
dorislyq 发表于 2013-3-28 18:47
谢各位看官。。。用_n滚动求和 已实现
这个求赐教。。。到底 怎么求啊。。。

8
davidddp 发表于 2016-5-22 10:37:58
dorislyq 发表于 2013-3-28 18:47
谢各位看官。。。用_n滚动求和 已实现
求问楼主是怎么解决的啊啊啊啊~~~

9
tunet 发表于 2017-12-13 09:58:32
可以先取log, 然后用gen sum实现(注意是gen不是egen)。这变相利用了stata内置的滚动和公式。
例如:
sort stkcd year month
bysort stkcd year: gen log_accumulated=sum(ln(mretwd))
gen accumulated=exp(log_accumulated)

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

本版微信群
加好友,备注jltj
拉您入交流群
GMT+8, 2026-1-7 08:35