QuantPlus上手培训系列五:使用QuantPlus对标准欧式期权进行定价

论坛 期权论坛 期权     
数量金融你我他   2019-8-11 08:39   2981   0

上一个教程指导大家如何进行数据校准,特别是求解欧式期权的隐含波动率。本次教程将重点讲解如何通过QuantPlus Analytics系统,通过定价流程对标准欧式期权进行定价(不包含红利率)。

下面我们将依据下面的定价流程框架分步骤对一个无红利的欧式期权进行定价。


第一步:定义金融工具对象:
1. 如下图点击创建对象,选择"qpVanillaOption"定义一个欧式期权(即可以通过下图创建对象中选取相应对象来创建(点击QuantPlus标题栏,选择创建对象(下图红框),对象类型选择Financial,子对象类型选择Options,子子对象类型选择qpEuropeanOption,然后点击创建特定对象(如下图黑框所示,后文所有对象的创建都将是创建特定对象)来创建。也可以通过在空白单元格处输入函数以"=qpVanillaOption()"及相应的参数来创建。


2. 接下来创建期权行权机制对象"Payoffs"(同样的点击创建对象之后,依次在下拉菜单和子菜单中点选Financial-Payoffs-qpStrikedTypePayoff),特定对象创建好之后在表格中的option Type处填写期权的种类,即看涨或看跌期权(call或put),strike处填写执行价格,PayoffID可以从插入类(在下图绿框)中选取。


3. 最后创建"Exercise"对象(同样的点击创建对象之后,依次在下拉菜单和子菜单中点选Financial-Exercise-qpEuropeanExercise),在ExpiryDate中填写期权到期日或者填写距离期权到期日的剩余时间。创建好"Exercise"和"Payoffs"对象后,如果创建对象成功,如“示例”工作簿F2和I2所示返回obj_数字@数字表示对象创建成功,在欧式期权对象函数C2单元格处通过快捷键Shift+F3,分别在PayoffID处和ExerciseID处应用单元格F2和I2两个对象,返回obj_数字@数字表示成功创建了金融工具对象。
第二步:定义市场数据对象:
此步骤主要目的是为了建立随机过程,建立随机过程我们需要波动率和无风险利率等指标。
1. 因此首先创建"Volatilities"对象(同样的点击创建对象之后,依次在下拉菜单和子菜单中点选Financial-Volatilities-qpBlackConstantVol
或者输入函数"=qpBlackConstantVol()"来创建,后文创建对象同理),建好表格后SettlementDate处填写期权生效日,Calendar处可以从插入类型(插入类型在上图中篮框)中选取(此处为上海交易所日期),Volatility处填写波动率数值,DayCounter同样可以从插入类型中选取(此处为真实时长/365)。


2. 之后创建随机过程对象"Processes"(同样的点击创建对象之后,依次在下拉菜单和子菜单中点选Financial-Processes-qpGeneralizedBlackSchole),BlackVoIID选取刚才设定好的波动率对象(即下图中obj_00000@0002,选择此对象所在单元格就好,选取好之后会发生变化无须理会),SimpleQuote处输入函数"=qpSimpleQuote()"之后通过快捷键shift+f3插入函数,在弹出的函数窗口中value处填写即期价格,RiskFreeRate填写无风险利率,DayCounter和SettlementDate同波动率对象的参数一致,这样我们就创建好了市场数据对象。


第三步:定义定价引擎对象:创建"Pricing Engines"对象(同样的点击创建对象之后,依次在下拉菜单和子菜单中点选Financial-Pricing Engines-qpPricingEngine),在EngineID处可从插入类中的PricingEngineConstructor1里进行选取,AE是Analytic European Engine的缩写(即欧式期权解析解引擎),ProcessID中填写第二步中的随机过程对象ID,至此我们已经创建好定价所需的所有对象。


第四步:计算期权的价格:
1. 首先要设定估值日,选中空单元格,输入函数"=qpSettingsSetEvaluationDate()"里面填入具体的估值日期(日期形式为2018-1-12这种样式,估值日期一般设定与期权生效日相同)。
2. 之后设定估值引擎,选中另一空单元格,输入函数"=qpInstrumentSetPricingEngine()"(同样可以通过快捷键shift+f3快速插入函数,进行填写)里面分别填入欧式期权的对象ID和定价引擎的对象ID。
3. 最后,另选空白单元格调用估值函数"=qpInstrumentNPV()"引用欧式期权的对象单元格地址,即引用“示例”工作簿c2单元格即可计算出待定价期权的价格。同样地,选取空白单元格调用函数"=qpDelta()"引用期权对象单元格,即可以用来计算返回期权对应的Delta,其他的希腊字母计算方法同理可得,函数名分别为qpGamma、qpVega、qpTheta、qpRho等等指标。


很多朋友要问了,一个简单的欧式期权为什么要花费四个步骤按照定价流程去实现定价结果呢?直接用一个简单的Black-Scholes公式不一样可以求解欧式期权么?答案是肯定的(其实QuantPlus本身也包含较为直观的BlackScholesCalculator函数,可以直接构建一个BS公式对欧式期权进行求解,我们也会花一个教程来具体讲解这个函数。),我们也会在下一个教程中分析一下为何要用定价流程,以及定价流程框架的意义。
我们会持续更新和发布更多有关QuantPlus Analytics相关的产品应用示例、贴士与技巧、背景理论知识、培训和教学视频等精彩内容,欢迎大家关注我们的公众号来获取更多更新的产品资讯。申请QuantPlus Analytics试用的,请点击“申请试用链接”。
分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:10
帖子:2
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP