楼主: BraveMadMan
1919 5

[原创博文] 从收益率计算价格 [推广有奖]

  • 1关注
  • 6粉丝

讲师

16%

还不是VIP/贵宾

-

威望
0
论坛币
966 个
通用积分
6.3763
学术水平
26 点
热心指数
42 点
信用等级
10 点
经验
7812 点
帖子
300
精华
0
在线时间
552 小时
注册时间
2005-8-11
最后登录
2021-5-20

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
有一只股票的初始价格(initial_price)和每天的收益率(ret)。现在想从推算出股票每天的价格。

具体算法为:
第1天:Want_1 = initial_price * (1+ret_1) 【注:Want_1是第1天的WANT,ret_1是第1天的ret。】
第2天:Want_2 = want_1 * (1+ret_2)
第3天:Want_3 = want_2 * (1+ret_3)
以此类推

请问SAS如何编程?



Dateretinitial_priceWANT
0
1010
10.01
10.1
20.02
10.302
30.03
10.61106
40.04
11.0355
50.05
11.58728
60.06
12.28251
70.07
13.14229
二维码

扫码加我 拉你入群

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

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

关键词:收益率 Initial Price Want Rice 收益率 如何

沙发
BraveMadMan 发表于 2011-3-16 21:36:32 |只看作者 |坛友微信交流群
用IML解决了。继续求data解决方案。

IML大致如下:

total = nrow(ret);
count_ret = sum(ret^=.);

do i = count_ret to total;
  want[i,]=want[i-1,]/(1+ret[i,]);
end;
Don't get lost in technical details. What is the big picture?

使用道具

藤椅
k231251727 发表于 2011-3-16 22:20:31 |只看作者 |坛友微信交流群
你那支股票很牛嘛,每天都上升?
自由学习

使用道具

板凳
BraveMadMan 发表于 2011-3-16 22:24:51 |只看作者 |坛友微信交流群
k231251727 发表于 2011-3-16 22:20
你那支股票很牛嘛,每天都上升?
不光是上升,收益率还是线性增长滴
Don't get lost in technical details. What is the big picture?

使用道具

报纸
myc_sas 发表于 2011-3-16 23:17:51 |只看作者 |坛友微信交流群
这个可用,就是不知道效率如何。

edit:怎么我copy过来缩进都没有了……郁闷。

data test;
    input Date ret initial_price;
    datalines;
0 .    10
1 0.01 .
2 0.02 .
3 0.03 .
4 0.04 .
5 0.05 .
6 0.06 .
7 0.07 .
    ;
run;

data
result;
    set test;
    if _n_=1 then do;
        want=initial_price;
    end;
run;

%macro
calc;
    proc sql noprint;
        select count(*)-
1
        into :count_ret
        from test;
        %do i=1 %to &count_ret;
            select want into :last_want from result
            where date=
%eval(&i-1);
            update result
            set want=
%sysevalf(&last_want)*(1+ret)
            where date=&i;
        %end;
    quit;
%mend calc;
%calc
已有 1 人评分学术水平 热心指数 收起 理由
BraveMadMan + 1 + 1 学了一个新思路

总评分: 学术水平 + 1  热心指数 + 1   查看全部评分

使用道具

地板
sopching 发表于 2011-3-17 00:47:42 |只看作者 |坛友微信交流群
  1. data temp;
  2.               initial_price=10;
  3.                      do ret=0 to 0.07 by 0.01;
  4.                       output;
  5.                       end;
  6.          data temp2;
  7.                 set temp;
  8.                 if _n_=1 then  want=initial_price;
  9.                                want=want*(1+ret);
  10.                  retain want;
  11.            run;
复制代码
已有 3 人评分学术水平 热心指数 收起 理由
myc_sas + 1
hssnow + 1 nice! 我昨天整了一下就有bug...
BraveMadMan + 1 + 1 学习了

总评分: 学术水平 + 3  热心指数 + 1   查看全部评分

使用道具

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

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

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

GMT+8, 2024-5-19 23:56