当前位置:首页 >> 金融/投资 >>

MATLAB实现二叉树期货定价


第二次投资银行学小组作业
曾志涛 方润开 莫子皓 周建荣 朱伟舜 陈洁毅 蔡海彬 潘永全 1. 我们组是用 matlab 软件编写函数来实现的。以上不分红的欧式看涨期权为例,函数的编 写如下:
function [price,la]=laeucall(S0,K,r,T,sigma,N) deltaT=T/N;u=exp(sigma*sqrt(deltaT));d=1/u; %S0 is the current price of the underlying asset, K is the exercise price %of the option, r is the risk-free rate, T is the maturity length, sigma %is the volatility of the asset price, and N is the interval number. p=(exp(r*deltaT)-d)/(u-d);la=zeros(N+1,N+1); for j=0:N la(N+1,j+1)=max(0,S0*(u^j)*(d^(N-j))-K); end for i=N-1:-1:0 for j=0:i la(i+1,j+1)=exp(-r*deltaT)*(p*la(i+2,j+2)+(1-p)*la(i+2,j+1)); end end price=la(1,1)

注释里面已经解释了各个参数的含义。 以下例子中,标的资产现在价格 S0=100,执行价格 K=100,无风险利率 r=0.05,期权期 限 T=1,价格的波动率 sigma=0.3,区间数目 N 和计算结果如下表所示。其中 B-S 公式计算 结果运用 matlab 本身的 blsprice 函数计算。 区间数 1 2 5 10 20 50 100 200 500 1000 10000 B-S 公式结果:14.2313 计算结果 16.9640 12.8905 14.7893 13.9408 14.0849 14.1725 14.2018 14.2165 14.2254 14.2283 14.2310

图形如下

18.00 16.00 14.00 12.00 10.00 8.00 6.00 4.00 2.00 0.00 1 2 5 10 计算结果 20 50 100 200 500 1000 10000 BS公式计算结果

可以看出,随着区间的细分程度提高,二项式模型的计算结果越来越趋近于 B-S 公式的 计算结果。 附:以下分别是编写的欧式看跌期权、美式看涨期权和欧式看涨期权的函数,均为不分 红的情况下。 欧式看跌期权:
function [price,la]=laeuput(S0,K,r,T,sigma,N) deltaT=T/N;u=exp(sigma*sqrt(deltaT));d=1/u; p=(exp(r*deltaT)-d)/(u-d);la=zeros(N+1,N+1); for j=0:N la(N+1,j+1)=max(0,-S0*(u^j)*(d^(N-j))+K); end for i=N-1:-1:0 for j=0:i la(i+1,j+1)=exp(-r*deltaT)*(p*la(i+2,j+2)+(1-p)*la(i+2,j+1)); end end price=la(1,1)

美式看涨期权:
function [price,la]=laamcall(S0,K,r,T,sigma,N) deltaT=T/N;u=exp(sigma*sqrt(deltaT));d=1/u; p=(exp(r*deltaT)-d)/(u-d);la=zeros(N+1,N+1); for j=0:N la(N+1,j+1)=max(0,S0*(u^j)*(d^(N-j))-K); end for i=N-1:-1:0 for j=0:i la(i+1,j+1)=max(exp(-r*deltaT)*(p*la(i+2,j+2)+(1-p)*la(i+2,j+1)),-K+S 0*u^j*d^(1-j));

end end price=la(1,1)

美式看跌期权:
function [price,la]=laamput(S0,K,r,T,sigma,N) deltaT=T/N;u=exp(sigma*sqrt(deltaT));d=1/u; p=(exp(r*deltaT)-d)/(u-d);la=zeros(N+1,N+1); for j=0:N la(N+1,j+1)=max(0,-S0*(u^j)*(d^(N-j))+K); end for i=N-1:-1:0 for j=0:i la(i+1,j+1)=max(exp(-r*deltaT)*(p*la(i+2,j+2)+(1-p)*la(i+2,j+1)),K-S0 *u^j*d^(1-j)); end end price=la(1,1)

2. 期望形式的 APT 证明。 证明: 符号说明: 投资组合比例向量: w ? ( w1 , w2 , ???, wn )T 资产 i 对因素 j 的敏感性系数: ? ij 资产 i 收益率: Ri

