应用背景

QuantPlus Analytics为用户提供了多种美式期权的定价引擎,用户可以在Excel中快速创建期权定价的模型。为了便于用户快速创建模型,QuantPlus提供了一套建模的思想和机制,该机制很好了利用了面向对象建模的思想,能够基于对象的概念进行模型的创建、以及利用多态的概念对各种金融工具利用同一个函数进行定价。这里对于任何金融工具的定价都可以使用qpNPV函数公式,该函数是多态的一个很好的实例。该函数的参数都是以对象的方式进行传入。

下面我们将重点介绍该机制在美式期权中具体应用。首先,让我们看看该美式期权的具体合约属性:

1. 假设该合约是IBM股票的期权合约,该合约是标准美式期权。合约起始日是1998-5-15,合约到日期为1999-5-17年。

2. 标的资产为股票。股票服从BS随机过程,当前的价格为36元。其波动率设为常量0.2。股票价格和无风险利率可由市场数据得到为0.06;

3. 股票期权的敲定价格为40元。

clip_image002

利用QuantPlus来进行定价,实现基本参数的对象化构建

QuantPlus定价引擎通过三个重要参数:Instrument、PricingMethod以及RiskFactorModel来创建定价引擎,为指定的美式期权进行定价。这三个参数均是以对象的方式进行传入,首先我们要构造这三个对象。

clip_image004

1. 交易产品定义—Instrument

American Option_1:创建美式期权对象,使用qpVanillaOption函数,所需参数如下:

Objectid:对象名称;

Payoff:回报对象名称;

Exercise:行权对象名称;

American Option_2:同American Option_1,设立另一个美式期权对象,用不同方法定价;

clip_image006

Payoff对象

Payoff Type:回报类型,这里设立为Vanilla;

Option Type:期权类型,call或put;

Strike:行权价;

Strike Type Payoff:行权类型对象,这里用qpStrikedTypePayoff函数,所需参数如下:

clip_image008

Objectid:对象名称;

Payoffid:回报类型;

Option Type:期权类型;

Strike:行权价;

Exercise Date:行权日

Exercise对象

Exercise Object:行权对象,这里使用qpAmericanExercise函数,所需参数如下:

Objectid:对象名称;

Earliestdasy:最早可行权日;

Latestday:最晚可行权日;

clip_image010

2. 风险因子模型—RiskFactorModel

Black Constant Vol Object:设置波动率对象,这里我们设波动率为常量,用用qpBlackConstantVol函数,所需输入参数如下:

Objectid:对象名称;

SettlementDate:清算日;

Calendar:交易日历;

Volatility:波动率;

Daycounter:日期计数规则;

clip_image012

Underlying:股票价格;

Risk Free Rate:无风险利率;

Dividend Yield:红利;

Stochastic Process Object:随机过程对象,设为一般BS模型,用qpGeneralizedBlackScholesProcess函数,所需参数如下:

Objectid:对象名称;

Blackvolid:上一步设立的波动率对象;

Underlying:股票价格;

Daycounter:日期计数规则;

SettlementDate:清算日;

Risk Free Rate:无风险利率;

Dividend Yield:红利;

clip_image014

3. 计算方法—PricingMethod

AEQPB是Additive EQP(Equal Probability) Binomial Tree方法,是使用二叉树定价,但此处go up 和go down的概率都是50%。

CRR是Cox-Ross-Rubinstein (multiplicative)equal jumps binomial tree,也是二叉树模型,但上涨、下跌概率不是50%,而是根据上涨幅度u和下跌幅度d计算得出。

BAWA是Barone Adesi Whaley Approximation Engine,基于Black-Scholes  Merton模型,利用二次方程近似解进行定价。

下一步我们创建美式期权对象,输入如下信息:

下面我们用BAWA方法定价:

Pricing Engine Type:输入BAWA;

Pricing Engine:定价引擎,用qpPricingEngine函数,参数如下:

Objectid:对象名称;

Enginejectid:引擎名称;

Processid:随机过程名称;

clip_image016

Set Engine:是否使用引擎,用qpInstrumentSetPricingEngine函数,参数如下:

Objectid:对象名称;

Priceengine:引擎名称

clip_image018

NPV:计算期权价格,用qpInstrumentNPV函数,参数如下:

Objectid:设立的美式期权名称;

Trigger:引用之前的set engine;

clip_image020

使用AEQPB方法定价设置过程和用BAWA定价相同,只是引擎不同,用qpBinomialPricingEngine函数建立引擎对象。主要这里我们设立了两个引擎,分别对应之前设立的两个美式期权对象。

附件是示例演示。

Attachments

发表评论

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

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

菜单