当前位置:文档之家› 5蒙特卡洛方法模拟期权定价

5蒙特卡洛方法模拟期权定价

材料五:蒙特卡洛方法模拟期权定价1.蒙特卡洛方法模拟欧式期权定价利用风险中性的方法计算期权定价:ˆ()rt Tf e E f -= 其中,f 是期权价格,T f 是到期日T 的现金流,ˆE是风险中性测度 如果标的资产服从几何布朗运动:dS Sdt sdW μσ=+则在风险中性测度下,标的资产运动方程为:20exp[()]2T S S r T σ=-+对于欧式看涨期权,到期日欧式看涨期权现金流如下:2(/2)max{0,(0)}r T S e K σ-+-其中,K 是执行价,r 是无风险利率,σ是标准差, ε是正态分布的随机变量。

对到期日的现金流用无风险利率贴现,就可知道期权价格。

例1 假设股票价格服从几何布朗运动,股票现在价格为50,欧式期权执行价格为52,无风险利率为0.1,股票波动标准差为0.4,期权的到期日为5个月,试用蒙特卡洛模拟方法计算该期权价格。

下面用MA TLAB 编写一个子程序进行计算:function eucall=blsmc(s0,K,r,T,sigma,Nu)%蒙特卡洛方法计算欧式看涨期权的价格%输入参数%s0 股票价格%K 执行价%r 无风险利率%T 期权的到期日%sigma 股票波动标准差%Nu 模拟的次数%输出参数%eucall 欧式看涨期权价格%varprice 模拟期权价格的方差%ci 95%概率保证的期权价格区间randn('seed',0); %定义随机数发生器种子是0,%这样保证每次模拟的结果相同nuT=(r-0.5*sigma^2)*Tsit=sigma*sqrt(T)discpayoff=exp(-r*T)*max(0,s0*exp(nuT+sit*randn(Nu,1))-K)%期权到期时的现金流[eucall,varprice,ci]=normfit(discpayoff)%在命令窗口输入:blsmc(50,52,0.1,12/5,0.4,1000)2. 蒙特卡洛方法模拟障碍期权定价障碍期权,就是确定一个障碍值b S ,在期权的存续期内有可能超过该价格,也可能低于该价格,对于敲出期权而言,如果在期权的存续期内标的资产价格触及障碍值时,期权合同可以提前终止执行;相反,对于敲入价格,如果标的资产价格触及障碍值时,期权合同开始生效。

当障碍值b S 高于现在资产价格0S ,称上涨期权,反之称下跌期权。

对于下跌敲出看跌期权,该期权首先是看跌期权,股票价格是0S ,执行价格是K ,买入看跌期权就首先保证以执行价K 卖掉股票,下跌敲出障碍期权相当于在看跌期权的基础上附加提前终止执行的条款,内容是当股票价格触及障碍值b S 时看跌期权就提前终止执行。

因为该期权对于卖方有利,所以其价格应低于看跌期权的价格。

对于下跌敲出看跌期权,该期权首先是看跌期权,股票价格是0S ,执行价格是K ,买入看跌期权就首先保证以执行价K 卖掉股票,下跌敲出障碍期权相当于在看跌期权的基础上附加提前终止执行的条款,内容是当股票价格触及障碍值b S 时看跌期权就提前终止执行。

因为该期权对于卖方有利,所以其价格应低于看跌期权的价格。

对于下跌敲入看跌期权,该期权首先是看跌期权,下跌敲出障碍期权相当于在看跌期权的基础上附加提前何时生效的条款,内容是当股票价格触及障碍值b S 时看跌期权开始生效。

