本申请涉及交易自动化领域,特别涉及一种期权定价的方法、装置及系统。
背景技术:
随着金融知识和金融产品不断的发展和普及,拓展出许多衍生性金融工具。其中之一,就是期权,期权作为一种衍生性金融工具,是指买方拥有在未来一段时间内或未来某一特定日期以事先规定好的价格向卖方购买或出售一定数量的特定商品的权利。因此,在期权交易过程中规定好价格就显得尤为重要。目前,期权定价有多种方法实现,例如数值方法、二项树定价方法、蒙特卡洛定价方法。由于处理的问题的维数不断变多,传统的数值方法不适用,更为常用的是的蒙特卡洛定价方法。
蒙特卡洛定价方法根据随机数来模拟抽样实验来计算参数的统计特征,最后给出关于期权定价的近似值。因此,首先要计算随机数构造出随机抽样环境。根据随机抽样环境,估计出抽样样本,重复根据随机数估计得到大量的抽样样本,求取样本均值,就可以得到蒙特卡洛模拟的期权价格。所以,随机数的生成速度以及其是否表达准确的模拟环境都会影响到蒙特卡洛模拟的模拟结果。
但是目前计算随机数的方法产生随机数较慢,不能满足蒙特卡洛模拟的要求,使模拟结果与真实环境的准确度较差,而且模拟的速度受制于随机数的产生速度,模拟速度也会随之下降。导致蒙特卡洛模拟的速度和精度不及预期要求。
因此,如何提高蒙特卡洛模拟的模拟速度,是本领域技术人员需要解决的技术问题。
技术实现要素:
本申请的目的是提供一种期权定价的方法,该方法能提高期权定价模拟时的速度;本申请还提供一种期权定价的装置及系统。
为解决上述技术问题,本申请提供一种期权定价的方法,包括:
根据期权变化的特征,设定串行随机数发生器得到原始随机数序列;
将所述原始随机数序列按预定数量分割为预定长度的子序列;
对每个所述子序列设置一个线程,发送到协处理器中进行并行化处理得到均匀分布随机数;
对所述均匀分布随机数进行分布转化处理,得到正态分布随机数;
根据所述正态分布随机数进行蒙特卡洛模拟,得到期权价格。
可选的,所述预定长度为满足所述协处理器模拟时的随机数的最大个数。
可选的,对所述均匀分布随机数进行分布转化处理,得到正态分布随机数,包括:
根据所述均匀分布随机数,计算出正态值;
根据所述正态值得到服从正态分布的正态分布随机数。
可选的,根据所述正态分布随机数进行蒙特卡洛模拟,得到期权价格,包括步骤:
步骤s501,利用所述正态分布随机数在风险中性测度下模拟标的资产的价格路径;
步骤s502,计算在所述价格路径下的期权的到期回报,并求得回报贴现;
步骤s503,重复步骤s501与步骤s502,得到回报贴现的抽样样本;
步骤s504,根据所述抽样样本计算样本均值,得到期权价格。
本申请还提供一种期权定价的装置,包括:
串行随机数模块,根据期权变化的特征,设定串行随机数发生器得到原始随机数序列;
分割模块,将所述原始随机数序列按预定数量分割为预定长度的子序列;
均匀分布模块,对每个所述子序列设置一个线程,发送到协处理器中进行并行化处理得到均匀分布随机数;
正态分布模块,对所述并行化随机数进行分布转化,得到正态分布随机数;
模拟模块,根据所述正态分布随机数进行蒙特卡洛模拟,得到期权价格。
可选的,所述正态分布模块,包括:
第一计算单元,根据所述均匀分布随机数,计算出正态值;
第二计算单元,根据所述正态值,得到服从正态分布的正态分布随机数。
可选的,所述模拟模块,包括:
模拟价格单元,利用所述正态分布随机数在风险中性测度下模拟标的资产的价格路径;
回报计算单元,计算在所述价格路径下的期权的到期回报,并求得回报贴现;
抽样样本获取单元,根据所述模拟价格单元与所述汇报计算单元的输出,得到回报贴现的抽样样本;
第三计算单元,根据所述抽样样本计算样本均值,得到期权价格。
本申请还提供一种期权定价的系统,包括:
cpu,用于根据期权变化的特征,设定串行随机数发生器得到原始随机数序列;并将所述原始随机数序列按预定数量分割为预定长度的子序列;对每个所述子序列设置一个线程,设置每个线程的初始值,发送到协处理器;
协处理器,将发送来的所述子序列利用openmp并行化处理得到并行化随机数,对所述并行化随机数进行分布转化,得到正态分布随机数,并根据所述正态分布随机数进行蒙特卡洛模拟,得到期权价格。
本申请所提供的期权定价的方法,包括根据期权变化的特征,设定串行随机数发生器得到原始随机数序列;将原始随机数序列按预定数量分割为预定长度的子序列;对每个所述子序列设置一个线程,发送到协处理器中进行并行化处理得到均匀分布随机数;对所述均匀分布随机数进行分布转化处理,得到正态分布随机数;根据所述正态分布随机数进行蒙特卡洛模拟,得到期权价格。
该方法通过将串行随机数按照预定长度进行分段处理,将分段后的子序列发送到协处理器的方式,对串行随机数进行并行化处理。在对分段后的子序列分配线程中,通过线程可以将子序列发送至处理模块中。改变以往的单独处理每个随机数的方式,可以利用线程以一段数据的方式处理随机数,因此在处理速度不变的情况下,可以处理更多数据,此时模拟的速度也更快。本申请所提供的一种期权定价的装置及系统,具有同样的有益效果,在此不做赘述。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请实施例提供的期权定价的方法的流程图;
图2为本申请实施例提供的正态分布处理的流程图;
图3为本申请实施例提供的蒙特卡洛模拟的流程图;
图4为本申请实施例提供的一种期权定价的装置的结构图;
图5为本申请实施例提供的正态分布模块的结构图;
图6为本申请实施例提供的模拟模块的结构图;
图7为本申请实施例提供的一种期权定价的系统的结构图。
具体实施方式
本申请的核心是提供一种期权定价的方法,该方法能够提高模拟期权定价的速度;本申请还提供一种期权定价的装置及系统。
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
请参考图1,图1为本申请实施例提供的期权定价的方法的流程图。
该方法可以包括:
步骤s110,根据期权变化,设定串行随机数发生器得到原始随机数序列;
步骤s120,将所述原始随机数序列按预定数量分割为预定长度的子序列;
步骤s130,对每个所述子序列设置一个线程,发送到协处理器中进行并行化处理得到均匀分布随机数;
步骤s140,对所述均匀分布随机数进行分布转化处理,得到正态分布随机数;
步骤s150,根据所述正态分布随机数进行蒙特卡洛模拟,得到期权价格。
本方法,根据期权变化产生相关的随机数序列,利用该随机数序列进行蒙特卡洛模拟得到期权价格。其中,产生的随机数是串行随机数序列,对该串行随机数序列进行并行处理和分布转化,就是方法中的步骤s120至步骤s140,将串行随机数序列分割后利用线程可以大大加快处理模块接收随机数的速度,并对串行随机数并行化处理可以提高模拟速度,同时分布转化的随机数可以使模拟结果更加准确。
其中,该串行随机数发生器所产生的随机数用以模拟真实环境下的期权变化,因此串行随机数发生器的设定与选取,使其产生的随机数应符合真实环境下的期权变化的规律。在本实施例确定串行随机数产生器中,选用一种组合多重递归随机数产生器mrg32k3a,其产生的随机数很好的反应了真实环境下的期权变化规律,也可以选用其他随机数产生器,在此不做限定。
该随机数产生器的具体原理如下:
组合多重递归随机数产生器的递推公式为:
xj,n=(aj,1xj,n-1+…+aj,kxj,n-k)modm
周期
为了兼顾速度和长周期性,j=2、k=3时比较理想。同时mrg32k3a是属于此种类型的cmrg,因此确定系数后的递推公式为:
其中n≥3,因此
a1,2=1403580a1,3=-810728
a2,1=527612a2,3=-1370589
m1=232-209m2=232-22853
根据上述结果以及如下的公式产生[0,1)之间的均匀随机数
zn=(x1,n+x2,n)modm1
周期周为
确定随机数产生器后,一般有两种方法使串行随机数并行化,第一种是每个线程独自应用不同类别的随机数产生器,第二种是将一个随机数产生器并行化到每一个线程中。由于第二种方法易于实施,因此在本实施例众选用第二种方法。
将产生的随机数序列按预定数量分割为预定长度的子序列,其中,预定数量可以根据cpu的线程数确定,而子序列的预定长度应满足处理器模拟时对随机数个数的最大需求,使处理器处理的状态最佳。这时每个子序列都是原始序列的连续子序列,拥有各自的初始值。同时对每个子序列设置一个线程发送到协处理器中,进行并行化处理,得到并行后的均匀分布随机数。
上述方法通过符合期权变化规律的随机数产生器产生随机数,并将其并行化,加快处理模块接收随机数的速度,提高模拟速度,同时得到符合期权变化的抽样样本,计算出期权价格。该方法具有较快的处理速度,充分利用硬件资源,提高效率,同时模拟结果具有较好的精度。
请参考图2,图2为本申请实施例提供的正态分布处理的流程图。
基于上述实施例,本实施例步骤s140可以包括:
步骤s141,根据所述均匀分布随机数,计算出正态值;
步骤s142,根据所述正态值得到服从正态分布的正态分布随机数。
其中,对于均匀分布随机数的分布转化,使最后输出的随机数是正态分布的。为了达到更好的转化结果,在本实施例中选用box-muller变换作为分布转化的方法,具体步骤如下:
首先,由并行化步骤产生两个相互独立的均匀分布随机数r1,r2~u(0,1)。将其带入到公式中计算。
令y符合公式
y=μ+σx
输出服从n(μ,σ2)的正态分布随机数y。其中,x就是上述的正态值。
在实施例后续的步骤中,运用此处得到的经分布转化的正态分布随机数,可以使模拟的结果准确度更高。
请参考图3,图3为本申请实施例提供的蒙特卡洛模拟的流程图。
基于上述实施例,本实施例步骤s150可以包括:
步骤s501,利用所述正态分布随机数在风险中性测度下模拟标的资产的价格路径;
步骤s502,计算在所述价格路径下的期权的到期回报,并求得回报贴现;
步骤s503,重复步骤s501与步骤s502,得到回报贴现的抽样样本;
步骤s504,根据所述抽样样本计算样本均值,得到期权价格。
其中,蒙特卡洛模拟的原理如下:
首先利用正态分布随机数模拟资产的价格路径,将时间区间[0,t]分成n个子区间
0=t0<t1<t2<…tn=t
标的资产价格过程的离散形式是
其中s(t)表示期权标的资产在t时刻的价格,r为无风险利率,t为期权的到期执行时刻,σ为标的资产的波动率,zi为正态分布的随机数。
其次,再计算在这条路径下期权的到期回报,并根据无风险利率求得汇报的贴现。其中计算要关注两种情况,分别是看涨期权和看跌期权。
看涨期权
看跌期权
其中k为敲定价格。
然后利用大量随机数,继续重复前两步,可以得到大量期权回报贴现值的抽样样本。
最后求取样本均值,得到期权价格的蒙特卡洛模拟值,也就是模拟出的期权价格。
看涨期权
如果其中是看跌期权,只需要将
本申请技术方案,通过将串行数据分割为子序列,并对每个子序列设置一个线程实现串行数据的并行化处理,再将随机数进行分布转化形成正态分布随机数,最后根据该正态分布随机数进行蒙特卡洛模拟,得到模拟的期权价格。
本申请实施例提供了一种期权定价的方法,可以通过上述方法快速的产生随机数,处理模块也同时更快接收随机数,从而使模拟的速度提高。同时运用了正态分布的随机数,使最后模拟的结果精度更高。
下面对本申请实施例提供一种期权定价的装置及系统进行介绍,下文描述的一种期权定价的装置及系统与上文描述的一种期权定价的方法可相互对应参照。
请参考图4,图4为本申请实施例提供的一种期权定价的装置的结构图。
该装置可用于快速的处理期权定价模拟,可以包括:
串行随机数模块100,根据期权变化的特征,设定串行随机数发生器得到原始随机数序列;
分割模块200,将所述原始随机数序列按预定数量分割为预定长度的子序列;
均匀分布模块300,对每个所述子序列设置一个线程,发送到协处理器中进行并行化处理得到均匀分布随机数;
正态分布模块400,对所述并行化随机数进行分布转化,得到正态分布随机数;
模拟模块500,根据所述正态分布随机数进行蒙特卡洛模拟,得到期权价格。
请参考图5,图5为本申请实施例提供的正态分布模块的结构图。
基于上述实施例,该正态分布模块400,可以包括:
第一计算单元410,根据所述均匀分布随机数,计算出正态值;
第二计算单元420,根据所述正态值,得到服从正态分布的正态分布随机数。
请参考图6,图6为本申请实施例提供的模拟模块的结构图。
基于上述实施例,该模拟模块500,可以包括:
模拟价格单元510,利用所述正态分布随机数在风险中性测度下模拟标的资产的价格路径;
回报计算单元520,计算在所述价格路径下的期权的到期回报,并求得回报贴现;
抽样样本获取单元530,根据所述模拟价格单元与所述汇报计算单元的输出,得到回报贴现的抽样样本;
第三计算单元540,根据所述抽样样本计算样本均值,得到期权价格。
请参考图7,图7为本申请实施例提供的一种期权定价的系统的结构图。
该系统可用于快速的处理期权定价方法,可以包括:
cpu710,用于根据期权变化的特征,设定串行随机数发生器得到原始随机数序列;并将所述原始随机数序列按预定数量分割为预定长度的子序列;对每个所述子序列设置一个线程,设置每个线程的初始值,发送到协处理器。
协处理器720,将发送来的所述子序列利用openmp并行化处理得到并行化随机数,对所述并行化随机数进行分布转化,得到正态分布随机数,并根据所述正态分布随机数进行蒙特卡洛模拟,得到期权价格。
其中,根据上述并行化的理论方案,将串行程序改为openmp并行程序,确定输入量和输出量,通过offload的方式实现并行化,并将代码移植到协处理器中。
过cpu和协处理器协同处理的系统,将期权定价的过程分工处理。cpu完成控制任务和数据传输任务,协处理器端作为计算端,完成cpu交给的并行任务。可以提高效率,加快模拟的速度。
说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质中。
以上对本申请所提供的一种期权定价的方法进行了详细介绍。本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。