如何用matlab计算期权价格

参考文件

期权定价理论是现代金融学中最重要的理论之一,也是衍生金融工具定价中最复杂的理论。本文给出了欧式期权定价过程的简单推导,并用Matlab给出了定价公式的数值算例和静态分析,使读者更直观地理解期权定价理论。

关键词:Matlab;试教

基金项目:国家自然科学基金项目(70971037);教育部人文社会科学青年项目(12YJCZH128)

中国图书馆分类号:F83文献识别码:A

记录日期:2012 04 17。

现代金融学与传统金融学的主要区别在于从定性分析到定量分析的转变。数理金融学可以算是现代金融学数量分析分支中最具代表性的学科。定量分析离不开相应计算软件的应用。Matlab是目前最流行的数值计算软件,它集成了高性能数值计算和数据图形可视化,并提供了大量的内置函数。近年来得到了广泛的应用,也为金融定量分析提供了强有力的数学工具。

1.布莱克-斯科尔斯-默顿期权定价模型

本节首先给出了B-S-M期权定价模型的简单推导,下一节给出了B-S-M期权定价模型的Matlab实现。让股票在时间t的价格过程S(t)遵循以下几何布朗运动:

dS(t)= mS(t)dt+sS(t)dW(t)(1)

无风险资产价格R(t)服从以下等式:

dR(t)=rR(t)dt (2)

其中r,m,s > 0为常数,m为股票的预期收益率,s为股价的波动率,r为0 < r < m的无风险资产收益率;DW(t)是标准的布朗运动。根据公式(1):

lnS(T):F[lnS(t)+(m-s2/2)(T-t),s■] (3)

欧式看涨期权是一种合约,赋予合约持有人在未来某个时间t(到期日)以预定价格(最终价格)买入某项资产(标的资产)的权利。在风险中性的世界中,标的资产是公式(1)表示的股票,到期无红利支付的欧式看涨期权的期望值是■ [Max (s (t)-x,0]],其中■表示风险中性条件下的期望值。根据风险中性定价原则,不带红利的欧式看涨期权的价格c等于这个期望值在无风险利率下贴现后的现值,即:

c=e-r(T-1)■[max{S(T)-X,0}] (4)

在风险中性的世界里,任何资产都只会获得无风险收益率。因此,lnS(T)的分布只能从m变为r:

lnS(T):F[lnS(t)+(r-s2/2)(T-t),s■] (5)

欧式看涨期权价格可以从公式(3)-(4)得到:

c = S(T)N(d 1)-Xe-r(T-1)N(D2)(6)

这里:

d1=■ (7)

d2=■=d1-s■ (8)

N(x)是标准正态分布变量的累积概率分布函数,均值为0,标准差为1。S(t)是T时刻的股价,X是最终价格,R是无风险利率,T是到期时间。欧式看跌期权也是一种合约,它赋予期权持有者最终确定价格X并在到期日卖出标的股票的权利。

欧式看涨期权C和欧式看跌期权P之间的关系推导如下。考虑两个投资组合,投资组合1包括一个看涨期权加XE-R (T-1)基金,投资组合2包括一个看跌期权加一只股票。因此,这两个组合的值必须是:

max{X,S(T)} (9)

欧式期权在到期日前是不允许提前执行的,所以当前两个组合的价值必须相等,这样就可以得到欧式看涨期权和看跌期权的看跌期权平价:

c+Xe-r(T-t)=p+S(t) (10)

根据公式(10),不带红利的欧式看跌期权的价格为:

p = Xe-r(T-T)N(-D2)-S(T)N(-d 1)(11)

2.布莱克-斯科尔斯-默顿模型的Matlab实现。

1,欧式期权价格计算。根据公式(6),如果已知各参数的具体值,计算不带红利的欧式看涨期权的价格一般可分为三步:首先计算d1,d2,其中涉及对数函数;其次,计算N(d1)和N(d2),需要查正态分布表;最后代入公式(6)和公式(11)可以得到欧式期权价格,其中涉及到指数函数。而欧式期权价格的计算可以用Matlab中专门的blsprice函数来实现,显然更简单:

[看涨,看跌]=blsprice(价格,执行,利率,时间,波动率)(12)

你只需要直接输入每个参数的值。我们举个例子:设T时刻股票的价格为S (t) = 20元,执行价格X = 25,无风险利率r=3%,股票的波动率s=10%,到期日T-T = 1年,那么计算不分红的欧式看涨期权和看跌期权价格的Matlab。

输入命令为:[call,put]= blsprice(20,25,0.03,0.1,1)。

输出结果是:call=1.0083 put=5.9334。

也就是说,在买入一只标的股票的过程中不分红的欧式看涨期权和看跌期权满足公式(1)的价格分别为1.0083元和5.9334元。

2.欧式期权价格的比较静态分析。也许完全没有必要用Matlab软件来计算欧式期权的价格。但在教学过程中,教师要讲解期权价格随各参数的变化规律,只看定价公式不能给学生直观的感受。这时,利用Matlab的数值计算功能和绘图功能,可以很容易地显示期权价格的变化规律。基于Matlab,作者给出了欧式看涨期权价格随各参数变化的规律:

(1)看涨期权价格和股票价格的变化规律

输入命令:s =(10:1:40);x = 25r = 0.03t = 1;v = 0.1;

c=blsprice(s,x,r,t,v);

绘图(s,c,' r-')

标题('图1买入期权价格和股票价格的变化规律');

Xlabel('股价');Ylabel('选项值');网格打开

(2)看涨期权价格随时间变化的规律。

输入命令:s = 20x = 25r = 0.03t =(0.1∶0.1∶2);v = 0.1;c=blsprice(s,x,r,t,v);

plot(t,c,' r-')

标题(“图2买入期权价格随时间的变化规律”);

Xlabel(“到期时间”);Ylabel('选项值');网格打开

(3)无风险利率下看涨期权价格的变化规律。

s = 20x = 25r =(0.01∶0.01∶0.5);t = 1;v = 0.1;c=blsprice(s,x,r,t,v);

plot(r,c,' r-')

标题(“图3无风险利率下看涨期权价格的变化规律”);

Xlabel('无风险利率');Ylabel('选项值');网格打开

(4)看涨期权价格随波动率的变化规律。

s = 20x = 25r = 0.03t = 1;v =(0.1∶0.1∶1);c=blsprice(s,x,r,t,v);

绘图(v,c,' r-')

标题(“图4看涨期权价格随波动率的变化规律”);

Xlabel('波动率');Ylabel('选项值');网格打开

(作者单位:南京审计大学数学与统计研究所)

主要参考文献:

罗燕,杨昭军,张伟。不完全市场中欧式期权的无差别定价[J].湖南大学学报(自刊版),2011.9。

[2]罗燕,秦展辉。随机收入流的无差异效用定价[J].重庆工商大学学报(自刊版),2011。

[3]邓六保,李柏年,杨桂元。Matlab与金融模型分析[M]。合肥工业大学出版社,2007。