DD教你装逼:随机微分方程与期权定价 (未完) - wutong92120/KFQ-POST GitHub Wiki

作者:phoebeDD

时间:2015-12-22 01:49:24

DD这次不说物理了,来给大家科普一下量化金融的基础:布莱克舒尔斯期权定价模型。 这次我们来说说欧式期权的定价!欧式期权是这么一个东东:


我此刻拿到一个权限,这个权限允许我在未来的某个特定时间T用这一刻已经制定好的价格K来买入某只股票

那么有趣的问题来了,这个权限到底值多少钱?在交易当天,这个权限的价格十分明显:如果股票的价格S大于K,那么这个权限的价格V就是S-K;如果股票的价格小于S,那么这个权限就是一张废纸,这个权限不值钱,价格V为0。 所以我们用V=max{S-K, 0}来表达这个权限在交易当天的价格。可是问题来了:从现在开始到交易到来的当天,这个权限的价格是怎样变化的?

为了解答这个问题, 我们先研究一下股票价格走势的特点:



这个是微软价格的走势图。 我们可以把他看成一个价格以时间为变量的函数S(t)。这个函数有三个特点:1他连续但处处不可导;2他有一个走势(微软的估价是越来越低的);3;在不同的时间段,股价的波动不同(01-02年股价波动大,04-05年波动相对平缓)。 在此我们一项项分析这三个特性,然后引入一个由布朗运动,走势项与波动项三个东西组成的方程来最大限度地还原股价走势。

股票价格函数的特点
首先我们来说说为什么这个函数是连续但处处不可导的。首先对于任意时刻,所有在这一时刻买入卖出这支股票的人用的都是同一个价格,所以这个股票在没一时间点上的左右极限都是一样的,所以它连续。其次,处处不可导这个是基于一个十分重要的假设:市场中不存在无风险套利机会。这个假设虽然不全然正确,但也非常接近事实了。在成熟的市场,无风险套利机会都是转瞬即逝,而且出现的机会非常难得,所以这个假设我们可以认为它在大部分时间都是正确的。基于这个假设,如果价格函数存在导数的话,那么在导数存在的那一时刻上,我们完全可以按照导数的变化准确地预支下一刻股票价格的变化,那么我们就在这个时刻点上根据导数的变化买入/卖出股票来套利,这样就变成了一个无风险套利。这种策略是不会存在的,所以股票价格函数连续但处处不可导。

根据这一个特性,我们将目光放在布朗运动上。布朗运动是一种路径连续的运动,但同样因为不可预测性,他处处不可导。下图是一个用电脑模拟出来的一维布朗运动:


一维布朗运动W是这么一个函数:他连续,而且他在时间 t 的值于他以前的走势完全没有关系,在△t 这一段很短的时间内,他的增量服从正态分布 N(0,△t)。 如果你不懂正态分布,请摸我。 因为在任意短时间内,W的变化永远都是随机的,他有50%向上,50%向下,而且变化程度也完全是随机的,所以这个函数也是连续但处处不可导的。 

我们在这里引进了一维布朗运动,但问题拿了,布朗运动是没有任何趋势的,而且在任意一段时间内,他们的波动是一样的(这些东西需要证明,但是证明非常麻烦,至少她看上去完全是我所说的这样子吧)。 所以我们还需要对布朗运动做一下改进来模拟股票的走势。

所以我们在这里引入趋势项。趋势项是决定股票价格总体趋势的可导连续函数。因为股票的平均价格是有规律变化的,例如微软生意不好,那么他的股票在交易时可能非常随机,但总体趋势是向下走的。当微软生意变好了,股票价格整体上又会慢慢上升。这种可预见性说明了股票价格的走向并不是随机的,而是服从一个可预测的规律的,这个规律就是一个可导函数。因为导数说明了我们在这一点上可以预测下一刻的变化。重新用回刚才微软的股价图:




微软的股价下跌到一个临界之后总体稳定。 所以他在三段时间内,趋势各服从一个函数。好了,我们就说这三个函数大概是S=e^(-t), S=30和 S=t^2吧

好了,是时候做一些数值模拟了。在这之前,我们先确定一些记号。 在很短一段时间,说△t 内吧,布朗运动的增长量是△W(请记住这个增量完全是一个随机变量),那么股票价格S的增长量就是△S了。哦,对了,正的增长量是增长,那么负的增长量就是减少了。

先模拟这个方程:


先提醒一下,dy=-ydx这个微分方程的解就是y=e^(-x),所以我们现在是模拟第一个时间段的股票价格。好了,啦啦啦啦,我们得到了下面的结果:


(虽然下降速度不是很一样,但是趋势总体是一样的吧~~~)

然后我要在这里遗憾地告诉大家,我要跳过第二个时间段股票走势的模拟。 有兴趣的同学可以摸我一下。 因为这种在一个均值上上下浮动的函数叫做mean reverting process, 并不是单纯的布朗运动。 如果要给大家介绍这种函数,太浪费时间了。

好了,然后我们模拟最后一段股票价格,也就是说我们模拟这么一个方程:


然后电脑给了我们这么一个结果:



哈哈哈,是时候欢呼了吗? 我觉得我将第一段和最后一段股票走势给大概模拟出来了。 通过这两个模拟,我们还发现了一个非常有用的事实:方程中的第二项,也就是布朗运动增量那一项,只是给了函数总体趋势一些干扰,却并不能完全扭转函数的总体走向(当然,这也是可以证明的,但因为我们不是数学家,就不证明了)

来到这里,我们就差不多可以完成我们对股票价格函数的讨论了。但是,等等,我们还要说说波动!因为前两次模拟我们都是忽略股票的波动的,现在我们再考虑一下股票的波动代表了什么。

假如有某个关于微软的重大消息发布了,那么肯定会造成市场交易量的增多或者减少。如果市场交易增多了,就会有人高点抛售低点买进吧。 假如这种行为大量发生,就会造成股票价格非常地不确定,也就是波动非常地大。反之,交易的人少了,股票就会更少波动,不确定性也会更少。

所以我们所说的波动就是股票价格在某一时间段不确定性的程度。再回想起我们前面说过的方程,当方程第二项,也就是随机项为0的时候,股票价格走势是完全确定的,是可以被预测的(当然这违反了无套利机会假设,是不能发生的),当第二项增大时,股票价格的波动就会变大。现在我们来看看将原来的两个方程的随机项乘以10倍,就是模拟以下两个方程:




然后下面就是我们得到的电脑模拟结果:




哇靠.....这是什么鬼??跟原来完全不一样了~~~别着急,我们让子弹飞一飞,用更长的时间尺度来看我们这个模拟:



这两个模拟结果是我将模拟的时间延长了5倍的结果。所以当波动增大后,短期内股票价格是更不确定的,但长期来说,走势仍然是不变的。好了,到了这里,我们就可以做总结了,任何一支股票价格,他们都服从以下方程:


其中趋势项方程和波动方程都是可导可预测的方程,但是布朗运动给我们引进了不确定的因素。造成了股票精确价格的不可预测,和总体趋势的可预测。而我写下的这个方程,就是随机微分方程

---------------------------------------------------------------------------------------------------------------------------------
第一章完,有空继续第二章~~~

⚠️ **GitHub.com Fallback** ⚠️