当障碍值b S 确定时,障碍期权存在解:4275{()()[()()]}rT P Ke N d N d a N d N d -=--- 03186{()()[()()]}S N d N d b N d N d ----其中 212/0()r b S a S σ-+=, 212/0()r b S b S σ+=, 21d =2d=2d=2d=2d=2d=22d=22d=利用上述公式编写下跌敲出障碍期权价格程序:function P=DownOutPut(S0,K,r,T,sigma,Sb)a=(Sb/S0)^(-1+2*r/sigma^2)b=(Sb/S0)^(1+2*r/sigma^2)d1=(log(Sb/K)+(r+sigma^2/2*T))/(sigma*sqrt(T))d2=(log(Sb/K)+(r-sigma^2/2*T))/(sigma*sqrt(T))d3=(log(S0/Sb)+(r-sigma^2/2*T))/(sigma*sqrt(T))d4=(log(S0/Sb)+(r+sigma^2/2*T))/(sigma*sqrt(T))d5=(log(S0/Sb)-(r-sigma^2/2*T))/(sigma*sqrt(T))d6=(log(S0/Sb)-(r+sigma^2/2*T))/(sigma*sqrt(T))d7=(log(S0*K/Sb^2)-(r-sigma^2/2*T))/(sigma*sqrt(T))d8=(log(S0*K/Sb^2)-(r+sigma^2/2*T))/(sigma*sqrt(T))P=K*exp(-r*T)*(normcdf(d4)-normcdf(d2)-a*(normcdf(d7)-normcdf(d5))) -S0*(normcdf(d3)-normcdf(d1)-b*(normcdf(d8)-normcdf(d6)))例2 同例1,运行:P=DownOutPut(50,50,0.1,5/12,0.4,40)P=4.0936利用蒙特卡洛方法模拟下跌敲出障碍期权价格程序:S,其现金在模拟中我们给出模拟次数Nrepl,每次模拟时间分为Nsteps,障碍值为bS时,CashFlow=0流如下:当St小于b我们可以先模拟路径,然后让大于b S 路径的现金流为0,程序如下:function [P,aux,ci]=DOPutMC(S0,K,r,T,sigma,Sb,NSteps,NRepl) NSteps 每次离散时间数目NRepl 模拟次数%模拟股价路径dt=T/NStepsnudt=(r-0.5*sigma^2)*dtsidt=sigma*sqrt(dt)randn('seed',0)rand=randn(NRepl,NSteps)rand1=nudt+sidt*randrand2=cumsum(rand1,2)path=S0*exp(rand2)利用路径进行定价payoff=zeros(NRepl,1)for i=1:NReplax=path(i,:)if min(ax)<Sbpayoff(i)=0elsepayoff(i)=max(0,K-ax(NSteps))endend[P,aux,ci]=normfit(exp(-r*T)*payoff)运行:[P,aux,ci]=DOPutMC(50,50,0.1,5/12,0.4,40,100,1000)P = 0.8094aux = 1.9714ci =0.68710.93183 蒙特卡洛方法模拟亚式期权定价亚式期权是一种路径依赖型期权,它的收益函数依赖于期权存续期内的标的资产的平均价格。

(算术平均与几何平均)亚式看涨期权到期现金流为11max{(),0}N ii S t K N =-∑ ,/i t i t t T N δδ==例3 同例1,用蒙特卡洛方法计算该亚式期权价格。

function [P,CI]=AsianMC(s0,k,r,T,sigma,NSteps,NRepl)dt=T/NSteps;nudt=(r-0.5*sigma^2)*dt;sidt=sigma*sqrt(dt);randn('seed',0);rand=randn(NRepl,NSteps);rand1=nudt+sidt*rand;rand2=cumsum(rand1,2);path=s0*exp(rand2);payoff=zeros(NRepl,1);for i=1:NReplpayoff(i)=max(0,mean(path(i,:))-k);end[P,aux,CI]=normfit(exp(-r*T)*payoff)>> AsianMC(50,50,0.1,5/12,0.4,5,50000)P =3.9622aux =5.9669CI =3.90994.0145ans =3.96224.等价鞅测度(内容参见247页)function eucall=blsmc(s0,kK,r,T,sigma,Nu)s0=50;K=52;r=0.1;T=5/12;sigma=0.4;Nu=1000;randn('seed',0);nuT=(r-0.5*sigma^2)*T;sit=sigma*sqrt(T);discpayoff=exp(-r*T)*max(0,s0*exp(nuT+sit*randn(Nu,1)-K)); disp('蒙特卡洛模拟结果')[eucall,varprice,ci]=normfit(discpayoff)SM=s0*exp(nuT+sit*randn(Nu,1));SM=s0*exp(r*T)*SM/mean(SM);S1=max(0,SM-K);disp('风险中性下欧式看涨期权结果')[Emscall,varprice,ci]=normfit(S1)disp('欧式看涨期权解析解')blsprice(50,52,0.1,5/12,0.4)blsmc蒙特卡洛模拟结果eucall =1.3035e-021varprice =3.5526e-022ci =1.0e-020 *0.12810.1326风险中性下欧式看涨期权结果Emscall =5.4320varprice =9.8321ci =4.82196.0422欧式看涨期权解析解ans =5.1911ans =1.3035e-021。

相关主题