期权定价模型系列[10]有限差分法

有限差分法也叫偏微分方程法,是一种通过有限差分来近似导数并求解偏微分方程的方法。对于金融衍生品,其 价格至少跟标的价格(S)与时间(t)相关,因此该金融衍生品所对应的随机微分方程(SDE)一定含有 S 与 t 的偏导数,即为偏微分方程(PDE)。 

PDE 方法原理 

在 BS 模型下,原生资产 (以股票价格为例) 的随机微分方程(SDE)如下: 

根据费曼卡兹定理,可以将 SDE 转变为 PDE:

其中V(S(t),t) ,可将 V 理解为是任意构建的投资组合,该组合仅与 S 和 t 相关,因此对于所有结构的衍生品, 都符合上面的 PDE 方程。所以虽然要解的是这个 PDE,但核心是不同的衍生品需要选取不同的的边际条件。边 际条件的不同,相同的 PDE 解出来的就是不同衍生品的价格。此处提及的边际条件包括以下三条: 

而衍生品在期初的价格即为 V(S,t=0),即是我们希望定价得到的结果。 

例如欧式看涨期权,它的边际条件就是: 

对于边界条件(3),当时间 t 趋于 T,即看涨期权在到期时刻,其边际条件就是看涨期权的到期收益方程。 
对于边界条件(4),当标的价格 S 趋于 0 时,此时看涨期权代表的买权已经无任何价值,因此 V=0. 
对于边界条件(5),当标的价格 S 趋于无穷大时,此时看涨期权为深度实值期权,将其价值贴现到 t 时刻,则与 (5)所列结果相同。 
得到 PDE 和边界条件后,就需要使用网格搜索法进行从后向前定价推导。 我们将时间 T 作为横坐标,标的价格 S 作为纵坐标。然后将距离行权时间 T 等分成 N 份足够短的时间∆t = T N ; 同时设定一个足够大的价格 Smax ,使得 Smax 远远超过行权价 K,并且将 Smax 也等分为 M 份,使得∆S =
Smax M 。此时,我们得到了一个 MⅹN 的矩阵,可以视作一个网格,网格的横纵坐标轴分别是时间维度和资产价格 维度。

得到网格与边界条件后,我们需要得到 t=0 时,纵坐标上的所有点,即需要知道在定价初始时刻,不同标的 S 价 格下的衍生品价格。因此 PDE 方法是从边界条件倒推出初始价格,是从后至前的推导过程。 
接下来就是有限差分法求解过程,可分为显式、隐式和半隐式方法。本文采用半隐式方法对 PDE 进行离散化处 理,假设: 

对于差分方式只能用近似非法,在时间维度上有以下三种差分方法: 

在空间维度上,通常使用中央差分方法: 

带入 PDE 中, 

完全显式法

完全显式法对应后向差分,将上面向后差分表达式带入,再将Sj = j∆S⁡,⁡ti = i∆t⁡ 带入公式(2)的 PDE 方程中可 求得

完全隐式法

完全隐式法是使用了前向差分。

半隐式法

半隐式法是介于显示与隐式中间,试用中间差分实现,并令 θ=0.5。 

python实践

import pandas as pd
import matplotlib.pyplot as plt
import warnings
warnings.filterwarnings('ignore')
from crank_nicolson_method import *

if __name__=='__main__':
    s=np.arange(50,150,5)
    k=100
    t=5./12.
    r=0.1
    sigma=0.4
    smax=200
    m=100
    n=1000
    is_put=True
    res=pd.DataFrame()
    for st in s:
        a=FD_Explicit_European(st,k,t,r,sigma,smax,m,n,is_put).price()
        b=FD_Implicit_European(st,k,t,r,sigma,smax,m,n,is_put).price()
        c=FD_CrankN_European(st,k,t,r,sigma,smax,m,n,is_put).price()
        res=res.append(pd.DataFrame({'s':st,'explicit':a,'implicit':b,'crank':c},index=range(len(s))),ignore_index=False)
    print(res)
    plt.figure(figsize=(15,4))
    plt.plot(res['s'],res['explicit'],'r.',label='explicit')
    plt.plot(res['s'],res['implicit'],'b--',label='implicit')
    plt.plot(res['s'],res['crank'],'g-',label='crank')
    plt.ylabel('option_value')
    plt.xlabel('st')
    plt.legend()
    plt.show()

  • 5
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
本报告试图研究河南省空气质量的影响因素。本案例使用的数据来源于真气网河南省各市空气质量指数月统计历史数据,共1258条记录。数据的时间跨度是2013年1月-2019年5月。数据包含6个自变量,1个因变量。自变量为PM2.5,PM10,二氧化硫,一氧化碳,二氧化氮,臭氧;因变量为AQI。 在对河南省空气质量的影响因素进行模型探究之前,首先对各变量进行描述性分析,以初步判断空气质量的影响因素,为后续研究做铺垫。 (一)因变量:AQI AQI是空气质量指数(Air Quality Index)的简称,其指数在0—50空气质量为优,51—100空气质量为良,101—150空气质量为轻度污染,151—200空气质量为中度污染,201—300空气质量为重度污染,>300为严重污染。可见数值越大、说明空气污染状况越严重,对人体的健康危害也就越大。表1是AQI的描述性分析 从表1可看出,描述AQI集中趋势的平均数,中位数和众数都在101—200 之间,可见从2013年到2019年间,河南省空气质量平均处于轻度污染状态。AQI的描述统计的最大为201,已经达到了重度污染。这一现象说明河南省空气污染形势严峻。图1为AQI的直方图,也反映了该现象。图1可明显看出从2013年到2019年河南省空气质量月统计不存在“优”水平的月份。在这几年中有48%的月份空气质量处于“良”水平,有42%的月份都处于“轻度污染”水平。8%的月份处于“中度污染”水平。有1%

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

马尔可夫宽

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值