美式期权二叉树定价及MATLAB程序
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
】
金融随机分析课程
美式期权的二叉树定价
1、对于连续随机游走:
SdZ Sdt dS σμ+=
可以用离散格随机游走模型来表示,即标的资产的价格只在离散时间点t ∆,2t ∆,3t ∆,…,N t ∆取值,t ∆表示很小但非无穷小的时间步长;如果标的资产在时刻m t ∆的价格为m S ,那么在时刻(m+1)t ∆其价格有两种可能的值:)1(>u uS m 和)1( 2、风险中性假设在风险中性条件下,随机微分方程: SdZ Sdt dS σμ+= 其中的μ可以用r 来表示。即 ~ SdZ rSdt dS σ+= 风险中性条件下,在时刻m t ∆衍生证券的价格m V 是其在时刻(m+1)t ∆的期望值按照无风险利率r 贴现所得到的,即][1+∆-=m t r m V e E V 。 3、期权的计算 期权的计算是从二叉树图的末端(时刻T )开始向后倒退进行的。T 时刻期权的价值N n V 已知。对于一个看涨期权来说,有 )0,max (K S V N n N n -= 对于一个看跌期权来说,有 )0,max (N n N n S K V -= 其中,n=0,1,2,…,N, K 为执行价格。 } 在风险中性条件下,t T ∆-时刻的每个结点上的期权值都可以用T 时刻期权价值的期望值在时间t ∆内用利率r 贴现求出;同理,t T ∆-2时刻的每个结点的期权值可以用t T ∆-时刻的期望值在t ∆时间内用利率r 贴现求出,其它结点依次类推。 而如果对于美式期权,必须检查二叉树图的每个结点,以确定提前执行是否 比继续持有t ∆时间更为有利。最后,向后倒推通过所有结点就求出了当前时刻的期权价值0V 。 下面对美式期权定价问题进行研究: 美式看涨期权被提前执行时,其内涵价值为 )0,max (K S V m n m n -= n=0,1,2,…,m 对于看跌期权来说,有 )0,max (m n m n S K V -= n=0,1,2,…,m 在m t ∆时刻从节点(m,n)向(m+1)t ∆时刻的结点(m+1,n+1)移动的概率为p ;向(m+1)t ∆时刻的结点(m+1,n)移动的概率为1-p 。 - 假设期权不提前执行,有: ])1([111+++∆--+=m n m n t r m n V p pV e V 若期权提前执行,必须与内涵价值相比较。那么,对于看涨期权,有 ]})1([),0,max {max (111+++∆--+-=m n m n t r m n m n V p pV e K S V 对于看跌期权,有 ]})1([),0,max {max (111+++∆--+-=m n m n t r m n m n V p pV e S K V 4、计算美式看涨期权的价格的Matlab 实现(基于具体的算例) Matlab 程序如下: - %输入具体参数 S0=100; %当前股价 K=105; %执行价格 r=; %利率 T=1; %期权有效期 sigma=; %波动率 q=; %红利率 n=1000; %步数 * dt=T/n; %时间步长 %计算二叉树各参数 u=exp(sigma*sqrt(dt)); %计算上升比率 d=1/u; %计算下降比率 p=(exp((r-q)*dt)-d)/(u-d); %计算上升的概率 %构造二叉树矩阵,i表示行数,j表示列数,Sx为股价矩阵,fx为期权的内在价值 for j=1:n+1 # for i=1:j Sx(i,j)=S0*(u^(j-i))*(d^(i-1)); fx(i,j)=max(Sx(i,j)-K,0); end; end; %计算美式期权价格矩阵Afx和欧式期权价格矩阵Efx for i=1:n+1 %到期时(j=n+1)期权价格 [ Afx(i,n+1)=fx(i,n+1); Efx(i,n+1)=fx(i,n+1); end; for jj=1:n %倒推前面各期(j=n-1,n-2,…,1)期权价格 j=n+1-jj; for i=1:j Efx(i,j)=exp(-r*dt)*(p*Efx(i,j+1)+(1-p)*Efx(i+1,j+1)); Afx(i,j)=max(exp(-r*dt)*(p*Afx(i,j+1)+(1-p)*Afx(i+1,j+1)),fx(i,j)); 《 end; end; %输出结果AmeOptionPrice=Afx(1,1) ErouOptionPrice=Efx(1,1) AmeOptionPrice = ErouOptionPrice =