5蒙特卡洛方法模拟期权定价
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
材料五:蒙特卡洛方法模拟期权定价
1.蒙特卡洛方法模拟欧式期权定价
利用风险中性的方法计算期权定价:
ˆ()rt T
f e E f -= 其中,f 是期权价格,T f 是到期日T 的现金流,ˆE
是风险中性测度 如果标的资产服从几何布朗运动:
dS Sdt sdW μσ=+
则在风险中性测度下,标的资产运动方程为:
2
0exp[()]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)*T
sit=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 σ+=, 2
1d =
2
d=
2
d=
2
d=
2
d=
2
d=
22
d=
22
d=
利用上述公式编写下跌敲出障碍期权价格程序:
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,障碍值为
b
S时,CashFlow=0
流如下:当St小于
b