SAS中文论坛

标题: 有一个问题请教 [打印本页]

作者: shiyiming    时间: 2008-5-28 23:46
标题: 有一个问题请教
现有一个交易数据集如下,
rq                   name                  zjfss                           cjsl                         zqdm         zqmc  
19970318        ZZTC090100000001        -133168.95        9000                600738        兰州民百               
19970321        ZZTC090100000001        59498.7                        4000                600738        兰州民百                               
19970324        ZZTC090100000001        81039.76                        5000                600738        兰州民百       

想进行以下操作,如果当天有交易,则按照每一项计算,如果当天没有交易则复制前一天的仓位,既由上面的交易数据集得到下面的持仓数据集;
同时注意rq是按照股票时间来的,并非每天都交易
股票交易数据集:
rq
19970318                               
19970319                               
19970320                       
19970321                       
19970324
19970325

想要得到的持仓数据集如下:
rq                   name                  zjfss                          cjsl         sysl            zqdm         zqmc  
19970318        ZZTC090100000001        -133168.95        9000        9000        600738        兰州民百                               
19970319        ZZTC090100000001        -133168.95        9000        9000        600738        兰州民百                               
19970320        ZZTC090100000001        -133168.95        9000        9000        600738        兰州民百                               
19970321        ZZTC090100000001        59498.7                        4000        5000        600738        兰州民百                               
19970324        ZZTC090100000001        81039.76                        5000        0        600738        兰州民百       

谢谢各位大大
作者: shiyiming    时间: 2008-5-30 18:51
标题: Re: 有一个问题请教
帮你写好了,发给你
作者: shiyiming    时间: 2008-5-30 19:25
标题: to byes
谢谢。我的邮箱:rainsoft.wang@gmail.com
作者: shiyiming    时间: 2008-5-30 21:22
标题: Re: 有一个问题请教
真是好人多呀,我要多多学习,早日为论坛做贡献呀
作者: shiyiming    时间: 2008-6-4 01:18
标题: Re: 有一个问题请教
byes同学写完后,能否将code公开阿,让大家也学习下嘛!
作者: shiyiming    时间: 2008-7-28 14:30
标题: Re: 有一个问题请教
真不简单呢,弄了半天 <!-- s:lol: --><img src="{SMILIES_PATH}/icon_lol.gif" alt=":lol:" title="Laughing" /><!-- s:lol: -->

data a;
length name $ 16;
length zjfss $ 10;
input rq yymmdd8. name $ zjfss $ cjsl zqdm ;
cards;
19970318 ZZTC090100000001 -133168.95 9000 600738
19970321 ZZTC090100000001 59498.7 4000 600738
19970324 ZZTC090100000001 81039.76 5000 600738
;
run;
data b(keep=rq name  zjfss  cjsl zqdm);
set a  nobs=totobs;
if (_n_=1) then output;
i=lag1(rq);
j=rq-lag1(rq);
zj=lag(zjfss);
c =lag1(cjsl);
zq=lag1(zqdm);
if (_n_&gt;1) then do;
do while ( j&gt;0);
output;
zjfss=zj;
cjsl=c;
zqdm=zq;
j=j-1;
rq=i+1;
i=i+1;
end;
end;
run;
proc sort data=b;
by rq;
run;
proc print data=b;
format rq  yymmdd10.;
var rq name  zjfss  cjsl zqdm;
run;
作者: shiyiming    时间: 2008-7-30 13:19
标题: Re: 有一个问题请教
你的程序好像不对
作者: shiyiming    时间: 2008-7-30 15:10
标题: Re: 有一个问题请教
麻烦你稍微解释下那几个变量,对这个不是很熟悉,没办法解决问题。
作者: shiyiming    时间: 2008-7-30 19:14
标题: Re: 有一个问题请教
[quote=&quot;lili83xu&quot;:3a7955vh]byes同学写完后,能否将code公开阿,让大家也学习下嘛![/quote:3a7955vh]

[color=#0000FF:3a7955vh]本来想公开的,但是想来想去不舍得啊,虽然不是什么好东西,但毕竟是自己的劳动所得,那时候写了2个方法。呵呵[/color:3a7955vh]
作者: shiyiming    时间: 2008-7-30 20:14
标题: Re: 有一个问题请教
byes你能不能发给我一份。谢谢。

rq表示交易日期
name表示账户
zjfss表示本次成交额,卖出为正,买入为负
cjsl表示本次的成交数量
sysl表示本次成交以后,还剩余的数量
zqdm为证券代码
zqmc为证券名称
作者: shiyiming    时间: 2008-7-30 20:17
标题: Re: 有一个问题请教
rq表示交易日期
name表示账户
zjfss表示本次成交额,卖出为正,买入为负
cjsl表示本次的成交数量
sysl表示本次成交以后,还剩余的数量
zqdm为证券代码
zqmc为证券名称




欢迎光临 SAS中文论坛 (https://mysas.net/forum/) Powered by Discuz! X3.2