SAS中文论坛

标题: 请教:计算期权到期日 [打印本页]

作者: shiyiming    时间: 2008-4-23 10:58
标题: 请教:计算期权到期日
请教各位高手,如何计算期权到期日,具体数据情况如下
date                        exdate              maturity(exdate-date)
20010901                 20010911           10
20010920                 20011010           90....问题就出现在这里应该按照日期是20 的
作者: shiyiming    时间: 2008-4-23 12:40
标题: Re: 请教:计算期权到期日
你的数据存储方式为数值型,如果想要计算日期的话,需要把2个日期指定为sas内部的日期型数据,在数据录入的时候,使用input date yyyyddmm8.;可以使输入的数据作为日期型
作者: shiyiming    时间: 2008-4-23 13:28
标题: Re: 请教:计算期权到期日
谢谢,这个方法理论上是可行的,但是我现在数据已经是这种格式了,还有什么其他的方法吗,望高手指教。
作者: shiyiming    时间: 2008-4-23 14:23
标题: Re: 请教:计算期权到期日
你可以把日期的格式改一下,下面的代码希望对你有帮助。
data b;
input date date1;
cards;
20010101  20010302
20010102  20010402
;
run;
data b1;
set b;
date_1=input(date,yymmdd12.);
date_2=input(date1,yymmdd12.);
format date_1 yymmdd10.;
format date_2 yymmdd10.;
run;
作者: shiyiming    时间: 2008-4-23 18:36
标题: Re: 请教:计算期权到期日
谢谢,各位这么热心,可是这种方法也是不行的,因为我的数据集是很大的,用input 行不通的。
关键是怎样把数字格式的日期变为字符格式。
作者: shiyiming    时间: 2008-4-24 01:12
标题: Re: 请教:计算期权到期日
[code:10tz4v8c]data a;
input date exdate;
cards;
20010901 20010911
20010920 20011010
;
data d;set a;
date1=left(date);
exdate1=left(exdate);
run;[/code:10tz4v8c]
这样已经把date转成date1字符型了
作者: shiyiming    时间: 2008-4-28 10:16
标题: Re: 请教:计算期权到期日
data work.b;
set work.a;
bdate=mdy(substr(bdate,5,2),substr(bdate,7,2),substr(bdate,1,4));
edate=mdy(substr(edate,5,2),substr(edate,7,2),substr(edate,1,4));
b=edate-bdate;
run;
这个程序可以很好的完成大容量数据处理




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