DerivaGem软件
本书所附送的DerivaGem软件1.51版本的运行环境为Excelo它要求Excel 7.0或更高版本。软件由三个文件组成:DG151.dll、DG151.xls以及DG15lfunctions.xls。安装软件的时候,需要创建一个名为DerivaGem(或其他自选名)的目录,并将DG151.xls和DG151functions.xls拷至目录中。DG151.dll应该被拷至Windows\System目录(Windows 95和98用户)或WINNT\System32目录(Windows 2000和Windows NT用户)。
Excel 2000用户必须设置宏的安全级别为“中”或“低在Excel中点击“工具”,下拉菜单中查看“宏”,可以改变安全级别。当运行这一软件的时候,弹出窗口问你是否启用宏,此时应该点击“启用宏”(Enable Macros)。
这一软件的更新文件可从作者的网站下载: http://www.rotman.utoronto.ca/~hull
该软件由两个部分组成:Options Calculator(DG151.xls)和Applications Builder(DG151function.xls)。运行这两个部分,都需要把DG151.dll拷至Windows\System或WINNT\System32目录下。
建议新用户从Options Calculator起步。
期权计算表
DG151.xls是用户容易掌握使用的期权计算表。它由三个工作表组成。第一个工作表用来执行股票期权、货币期权、指数期权和期货期权的计算;第二个工作表适用于欧式和美式债券期权;第三个工作表适用于利率上限、下限和欧式互换期权。
这一软件可以算出一系列不同金融工具的价格、套期保值参数和隐含波动率。它显示的图表说明期权价格和套期保值参数如何依赖输入量。它也显示计算所用的二叉树图和三叉树图。
通用操作
使用期权计算表的时候,首先应该选择一个工作表,并选择期权类型、标的资产类型等。接着,需要输入期权的相应参数,按键盘的“Enter”,再点击“Calulate”。DerivaGem会显示相应期权的价格、隐含波动率以及套期保值参数。如果你在使用第一个或第二个工作表时,价格是使用树图计算的,那么可以点击“Display Tree”来查看树图。我们在第11章和第17章中看到过软件展示的树图例子。三个工作表中都可以显示各种不同的图表。为了展示一种图表,首先应该选择用户希望放置在纵轴的变量、希望放置在横轴上的变量以及横轴覆盖的值域。接着按“Enter”键,再点击“Draw Graph”。注意,不管什么时候改变一个或多个单元格的取值,必须按“Enter”键之后再去点击其它按钮。
如果用户的Excel版本低于7.0,当用户首次保存这一软件的时候,会出现“是否更新到新版本”。用户应该选择“Yes”按钮。
股票期权、货币期权、指数期权和期货期权
第一个工作表(Equity_FX_Index_Fulures)适用于股票期权、货币期权、指数期权和期货期权。使用的时候,首先应该选择标的资产类型(Equity,Currency,Index或Futures)。接着需要选择期权类型(Analytic European,Binomial European,Binomial American,Asian,Barrier UpandIn,Barrier Upand Out,Barrier DownandIn,Barrier Downand Out,Binary CashorNothing,Binary Assetor Nothing,Chooser,Compound Op-tion on Call,Compound Option on Put或Lookback)。之后再输入标的资产和期权的相应数据。注意,所有的利率以连续复利表示。
欧式和美式权益性期权的情况下,可以在弹出表输入红利数据。第一列中输入每个除息日的时刻(以年度量的今天到除息日之间的时间),第二列中输入相应的红利数额。必须以时间顺序输入红利数据。
用户需要点击相关按钮来选择期权是看涨的还是看跌的,是否希望计算隐含波动率。如果用户希望计算隐含波动率,需要在标签为“Price”的单元格上输入期权价格。
输入完所有数据之后,用户需要按“Enter”键,再点击“Calculate“如果选择了”lmplied Volatility“,DerivaGem会在Volatility(%/年)单元格上显示隐含波动率。如果没有选择”lmplied Volatility“,软件会根据用户在Volatility单元格上输入的波动率,在Price单元格显示期权价格。
完成计算之后,可以查看相关树图(如果使用的话)和图表。
选择Analytic European时,DerivaGem使用第13章和第14章中的Black-Scholes公式来计算价格,使用第15章中的公式来计算套期保值参数。如果选择Binomial European或Binomial American时,软件构建与第17章中一样的二叉树图。最多可以设定500个时间步。
大部分情况下,很容易明白需要输入的数据。如亚式期权的情况中,Current Average就是从期初开始到现在为止的平均价格。如果亚式期权是刚生效的(初始时间等于零),则不必考虑Current Average单元格,维持空白即可。回望期权的情况下,定价看涨期权的时候,使用Minimum to Date;定价看跌期权的时候,使用Maximum to Date。对于一个新合约,上述值应该等于标的资产的现价。
债券期权
第二个工作表(Bond_Option)适用于基于债券的欧式和美式期权。首先需要选择定价模型(Black-European,Normal-AnalyticEuropean,Normal-TreeEuropean,Nor-mal-American,Lognormal-European或Lognormal-American)。接着需要输入债券数据和期权数据。息票数据要以年利率输入,可以选择支付频率为每季度、每半年或每年.在标签为Term Structure的表上输入零息票收益率曲线。第一列中输入期限(以年度量),第二列中输入相应的连续复利。期限数据应该以时间顺序排列。DerivaGem中使用分段线性零息率曲线(如图4.1)。注意,估值利率衍生品的时候,DerivaGem把所有时间四舍五入取整到最相近的天数。
输入完所有数据之后,按“Enter”键。根据零息率曲线计算的,每$100本金对应的债券报价会在计算结束之后显示。用户必须指定期权是看涨的还是看跌的,执行价格是报价(净价)还是现金价格(全价)(关于两者之间的区别,参照26.2节中的讨论和例子)。注意,要输入每$100本金对应的执行价格。用户必须指定期权是看涨的还是看跌的,是否要计算隐含波动率。如果用户选择隐含波动率并使用正态分布模型或对数正态分布模型,DerivaGem会给出短期利率波动率,其中的回复率是固定的。
输入完所有数据之后,用户需要按“Enter”键,再点击“Calculate”。随后,可以查看相关树图(如果使用的话)和图表。注意,显示的树图只持续到期权到期日。而DerivaGem在计算标的债券时使用更大的树图。
注意,当选择Black模型时,DerivaGem使用26.2节中的公式。同样,软件中也使用26.2节中的过程,把输入的收益率波动率转换成价格波动率。
利率上限和互换期权
第三个工作表(Caps_and_Swap_Options)适用于利率上限和互换期权。首先需要选择期权种类(Swap Option或Cap/Flcor)和定价模型(Black-European,Normal-European或Lognormal-European)。接着需要输入相应的期权数据。Settlement Fre-quency表示支付频率,可以是每年、每半年、每季度或每月。软件从利率上限或互换期权的到期日开始反向计算支付日。在常规付息期限的0.5倍至1.5倍之间,初始付息期限可能是非标准长度。软件可以根据价格数据,给出波动率或上限利率/互换率。当使用正态分布模型或对数正态分布模型时,DerivaGem给出短期利率的波动率(固定的回复率下)。在名为Term Structure的表上输入零息票收益率曲线。第一列中输入期限(以年度量),第二列中输入相应的连续复利。期限数据应该以时间顺序排列。DerivaGem中使用分段线性零息率曲线(如图4.1)。
输入完所有数据之后,点击“Calculate”。随后,可以查看相关图表。注意,使用Black模型时,DerivaGem使用26.3和26.4节中的公式。
套期保值参数
在Equity_FX_Index_Futures工作表中,套期保值参数的计算如下:
Delta:标的资产价格每上升1美元时,相应的期权价格变化量。
Gamma:标的资产价格每上升1美元时,相应的Delta变化量。
Vega:波动率每上升1%(如波动率从20%上升到21%)时,相应的期权价格变化量。
Rho:利率每上升1%(如利率从5%上升到6%)时,相应的期权价格变化量。
Theta:过去的每一日历天相应的期权价格变化量。
在Bond_Options和Caps_and_Swap_Options工作表中,套期保值参数的计算如下:
DV01:零息率曲线每往上平行移动1个基点时,相应的期权价格变化量。
Gamma01:零息率曲线每往上平行移动1个基点时,相应的DV01变化量乘以100。
Vega:波动率参数每上升1%(如波动率从20%上升到21%)时,相应的期权价格变化量。
Applications Builder
DG151functions.xls就是Application Builder。它包含21个函数和7个样本程序,用户可以利用它们建立个人程序。
函 数
下面列出的是Application Builder中包含的21个函数。第一个工作表(Function-sSpecs)上有更详细的说明。
1. Black-Scholes。对基于股票、股票指数、货币或期货合约的欧式期权,执行Black-Scholes计算。
2.TreeEquityOpt。对基于股票、股票指数、货币或期货合约的欧式/美式期权,执行二叉树计算。
3.BinaryOption。对基于股票、股票指数、货币或期货合约的两值期权,执行相应计算。
4.Barrier Option。对基于不支付红利股票、股票指数、货币或期货合约的障碍期权,执行相应计算。
5.AverageOption。对基于不支付股票、股票指数、货币或期货合约的亚式期权,执行相应计算。
6.ChooserOption。对基于不支付股票、股票指数、货币或期货合约的后定选择权,执行相应计算。
7.Compound Option。对基于不支付股票、股票指数、货币或期货合约的复合期权,执行相应计算。
8.LookbackOption。对基于不支付股票、股票指数、货币或期货合约的回望期权,执行相应计算。
9.EPortfolio。对基于股票、股票指数、货币或期货合约的期权的组合,执行相应计算。
10. BlackCap。使用Black模型,执行利率上限或下限的计算。
11.HullWhiteCap。使用Hull-White模型,执行利率上限或下限的计算。
12.TreeCap。使用三叉树图,执行利率上限或下限的计算。
13.BlackSWapOption。使用Black模型,执行互换期权的计算。
14.HullWhite SWap。使用Hull-White模型,执行互换期权的计算。
15.TreeSwapOption。使用三叉树图,执行互换期权的计算。
16.BlackBondOption。使用Black模型,执行债券期权的计算。
17.HullWhiteBondOption。使用Hull-White模型,执行债券期权的计算。
18.TreeBondOption。使用三叉树图,执行债券期权的计算。
19.BondPriceo估值债券。
29.SwapPrice。估值标准型利率互换。注意,其中忽略开始时刻之前的重设日上发生的现金流。
21.IPortfolio。执行利率衍生品组合的计算。
样本程序
DG151functions.xls包含7个带有样本程序的工作表。
A.Binomial Convergence。研究第11章和第17章中的二叉树模型的收敛状况。
B.GreekLetters。提供了第15章中套期保值参数的相关图表。
C.Delta Hedge。研究表15.2和15.3中Delta套期保值的表现。
D.Delta and Gamma Hedge。研究对两值期权头寸进行Delta和Gamma套期保值的表现。
E.Value and Risk。对由单个股票的三种期权组成的证券组合,应用三种不同方法,计算风险价值。
F.Barrier Replication。执行22.13节中的静态期权复制例子中的计算。
G.Trinomial Convergence。研究第28章中的三叉树模型的收敛状况。