[問題] SAS每天算報酬的問題
今天自己寫了這樣的程式
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
討論串 (同標題文章)
以下文章回應了本文:
完整討論串 (本文為第 1 之 2 篇):