IML是SAS里的交互式矩阵语言产品,基本上与matlab差不多,但IML是可以与sas的DATA互动,所以多了一些特点。更多关于IML基本语句与用法参阅SAS/help文档。
proc IML;
提交这个语句开始进入IML计算环境,两个选项是用于分配内存大小有关的,基本不会用到。
libnamemyiml "D:my learn
sas";
filename iml
"myiml.iml";
reset
storage=iml;*指定一个myiml里的一个目录用于存储你将创建的矩阵或module
A={1 2 3,4 6 4,7 8
9};*创建3×3矩阵
*以下定义一个module,是期权的CRR考克斯,罗斯,鲁宾斯坦二叉树。
*iopt取值为1或-1用于识别call或put,ifamer取值1或2用于识别欧式或美式
*r
无风险利率,q红利利率,tyr到期时间,sigma波动率,nstep二叉树期数
start
BINoptvalue(iopt,ifamer,S,X,r,q,tyr,sigma,nstep);
delt=tyr/nstep;
erdt=exp(r#delt);
ermqt=exp((r-q)#delt);
u=exp(sigma#sqrt(delt));
d=1/u;
Proup=(ermqt-d)/(u-d);
Prodown=1-Proup;
n