以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  高级功能研发区  (http://weistock.com/bbs/list.asp?boardid=5)
----  基于SAS的统计模型  (http://weistock.com/bbs/dispbbs.asp?boardid=5&id=4738)

--  作者:王锋
--  发布时间:2011/1/7 18:02:06
--  基于SAS的统计模型

 


%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;