目 录
前言 ............................................................................................ 6
致谢 ............................................................................................ 7
第 1 章 介绍 .............................................................................. 8
1.1 金融学概览........................................................................................................................8
1.2 收益分布假设....................................................................................................................9
1.3 数学和统计方法................................................................................................................9
1.4 数值方法............................................................................................................................9
1.5 Excel 解决方案..................................................................................................................9
1.6 本书主题..........................................................................................................................10
1.7 有关Excel工作簿.............................................................................................................11
1.8 意见和建议......................................................................................................................11
第 2 章 高级Excel函数和过程............................................... 12
2.1 访问Excel函数.................................................................................................................12
2.2 数学类函数......................................................................................................................13
2.3 统计类函数......................................................................................................................14
2.3.1 使用频率函数Frequency......................................................................................15
2.3.2 使用分位数函数Quartile......................................................................................18
2.3.3 使用正态函数Norm .............................................................................................19
2.4 查找类函数......................................................................................................................20
2.5 其他类型函数..................................................................................................................22
2.6 审核工具..........................................................................................................................22
2.7 模拟运算表(Data Tables)...........................................................................................24
2.7.1 建立单变量模拟运算表.......................................................................................24
2.7.2 建立双变量模拟运算表.......................................................................................26
2.8 XY图.................................................................................................................................28
2.9 访问数据分析和规划求解..............................................................................................32
2.10 使用区域名称................................................................................................................33
2.11 回归分析........................................................................................................................35
2.12 单变量求解....................................................................................................................38
2.13 矩阵代数以及相关函数................................................................................................40
2.13.1 矩阵介绍.............................................................................................................40
2.13.2 矩阵转置.............................................................................................................40
2.13.3 矩阵相加.............................................................................................................41
2.13.4 矩阵相乘.............................................................................................................41
2.13.5 矩阵求逆.............................................................................................................42
2.13.6 线性方程组求解.................................................................................................44
2.13.7 Excel矩阵函数小结.............................................................................................44
小结.........................................................................................................................................45
第 3 章 VBA介绍.................................................................... 46
3.1 掌握VBA的好处 .............................................................................................................46
3.2 VBA的面向对象观点 ......................................................................................................47
3.3 编写VBA宏 .....................................................................................................................48
3.3.1 简单VBA子程序 ..................................................................................................48
3.3.2 交互函数MsgBox.................................................................................................49
3.3.3 编写环境...............................................................................................................50
3.3.4 输入代码并运行宏...............................................................................................51
3.3.5 录制按键和编辑代码...........................................................................................51
3.4 编程要素..........................................................................................................................53
3.4.1 变量和数据类型...................................................................................................53
3.4.2 VBA数组变量 .......................................................................................................54
3.4.3 控制结构...............................................................................................................56
3.4.4 控制重复过程.......................................................................................................57
3.4.5 在代码中使用Excel和VBA函数 .........................................................................58
3.4.6 编程的一般观点...................................................................................................58
3.5 宏与电子表格之间的通信..............................................................................................59
3.6 子程序实例......................................................................................................................62
3.6.1 图表.......................................................................................................................62
3.6.2 正态概率散点图...................................................................................................65
3.6.3 用规划求解产生有效边界...................................................................................67
小结.........................................................................................................................................71
附录 3A Visual Basic编辑器 ..................................................................................................72
附录 3B 用‘相对引用’模式来录制按键 .........................................................................75
第 4 章 编写VBA用户定义函数............................................ 78
4.1 简单销售佣金函数..........................................................................................................78
4.2 在工作表中创建Commission(Sales)函数.......................................................................79
4.3 多参数期权定价函数......................................................................................................80
4.4 在VBA中操作数组 .........................................................................................................83
4.5 数组变量的期望和方差函数..........................................................................................84
4.6 数组变量的组合方差函数..............................................................................................86
4.7 输出数组形式的函数......................................................................................................89
4.8 在用户定义函数中调用Excel和VBA函数 ....................................................................91
4.8.1 在用户定义函数中使用VBA函数 ......................................................................91
4.8.2 加载宏...................................................................................................................91
4.9 编写VBA函数的优缺点 .................................................................................................92
小结.........................................................................................................................................92
附录 4A 演示函数如何处理数组 .........................................................................................93
附录 4B 二叉树期权定价函数 .............................................................................................94
编写函数练习.......................................................................................................................100
第 5 章 股票的有关简介 ...................................................... 105
第 6 章 投资组合最优化 ...................................................... 106
6.1 组合的均值和方差........................................................................................................106
6.2 组合的风险-收益表示.................................................................................................108
6.3 用规划求解得到有效点.................................................................................................109
6.4 求有效边界(黄和利曾伯格的方法).........................................................................113
6.5 有约束边界组合.............................................................................................................115
6.6 无风险资产和风险资产的结合.....................................................................................117
6.7 问题一 一种无风险资产和一种风险资产的组合.......................................................118
6.8 问题二 存在两种风险资产的组合...............................................................................120
6.9 问题三 一种无风险资产和一个风险投资组合...........................................................122
6.10 Module1 中的用户定义函数 .......................................................................................125
6.11 Module1 中用于解决三类常见组合问题的函数........................................................126
6.12 模块M中的宏功能 .......................................................................................................128
小结.......................................................................................................................................129
第 7 章 资产定价 .................................................................. 131
7.1 单因素模型.....................................................................................................................131
7.2 估计β系数.....................................................................................................................132
7.3 资本资产定价模型(CAPM) .....................................................................................135
7.4 方差-协方差矩阵.........................................................................................................136
7.5 风险值(VaR)..............................................................................................................138
7.6 水平财富.........................................................................................................................140
7.7 正态和对数正态分布矩之间的关系.............................................................................142
7.8 Module1 中的用户定义函数 .........................................................................................143
小结.......................................................................................................................................145
第 8 章 投资组合业绩评价 .................................................. 146
8.1 传统业绩评价方法.........................................................................................................146
8.2 主动—被动管理............................................................................................................148
8.3 风格分析(Style Analysis)..........................................................................................152
8.4 简单风格分析.................................................................................................................153
8.5 滚动时段风格分析........................................................................................................154
8.6 风格权重的置信区间.....................................................................................................156
8.7 Module1 中的用户定义函数 .........................................................................................159
小结.......................................................................................................................................161
第 9 章 股票期权介绍.......................................................... 163
9.1 布莱克-舒尔斯公式的起源 ..........................................................................................163
9.2 布莱克-舒尔斯公式 ......................................................................................................164
9.3 对冲投资组合(Hedge Portfolios).............................................................................165
9.4 风险中性定价................................................................................................................167
9.5 风险中性定价的单期二叉树模型................................................................................168
9.6 期权平价关系(Put-Call Parity).................................................................................169
9.7 红利(Dividends) .......................................................................................................169
9.8 美式期权的特征............................................................................................................170
9.9 数值方法........................................................................................................................170
9.10 波动率和非正态股票收益..........................................................................................170
小结.......................................................................................................................................171
第 10 章 二叉树.................................................................... 173
10.1 二叉树介绍..................................................................................................................173
10.2 简化的二叉树..............................................................................................................174
10.3 JR二叉树 ......................................................................................................................175
10.4 CRR树...........................................................................................................................179
10.5 二项分布近似与布莱克-舒尔斯公式.........................................................................181
10.6 CRR二叉树的收敛性...................................................................................................182
10.7 LR树 .............................................................................................................................183
10.8 CRR树与LR树的比较..................................................................................................185
10.9 美式期权和CRR美式二叉树......................................................................................187
10.10 Module0 和Module1 中的用户定义函数..................................................................190
小结.......................................................................................................................................191
第 11 章 布莱克-舒尔斯公式............................................... 193
11.1 布莱克-舒尔斯公式.....................................................................................................193
11.2 在Excel中运用布莱克-舒尔斯公式............................................................................194
11.3 外汇(Currencies)和商品(Commodities)期权 ...................................................195
11.4 计算期权的‘希腊’参数..........................................................................................197
11.5 对冲组合......................................................................................................................199
11.6 布莱克-舒尔斯公式的正式推导.................................................................................201
11.7 Module1 中的用户定义函数 .......................................................................................203
小结.......................................................................................................................................204
第 12 章 欧式期权定价的其它数值方法............................ 207
12.1 蒙特卡罗模拟介绍......................................................................................................207
12.2 对偶变量(Antithetic Variables)模拟 ......................................................................209
12.3 准随机抽样(Quasi-Random Sampling)模拟 .........................................................210
12.4 模拟方法比较..............................................................................................................212
12.5 蒙特卡罗 模拟中的希腊参数计算............................................................................213
12.6 数值积分......................................................................................................................214
12.7 Module1 中的用户定义函数 .......................................................................................215
小结.......................................................................................................................................218
第 13 章 非正态分布和隐含波动率.................................... 219
13.1 非正态分布假设下的布莱克-舒尔斯 公式...............................................................219
13.2 隐含波动率(Implied Volatility)..............................................................................221
13.3 调整偏度(Skewness)和峰度(Kurtosis).............................................................222
13.4 波动率曲线(The Volatility Smile)..........................................................................225
13.5 Module1 中的用户定义函数 .......................................................................................228
小结.......................................................................................................................................230
第 14 章 债券期权定价介绍 ................................................ 232
14.1 利率期限结构..............................................................................................................233
14.2 附息债券的现金流和到期收益率..............................................................................234
14.3 二叉树..........................................................................................................................235
14.4 布莱克的债券期权定价公式......................................................................................237
14.5 久期和凸性..................................................................................................................238
14.6 符号..............................................................................................................................239
小结.......................................................................................................................................240
第 15 章 利率模型 ................................................................ 242
15.1 Vasicek利率期限结构模型 ..........................................................................................242
15.2 Vasicek模型对零息票债券欧式期权定价...................................................................245
15.3 Vasicek模型对附息债券欧式期权定价.......................................................................247
15.4 CIR利率期限结构模型 ................................................................................................248
15.5 CIR模型对零息票债券欧式期权定价 ........................................................................249
15.6 CIR模型附息债券欧式期权定价 ................................................................................249
15.7 Module 1 中的用户定义函数 ......................................................................................250
小结.......................................................................................................................................252
第 16 章 拟合利率期限结构 ................................................ 254
16.1 对数正态分布利率树..................................................................................................254
16.2 正态利率二叉树..........................................................................................................257
16.3 BDT树...........................................................................................................................258
16.4 用BDT树为债券期权定价..........................................................................................260
16.5 Module 1 中的用户定义函数 ......................................................................................262
小结.......................................................................................................................................264
附录 其它VBA函数.............................................................. 266
预测.......................................................................................................................................266
ARIMA模型 .........................................................................................................................267
样条.......................................................................................................................................268
特征值和特征向量...............................................................................................................269
前言
当被问到为什么要攀登珠穆朗玛峰时,登山员通常会说:“因为它在那儿。”而我们写
《高级金融建模》这本书则出于相反的原因。无论是以前还是现在,几乎没有一本书重点突
出和解释 VBA 函数在 Excel 中的应用。另一方面,能够掌握金融领域数值方法精髓的书也
寥寥无几。
有人认为,像 Excel 这样的电子制表软件,不能满足高级技术和数值分析领域(如金融
衍生工具的定价)的需要,现在这种想法已经过时。以前通过专门的软件包和语言进行的计
算,现在可以应用有效的代码和 VBA 函数,在一台普通的电脑上只需一秒就可以完成。通
过使用 Excel 和 VBA 编码,可以使得以前处于黑箱中的计算过程明朗化。
最初,宏的出现拓宽了 Excel 的应用范围,后来这一应用促进了 VBA 语言在 Excel 中
的全面发展,从股票计算、期权计算,最后到债券计算,VBA 广泛应用于金融领域中的各
种计算。在本书中,可以学习到一些新的 Excel 技巧,并可更深入地理解数值方法在金融中
的应用。
本书的基础部分来源于伦敦商学院的 MBA 选修课程讲义《基于计算机的金融建模》。
书中的股票部分是学习《资产组合管理》课程的基础,该课程每年在日内瓦的国际货币银行
中心举办一次。而关于期权和债券的章节则来自城市大学商学院计算机硕士课程《数值方
法》。本书适用于研究生和本科高年级学生。
使用本书时,读者必须采取积极尝试的态度,学会提出问题并解决问题,既要理解书
中的代码和 VBA 用户定义函数,也要勇于在实践中应用它们。由于假设资产收益服从对数
正态分布,并将二叉树作为一种核心数值方法,因此我们的解释可以建立在概率和统计中常
用的结论基础上。全书采用了统一的符号,并且用图片显示了 Excel 和 VBA 的应用过程,
这些都有助于读者更好地理解本书内容。
致谢
本书得益于之前的学术研究者和金融研究机构,他们发展了有关金融理论,并提出了
相应的数值方法,从而形成了本书的基本内容。用牛顿的话来说,“如果我看得更远,那是
因为我站在巨人的肩膀上”。
感谢伦敦商学院和城市大学商学院的同事,特别是 Elroy Dinenis,保罗·马什和 Kiriakos
Vlahos。
同时,还感谢萨姆·惠特克对我们的热心鼓励,作为一位编辑,他付出了很大的努力和
耐心。
最后,感谢家人和朋友对我们的耐心,因为本书酝酿了较长一段时间,这期间给他们添
了不少麻烦。
第 1 章 介绍
我们希望《高级金融建模》一书可以证明,能够应用电子制表软件成功地实现大部分
的金融模型。这些模型从二十世纪五十年代早期发展到九十年代末期,覆盖了整个金融领域,
包括股票、股票期权和债券期权。只要辅助使用 VBA 语言,这些模型完全能在 Excel 电子
表格中实现。而用户定义函数提供了一个方便的程序库,使得计算的速度和准确度大大提高。
《高级金融建模》应该看作是这个领域中传统教材的补充读物(它甚至是对传统教材
的纠正)。本书没有列出金融模型的详细推导过程,目的是为了能够涵盖更多的模型和方法,
特别是将重点放在更新的研究成果上。
金融领域发展的重要理论包括:二十世纪五十年代的组合理论,六十年代的资本资产
定价模型(CAPM),以及七十年代的布莱克-舒尔斯公式,这些理论中的解析解现在都能直
接计算。这都得益于最近一二十年来发展的数值算法。通过选择适当的参数,二叉树方法在
股票和债券期权定价的数值算法中扮演着重要的角色。在最近几年,金融领域的研究重点落
在寻找有效的计算方法上,而不是理论本身。
尽管本书覆盖了大部分的金融领域,并且包括了不少复杂的模型,但只需应用 Excel,
以及 Excel 中内嵌的函数和 VBA 程序,就能完美地解决问题。这使得我们可以将常用的假
设(对数正态分布)、数学问题(期望)和数值方法(二叉树)在金融建模领域统一起来。
当然,我们也努力确保本书使用一致和简单的符号,以便表达的更加清晰。
尝试在本书中覆盖大部分的金融研究课题,这对我们来说既是一个挑战也是一个机遇。
机遇就是我们可以纵览金融领域,并将资产定价中的假设、数学问题、数值方法和 Excel
的解法连接起来,总结出一般性规律。在以下的几节中,将简要地描述在股票、期权和债券
计算中,关于金融、数学、数值方法和 Excel 特点方面的一些问题。以下的内容将会在以后
的章节中详细地分析。
1.1 金融学概览
现代金融学作为一门学科与经济学分离,起源于 1952 年马可维茨创立的组合理论。马
可维茨利用效用理论对个人投资者的选择进行建模,并且建立“均值-方差”方法来检验收
益(以资产的平均收益来度量)和风险(以资产收益的方差来度量)之间的关系。这一研究
成果后来导致了夏普,林特恩和特雷纳的资本资产定价模型(CAPM)的发展。CAPM 是一
个均衡模型,它描述了股票的期望收益。模型中引入 beta 作为测量可分散风险的因子,并
证明构建股票组合能够有效地减少个别风险事件带来的总体风险。
另外一个重要的理论就是布莱克和舒尔斯的股票期权定价公式,这个公式是构筑在对
冲组合(无风险)的基础上的。同时,默顿对布莱克-舒尔斯公式进行了扩展,使其适用于
连续股利的情况,并可对商品期货期权和外汇期权定价。公式最初的推导需要解物理学中常
见的扩散方程,但用风险中性方法也可以推导出来。