? ?11 ? B?? ?? ? n1

? ? ? nk ? ?

?1k ?

T

资产收益向量: R ? ( R1 , R2 , ???, Rn )T 资产期望收益向量: E (R) ? ( E ( R1 ), E ( R2 ), ???, E ( Rn ))T

1 ? (1,1, ???,1)T ,元素有 n 个
投资组合收益: RP

1 ? i ? n ,1 ? j ? k
(线性规划对偶理论)

问题本质上是下列的线性规划问题:

max E ( RP ) ? E (R)T w
s.t.

1T w ? 0

Bw ? 0 w :取值范围无限制
用 ?t 表示其对偶问题的变量,由于原问题有 k ? 1 个约束条件,向量 λ ? (?0 , ?1 , ?2 , ???, ?k ) 共有 k ? 1 个元素。 其对偶问题为
T

min z ? 0T λ ? 0
s.t.
T B1 λ ? E (R)

λ :取值范围无限制
其中

? ???????11 ? B ? ? ????? ? ??????? n1 ?
T 1

? ? ? nk ? ?

?1k ?

即对偶问题的解为 0,而且 λ ? (?0 , ?1 , ?2 , ???, ?k ) 可以取任何值,则原问题的最大值不大于 0。由于 w ? (0,0,

,0) 是原问题的一个可行解,此时目标函数值为 0,因此也是最优解。

对偶问题的约束条件第 i 个方程就是

E ( Ri ) ? ?0 ? ?i1?1 ? ?i 2?2 ?

? ?ik ?k

(线性空间方法) 沿用上述记号。如果资产组合满足如下条件

1T w ? 0
Bw ? 0
则由无套利假设,必须有 E (R) w ? 0 。向量组 {1, β1 , β2 ,
T

, βk } 线性无关,由这 k ? 1 个向
?

量作为基生成一个 k ? 1 维子空间 V 。与这个子空间 V 中任何向量均正交的所有向量构成的 正交子空间记为 V ,则显然 w ? ( w1 , w2 , ???, wn ) 是正交子空间 V 的元素,这两个子空间
T

?

的 维 数 相 加 为 n 。 而 由 E ( R ) w ? 0可 知 , E ( R ) ? V , 故 存 在 唯 一 k ? 1 维 向 量
T

T λ ? (?0 , ?1 , ?2 ? , ? ? ,? ) ,使得 E (R) ? ?0 1 ? ?1β1 ? ?2β2 ? k

? ?k βk ,写成分量形式就是

E ( Ri ) ? ?0 ? ?i1?1 ? ?i 2?2 ?

? ?ik ?k


赞助商链接
相关文章:
欧式看涨期权二叉树定价
0 实现的过程。 19. 2 实验目的 (1)了解二叉树定价机理; (2)掌握用 MATLAB7. 0 生成股票价格二叉树格子方法; (3)掌握欧式期权和美式期权的二叉树定价...
最优二叉树的matlab实现
最优控制的MATLAB实现 42页 1下载券 美式期权二叉树定价及MA... 3页 5下载...MATLAB实现二叉树期货定... 4页 1下载券 基于MATLAB_的线性二次型... ...
基于matlab构造最优二叉树
美式期权二叉树定价及MA... 3页 5下载券 亚式期权二叉树matlab M... ...MATLAB实现二叉树期货定... 4页 1下载券 求最优二叉树的matlab算... 3页...
期权定价实验报告(M101613110黄清霞)
(二)基于 Matlab 的期权定价二叉树方法实验 A.实验原理 1.二叉树模型结构 ...模板期货期权实验报告2 9页 免费 《期货与期权》实验报告... 14页 2下载...
美式看跌期权二叉树数值算法比较
然而,不付 红利的美式看跌期权却可以提前执行。本文着重分析在为美式看跌期权定价时, 二叉树二叉树法中的两种不同的 matlab 代码的其各自特点。 【关键词】美 ...
Matlab函数实现哈夫曼编码算法
Matlab函数实现哈夫曼编码算法_信息与通信_工程科技_专业资料。课程设计任务书 ...这个系统函数来构造哈夫曼二叉树。声明一个 tree(5,x)结构的树型结点,一 个...
更多相关标签: