SAS中文论坛

 找回密码
 立即注册

扫一扫,访问微社区

查看: 2257|回复: 10
打印 上一主题 下一主题

有一个问题请教

[复制链接]

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
楼主
 楼主| 发表于 2008-5-28 23:46:45 | 只看该作者

有一个问题请教

现有一个交易数据集如下,
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        兰州民百       

谢谢各位大大
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
沙发
 楼主| 发表于 2008-5-30 18:51:49 | 只看该作者

Re: 有一个问题请教

帮你写好了,发给你
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
板凳
 楼主| 发表于 2008-5-30 19:25:33 | 只看该作者

to byes

谢谢。我的邮箱:rainsoft.wang@gmail.com
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
地板
 楼主| 发表于 2008-5-30 21:22:26 | 只看该作者

Re: 有一个问题请教

真是好人多呀,我要多多学习,早日为论坛做贡献呀
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
5#
 楼主| 发表于 2008-6-4 01:18:46 | 只看该作者

Re: 有一个问题请教

byes同学写完后,能否将code公开阿,让大家也学习下嘛!
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
6#
 楼主| 发表于 2008-7-28 14:30:13 | 只看该作者

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;
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
7#
 楼主| 发表于 2008-7-30 13:19:02 | 只看该作者

Re: 有一个问题请教

你的程序好像不对
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
8#
 楼主| 发表于 2008-7-30 15:10:52 | 只看该作者

Re: 有一个问题请教

麻烦你稍微解释下那几个变量,对这个不是很熟悉,没办法解决问题。
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
9#
 楼主| 发表于 2008-7-30 19:14:19 | 只看该作者

Re: 有一个问题请教

[quote=&quot;lili83xu&quot;:3a7955vh]byes同学写完后,能否将code公开阿,让大家也学习下嘛![/quote:3a7955vh]

[color=#0000FF:3a7955vh]本来想公开的,但是想来想去不舍得啊,虽然不是什么好东西,但毕竟是自己的劳动所得,那时候写了2个方法。呵呵[/color:3a7955vh]
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
10#
 楼主| 发表于 2008-7-30 20:14:49 | 只看该作者

Re: 有一个问题请教

byes你能不能发给我一份。谢谢。

rq表示交易日期
name表示账户
zjfss表示本次成交额,卖出为正,买入为负
cjsl表示本次的成交数量
sysl表示本次成交以后,还剩余的数量
zqdm为证券代码
zqmc为证券名称
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|小黑屋|手机版|Archiver|SAS中文论坛  

GMT+8, 2026-2-5 02:01 , Processed in 0.210311 second(s), 22 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表