现设一单个标的资产美式看跌期权的持有到期日为T,期权的执行时刻为T,t?[0,T],标的资产价格为S**,期权的
执行价格为X。在风险中性条件下,该期权的初始时刻价值为:
P?E[exp(?rt)f(S0,S1,?,St*,?,ST)]S其中,
0Q*
0,S1,?,St*,?,ST为标的资产价格的路径,f(S*,S1,?,St*,?,ST)是在最优执行时刻t的期权价值。上式定义的P便是将要运用最小二乘蒙特卡洛方法进行模拟的期权价值。
将期权的存续区间[0,T]均分为N个子区间,则每个子区间的长度为
?t?TN,标的资产价格过程的离散形式:
Si?Si?1exp((r??2
其中,i?{0,1,?,N},随机变量?服从标准正态分布。因此,利
2)?t???t?i?1)用生成随机数模拟得到标的资产价格S的一条样本路径
S0,S1,?,SN,重复执行M次模拟,我们可得到资产价格的总样
本S
M?(N?1)。
第二步:计算各个样本的最优停时及各时刻的期权价值 对于美式看跌期权,在期权的有效时刻i,样本路径j上的内在价值为
jQI(Si)?max{X?Si,0}jjj,持有价值为
H(Si)?E[exp(?r?t)C(Si?1)Si]。由于美式期权在有效期的任何时
I(Si)j候都可行权,所以必须比较该时刻期权的内在价值有价值
H(Si)j与持
的大小,以确定该时刻的期权价值以及是否执行
C(Si)?max{I(Si),H(Si)}jjj期权,即
由期权的持有价值表达式可知它依赖于下一步期权决策的
26
价值,需通过逆向求解这个期望价值,这正是普通的蒙特卡洛模拟法为美式期权定价的难点所在。
最小二乘蒙特卡洛模拟方法通过建立一个当前时刻标的资产价格与下一时刻期权价值贴现值的线性回归计量模型:
Yj?exp(?r?t)C(Si?1)?a1?a2Si?a3Si??jjjj2
Si2上述模型以所有样本路径在时刻的价格和
iSi作为解释变
?3,a量,对应的下一时刻期权价值的现值作为被解释变量。采用
?,a?普通最小二乘法进行回归,求得回归系数的估计值a12和
样本回归方程
??a?1?a?2Sij?a?3Sij2Yj;再将各个资产价格样本代入
到回归方程分别可以得到其期权的持有价值估计值,
根据计量经济学的理论,这个估计值就是在标的资产价格下的期权持有价值的无偏估计值。另外,本例中选取基函数
L0(S)?1;L1(S)?S;L2(S)?S2??E[YSj]?E[exp(?r?t)C(S)Sj]Yjii?1iSij作为解释变量,根据实际情况中
S2S2S2也可以选取其他形式的基函数:
L0(S)?exp(?S2);L1(S)?exp(?)(1?S);L2(S)?exp(?)(1?2S?2)。
作为解释变量。
现在,我们从到期日开始倒推计算求解每条样本路径上的最优停时和每个样本点的期权价值。在到期日T,执行看跌期权的价值为
max{X?SN,0}j。接着,判断在N?1时刻是否行
SN?1?Xj权。若期权处于实值状态,即,则与继续持有期权的
价值相比较,若内在价值大于持有价值,则应立即执行期权;否则,继续持有期权。考虑在该时刻期权处于实值的样本子集,近似期权持有价值的回归方程为:
27
yN?1?exp(?r?T)max{X?SN,0}?a1?a2SN?1?a3SN?1??jj其中,j?JN?1,JjN?1
是N?1时刻所有期权处于实值状态的标的
jj?Ny?1jjj2资产价格样本集。在时刻N?1的资产价格SN?1信息下,比较内在价值
max{X?SN?1,0}与继续持有期权的价值就可做出是否
,期权或
执行期权的决策。同理,我们可倒推继续求得时刻
N?2,N?3,?,0的期权持有价值。对于每条样本路径j是在最优停时序时,令初值
tj?{0,1,?,N}??执行,或是永不执行。具体设计程
tj?tj?N,在时刻N?1,如果继续持有期权,则不
tj?N?1tj??变;如果执行期权,则,依此类推。每个样本上就只
有一个最优停时,每次更新,最后便求得每条样本路径上的最优停时。
第三步:对各条样本路径上的期权价值按无风险利率贴现并求其均值
经过M次模拟后,得到M条标的资产价格的样本路径,以及每条样本路径上的最优停时和在该时刻的期权价值:
由于每条样本路径上的最优执行时间不同,期权价值的贴现
jjtj?I(St*)?max{X?St*,0}??????????j?{1,2,?,M}jj因子e也不同,所以应分别进行贴现求均值,最终得到初始时刻期权价值的最小二乘蒙特卡洛模拟值:
M?rtj??Q[exp(?rt*)f(S,S,?S?,?,S)]?P?E01Tt?exp(?rtj?1*j)I(St*)jjM
例3:已知股票价格为50,美式看跌期权执行价为50到期日为5个月,股票年收益率的标准差为0.4,无风险利率为10%,用最小二乘蒙特卡洛模拟其价格。
28
编制最小二乘蒙特卡洛模拟的MATLAB程序如下: function price=AmericanOptLSM(S0,K,r,T,sigma,N,M) dt=T/N;
R=exp((r-sigma^2/2)*dt+sigma*sqrt(dt)*randn(N,M)); S=cumprod([S0*ones(1,M);R]); ExTime=N*ones(M,1); CF=zeros(size(S));
CF(end,:)=max(K-S(end,:),0); for ii=N:-1:2
Idx=find(S(ii,:) Y=CF(ii+1,Idx)'*exp(-r*dt); R=[ones(size(X1)) (1-X1) 1/2*(2-4*X1+X1.^2)]; a=R\\Y; C=R*a; Jdx=max(K-X,0)>C; nIdx=setdiff((1:M),Idx(Jdx)); CF(ii,Idx(Jdx))=max(K-X(Jdx)',0); ExTime(Idx(Jdx))=ii; CF(ii,nIdx)=exp(-r*dt)*CF(ii+1,nIdx); end Price=mean(CF(2,:))*exp(-r*dt) %%%%% 绘制标的股票价格模拟图 %%%%% x1=[0:N];y1=S';y2=mean(S'); subplot(2,1,1) plot(x1,y1) subplot(2,1,2) plot(x1,y2) xlabel('期权存续期间') 29 ylabel('股价的模拟路径') %%%%% 绘制期权价值模拟图 %%%%% figure; x2=[1:N];y3=CF(2:end,:)'; for i=1:M y4(i)=y3(i,ExTime(i)); end plot(x2,y3,ExTime,y4,'*') xlabel('期权的最优停止时间') ylabel('期权价值的模拟路径') 模拟的美式看跌期权的价格路径如下图所示: 模拟的期权价值路径及其最优停时如下图: 30