Warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead in /www/wwwroot/fquantplus.com/wp-content/plugins/latex/latex.php on line 47
Warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead in /www/wwwroot/fquantplus.com/wp-content/plugins/latex/latex.php on line 49
在这篇文章中,我们将介绍如何使用QuantPlus Analytics进行欧式期权的估值。
使用QuantPlus Analytics的快速指南,权益-期权,可以创建期权定价的模板。
我们知道,一个欧式期权,无论看涨还是看跌,在估值时一般有6个参数要考虑,股价,波动率$\sigma$,无风险利率$r$,分红率$\delta$
行权价格$K$,到期时间$T$。 进行一下分类,其中
交易数据有:合约的基本属性,如$K, T, \mathrm{payoff}, \mathrm{call/put}$
市场数据有:$S, \sigma, r, \delta$等
在QuantPlus Analytics中,市场数据和交易数据是分开来构造的,具体过程如下:
1. 构建欧式期权的基本交易属性,包括欧式期权的清算日、行权日期、行权对象、输入估值日期等。
2. 设定估值模型,例如波动率对象、随机过程对象、估值引擎类型。
3. 利用qpInstrumentNPV函数输出计算的结果。
这里,我们以IBM的股票期权为例进行说明,因为IBM是蓝筹股,且交易量较大,合约标
准化,流动性好,容易找到相关工具,所以我们选取IBM在纳斯达克交易所进行交易的期权。(在未来的文章中,我们通常都会以IBM的股票期权来进行说明)
首先来看看数据的准备工作是如何完成的。参考
http://www.nasdaq.com/symbol/ibm/option-chain/160415C00120000-ibm-call 和
http://www.dividend.com/dividend-stocks/technology/diversified-computer-systems/ibm-ibm-corp
我们假定期权估值日2016/1/14,该IBM期权的基本信息如下:
行权日2016/4/15
估值日为2016/1/14
该期权的行权价格是120美元
是一个欧式看涨期权
隐含波动率为0.27572
IBM的当前股价为132.91美元
无风险利率我们选择3个月的LIBOR,为0.62%
连续红率为3.91%
回到QuantPlus Analytics,我们把相关数据输入。
在这里,估值日就是2016/1/14。估值日设定为TRUE意思是系统已经成功地收到了估值日,如果为False,则就是估值日没有记录在系统中。
期权的清算日就是估值日,所以也是2016/1/14。交易日历选择了纽约证券交易所的日历。波动率我们输入刚才从网上获取的数据:0.27572。在该定价过程中,我们使用的是历史波动率或者隐含波动率,在实践中,隐含波动率与strike和期限是相关的,即波动率不是常数,不同的strike和不同期限的期权的隐含波动率不同,这就是所谓的波动率曲面,QuantPlus Analytics也可以引用波动率曲面数据,来实现对各种期限和不同strike的期权的定价。日期计数,选择Actual/365 (Fixed)。根据以上的若干参数,我们构造了一个波动率对象:BlackVol,这将是我们进一步做分析的基础。
我们输入了当前股价132.91美元,无风险(LIBOR)利率0.62%,红利率3.91%,结合刚才的对象BlackVol返回了一个随机过程对象blackscholes,这个对象包含了股票在风险中性测度下服从的随机过程(几何布朗运动)的相关参数,如$S, \sigma, r, \delta$
我们输入了行权日期2016/4/15,并构造了一个行权对象Eu_Ex。
我们选择了交易类型:Vanilla,这是最普通的交易类型,还有Gap,AssetOrNothing等选项,分别代表若干的奇异期权。期权类型是call,敲定价格为120美元。 交易类型,期权类型和敲定价格构造出了一个敲定交易对象。定价引擎可以选择使用哪种计算方法算出期权的价格,我们选用最常用的BS模型法,还有其他方法可供选择,如Monte Carlo法,二叉树法,等等。由定价引擎类型和随机过程对象,我们构了一定定价引擎对象。
最后,由敲定价格对象,行权对象构成了欧式期权对象。设定引擎为TRUE说明定价引擎已经输入到系统。 最后NPV(即期权费)由欧式期权对象和设定引擎构造出。QuantPlus Analytics中NPV的方便在处在于各种衍生品的价格函数名称都是NPV,即利用了函数的多态性,无须用户记住多种复杂的函数名称也可以定价。
总结一下,定价的流程如下:
1.用户根据市场相关数据,输入波动率对象,股价,无风险利率和分红率,得到随机过程对象,并输入定价引擎
2.用户根据交易数据,输入行权对象和敲定交易对象,得到欧式期权对象
结合以上的定价引擎和欧式期权对象,得到NPV