上一个教程我们向大家展示了QuantPlus中的欧式期权定价流程,其实对于所有金融工具,QuantPlus都将遵循这一定价流程。紧接上一教程的问题,一个简单的欧式期权为什么要花费四个步骤(定义金融工具-定义市场数据-定义定价引擎和估值日-实现定价结果)按照定价流程去实现定价结果呢?直接用一个简单的Black-Scholes公式不一样可以求解欧式期权么?其实这就是通用性和灵活性的平衡。这里同样反问大家几个问题,如果我们的期权合约是美式期权(可以在任意时间区间之内行权)、行权时的行权方式不是普通欧式期权行权结果,而是二值期权(Binary option),又或者期权里面包含特殊条款,比如设定障碍或者敲出条款,该如何对这类金融工具进行定价?

这里是无法只用普通的B-S模型对这些类型的期权进行定价的,不同的金融工具可能对应一个或者多个定价的方法,例如可以使用二叉树对美式期权进行定价,可以使用闭合解的方式对障碍期权进行定价,也可以使用蒙特卡洛方法对障碍期权进行定价。这样就有可能出现一个一对多的关系,即一个金融工具对应着二到三种定价方法。为了实现这样的一对多模式,QuantPlus系统将金融工具的定义和对市场数据的定义以及对定价方法的定义完全隔离开来。通过定价引擎的概念,将金融工具、市场数据和定价方法联系在一起,从而实现通过统一的定价框架实现对不同的金融工具进行定价,以及披露定价的相伴信息。

clip_image002

下面将展示如何使用QuantPlus中不同的定价引擎对欧式向上敲出(触及价格上限合约作废)障碍看跌期权进行定价。QuantPlus提供了对障碍期权工具的定义,通过函数=qpBarrierOption加以定义。

clip_image004

这里障碍类型从枚举类型里面选择UpOut,Barrier这里设定成百分比的形式即即期价格的110%。其他Payoff类型和Exercise类型和欧式期权一样,都是普通欧式行权方式,分别使用函数=qpEuropeanExercise和= =qpStrikedTypePayoff加以定义。同样定义市场数据,同样即期价格也是以百分比形式定义(也可以定义成特定的价格),波动率设定为20%,再定义满足这两个波动率的随机过程=qpGeneralizedBlackScholesProcess。

clip_image005

接下来,定义障碍期权的定价引擎。QuantPlus对解析解定价框架实现了通用函数,即统一的函数入口=qpPricingEngine。这个函数和欧式期权的定价函数一致,但是EngineID选项,选择AB即Analytic Barrier Engine,欧式障碍期权的解析解引擎(在QuantPlus理论背景指南的Valuation章节具体描述了具体的解析解公式),定价公式是不同于AE引擎的(Analytic European Engine)。

clip_image007

最后设定定价引擎,即设定该金融工具用障碍期权的解析解定价引擎来定价,使用函数=qpInstrumentSetPricingEngine来实现这一设定过程。最后使用通用估值函数=qpInstrumentNPV计算出该障碍期权的解析解结果。

clip_image009

同样,QuantPlus提供了针对障碍期权定价的特定蒙特卡洛引擎即=qpMCBarrierEngine,如下定义完成之后,同样使用函数=qpInstrumentSetPricingEngine设定障碍期权定价引擎的设定。最后使用通用估值函数=qpInstrumentNPV计算出该障碍期权的解析解结果,二者估值NPV的结果较为接近。

clip_image011

由上述定价过程可以看出,QuantPlus提供了一整套非常完备的定价体系,该体系都是通过模块化的方式构建来完成和实现的,可以灵活地实现对不同金融工具的定价和分析。

发表评论

邮箱地址不会被公开。 必填项已用*标注

填写此字段
填写此字段
请输入正确的邮箱地址。
您需要同意我们的使用条款

菜单