%window askit
#4@12" 金字塔多边在线分析系统 " color=blue
#8@12" 请输入股票代码 ?"
@30 getdata 6 attr=underline A=REV_VIDEO
#12@12" 请输入风险系数 ?"
@30 getbt 5 attr=underline A=REV_VIDEO
#16@12" 进入永久性平台吗?"
@30 getpt 3 attr=underline A=REV_VIDEO
#32@12"Press ENTER to continue.";
libname save\'D:\\mysasdata\';
libname lib\'D:\\mydir\';
%macro analyzew;
%display askit;
%macro dataw;
data xy;
set save.xy&getdata ;
%mend dataw;
%macro datalib;
data xy;
set lib.xy;
%mend datalib;
%macro result;
%if %upcase(&getpt)=YES %then %dataw;
%else %datalib;
%mend result;
%result;
proc means data=xy noprint;
var prey1-prey6 y1-y6 r1-r6;
class date;
output mean= prey1-prey6 y1-y6 r1-r6 std=s1-s6 n=n out=b;
data xf;
set b;
array xf{6} xf1-xf6;
array prey{6} prey1-prey6;
array y{6} y1-y6;
array s{6} s1-s6;
F=finv(1-&getbt/2,1,3);
ff=sqrt(abs(f));
do i=1 to 4;
xF{i}=( ( sign(prey{i}-y{i}+ (ff/y{i})**2* tinv(1-&getbt/2,3)*(s{i}/sqrt(n))) +1)/2
+( sign(prey{i}-y{i}+ (ff/y{i})**2* tinv(1-&getbt/2,3)*(s{i}/sqrt(n))) -1)/2 )
*((prey{i}/y{i}-1)**2)*n*prey{i}**2/s{i}**2;
end;
do i=5 to 6;
xF{i}=-( ( sign(prey{i}-y{i}-tinv(1-&getbt/2,3)*(s{i}/sqrt(n))) +1)/2
+( sign(prey{i}-y{i}+tinv(1-&getbt/2,3)*(s{i}/sqrt(n))) -1)/2 )
*((prey{i}/y{i}-1)**2)*n*prey{i}**2/s{i}**2;
end;
F=finv(1-&getbt/2,1,3)+finv(0.4995+&getbt/2,1,3);
ff=-f;
t=_n_-1;
if t=0 then delete;
proc print data=xf;
run;
%mend analyzew;
%analyzew;
run;