作者cicatrix (SAS.VaR修行中...)
看板Statistics
标题[问题] SAS每天算报酬的问题
时间Fri Nov 23 03:51:52 2007
今天自己写了这样的程式
DATA sac;
INFILE 'D:\SAS.txt';
INPUT code $ price high low date ;
if _n_=1 then delete;
code = upcase(code);
logprice = LOG10(price);
return=DIF(logprice);
volatility=return*return;
PROC PRINT DATA =sac;
RUN;
以上这样处理後
会产生
code price high low date return vol
EWW 10 20 8 20050103 ln(10) {ln(10)}^2
EWW 12 20 7 20050103 ln(12) {ln(12)}^2
EWW 11 22 5 20050104 ln(11) {ln(11)}^2
*SORT THE DATA;
PROC SORT DATA = sac ;
BY date;
RUN;
PROC PRINT DATA = sac;
BY date;
SUM volatility;
VAR code volatility;
proc means data=sac noprint;
var volatility ;
by date;
output out=sacc sum=sum ;
run;
proc print data=sacc;
run;
最後会变成
date volatility
20050103 当天所有波动vol相加{78笔}
20050104 当天所有波动vol相加{79笔}
问题在於 每天如果是五分钟的intraday资料
一天也只有79笔也就是说只能有78份return及vol{因为第一笔没得减前一笔}
20050103 的确是如此
但是问题在於20050104却不是如此
因为第一笔可以减20050103最後一笔资料所以产生了79个return及vol
请问这样的问题可以用甚麽方式解决呢
--
▂▂▂ ▲ ◢ ◥ ◢◢◢ ▂▁▁▂
◥▼︶▼◤ ╳囧╳ . ▕●▏ ◢ @ ◣ ███ │
★ ╲╱ ★ ╳_ _╳ .. ∥∥∥∥ ◥ ▆ ◤ ▁●▁ ●│
●
◥◤ ★╳ 皿 ╳ . . ║︿║ ◤| | |︿| │▁│
★ ■ XX . ▲  ̄ ◥ ■ ■
呛辣红椒 克里姆王 性感手枪 钢链手指 白色相簿 白金之星 轰炸空门
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.224.82.44