楼主: akalius
9611 3

计算累计收益率 [推广有奖]

  • 10关注
  • 3粉丝

讲师

48%

还不是VIP/贵宾

-

威望
0
论坛币
4168 个
通用积分
9.1543
学术水平
4 点
热心指数
6 点
信用等级
6 点
经验
7832 点
帖子
261
精华
0
在线时间
605 小时
注册时间
2009-7-22
最后登录
2024-4-9

楼主
akalius 学生认证  发表于 2014-8-18 22:44:34 |只看作者 |坛友微信交流群|倒序 |AI写论文
20论坛币
如下数据,我现在想计算产生以下变量,每只股票的,cum_r1一年后的累计收益率,cum_r2,二年后的累计收益率,一直到cum_r5,五年后的累计收益率。
用年收益率累乘吧。或者用复权价1算。最好二者的都能给出来,谢谢。

QQ图片20140818224004.jpg (80.6 KB)

QQ图片20140818224004.jpg

最佳答案

freerunning_sky 查看完整内容

用价格算,自己写一下就好了
关键词:计收益 收益率 年收益率 复权价 最好 收益率
沙发
freerunning_sky 在职认证  发表于 2014-8-18 22:44:35 |只看作者 |坛友微信交流群
用价格算,自己写一下就好了
  1. data input;
  2.         length stdck $10.;
  3.         input stdck $ price rate year;

  4.         cards;
  5.         000001 452.20 1.3567 2006
  6.         000001 1327.26 1.9350 2007
  7.         000001 424.17 -0.6805 2008
  8.         000001 1092.70 1.5761 2009
  9.         000001 707.99 -0.3521 2010
  10.         000001 699.03 -0.0127 2011
  11.         000001 723.65 0.0340 2012
  12.         000001 893.78 0.2341 2013
  13.         000001 785.80 -0.1208 2014
  14.         000002 658.19 2.6172 2006
  15.         000002 1855.87 1.8115 2007
  16.         000002 668.01 -0.6387 2008
  17.         000002 1124.59 0.6837 2009
  18.         000002 863.30 -0.2331 2010
  19.         000002 794.47 -0.0791 2011
  20.         000002 1091.37 0.3722 2012
  21.         000002 879.30 -0.1887 2013
  22.         000002 885.87 0.0075 2014
  23.         ;
  24. run;


  25. proc sql;
  26.         create table out as
  27.         select distinct a.*,
  28.         CASE
  29.                 when a.year<2014 then exp(sum(log(b.rate+1)*(b.year-a.year<=1)))-1
  30.                 else .
  31.         END as cum_r1,
  32.         CASE
  33.                 when a.year<2013 then exp(sum(log(b.rate+1)*(b.year-a.year<=2)))-1
  34.                 else .
  35.         END as cum_r2,
  36.         CASE
  37.                 when a.year<2012 then exp(sum(log(b.rate+1)*(b.year-a.year<=3)))-1
  38.                 else .
  39.         END as cum_r3,
  40.         CASE
  41.                 when a.year<2011 then exp(sum(log(b.rate+1)*(b.year-a.year<=4)))-1
  42.                 else .
  43.         END as cum_r4,
  44.         CASE
  45.                 when a.year<2010 then exp(sum(log(b.rate+1)*(b.year-a.year<=5)))-1
  46.                 else .
  47.         END as cum_r5


  48.         from input a
  49.         left join input b on a.stdck=b.stdck & a.year<b.year
  50.         group by a.stdck,a.year
  51.         order by a.stdck,a.year;
  52. quit;
复制代码
已有 1 人评分论坛币 学术水平 热心指数 信用等级 收起 理由
akalius + 5 + 2 + 2 + 2 精彩帖子

总评分: 论坛币 + 5  学术水平 + 2  热心指数 + 2  信用等级 + 2   查看全部评分

使用道具

藤椅
akalius 学生认证  发表于 2014-8-20 20:05:11 |只看作者 |坛友微信交流群
数据已经上传,谢谢

temp.xls

1.48 MB

使用道具

板凳
akalius 学生认证  发表于 2014-8-21 15:18:52 |只看作者 |坛友微信交流群

使用道具

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

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-28 08:13