证券分析师用Excel,金融分析师用MATLAB。
MATLAB,华尔街*普遍使用的金融分析软件!
MATLAB,华尔街宽客必须掌握的超给力工具!
MATLAB是模拟分析和数值计算的超强工具之一!
量化投资在国内起步没多久,前途不可估量。量化投资的核心是数学模型,而模型离不开高效的数值计算和模拟分析工具,MATLAB简单易学的特点、强大的数值计算和模拟仿真功能,以及丰富的金融类工具箱(金融工具箱、衍生品工具箱和固定收益工具箱),是量化投资超给力的“武器”。本书主要讲述以MATLAB为分析工具的量化投资,由“MATLAB入门”、“MATLAB量化投资基础”和“MATLAB量化投资相关函数详解”3篇组成。入门篇让零编程基础的读者快速掌握强大的数值计算和模拟分析工具MATLAB;量化投资基础篇简要介绍相关的投资策略及模型,重点讲述MATLAB中的模型实现及应用;函数详解篇对MATLAB的金融工具箱、衍生品工具箱和固定收益工具箱中的全部函数一一进行详解,以帮助读者快速掌握这些函数。本书适合基金、衍生品、证?等相关投资人员使用,也适合对量化交易、金融投资感兴趣及有志于成为宽客的人士阅读。
代推荐序
喜欢做一名宽客,是因为可以自己掌握命运!
最近10年来,量化投资成了欧美资本市场发展的热点与焦点,一举成了国际投资界兴起的一个新方法,发展势头迅猛,和基本面分析、技术面分析并称为三大主流方法。由于量化投资交易策略的业绩稳定,其市场规模和份额不断扩大,得到国际上越来越多投资者的追捧。
过去20年收益率最高的基金是文艺复兴科技公司的大奖章基金,其客户平均年收益率高达35%;而过去4年高盛旗下的量化基金规模翻了一倍,超过1000亿美金。由此可见,量化投资已经成为机构投资者的重要利器。
量化投资对于基金公司、资产管理公司而言,有着非常明显的价值。
首先是容易冲规模。一个有效的量化模型是可以在多个产品上进行快速复制的,从而迅速做大规模。这个在巴克莱的指数增强系列产品上得到了最明显的体现。截至2011年底,巴克莱量化基金规模超1.6万亿美金,超过富达基金,成为全球最大的资产管理公司。
其次是可以获得绝对收益。利用量化对冲方式,构建与市场涨跌无关的产品,赚取市场中性的策略,适合追求稳健收益的大机构客户,例如保险资金、银行理财等。这个产品的代表性公司就是目前全球最大的对冲基金BridgeWater,其旗下的旗舰产品Pure Alpha过去5年共赚取超过350亿美金。
第三是杜绝了内幕消息和老鼠仓。量化投资只利用公开数据,通过数学模型的运算挖掘出隐藏在公开数据后面的信息,从而战胜市场,从方法论上就杜绝了内幕消息的可能。在交易过程中利用复杂的IT系统进行程序化交易,使得老鼠仓也无法成为可能。在国内金融市场监管日趋规范的情况下,量化投资这种方法必然会成为投资研究的主要方法。
放眼国内,2009年开启了“中国量化投资元年”,2010年4月股指期货的出台,2011年底,我的母校上海交通大学金融工程研究中心举办了第一届中国量化投资高峰论坛,2012年6月,国内第一本《量化投资与对冲基金》杂志刊发。最近一年,量化投资与对冲基金的各类论坛、会议、组织,如中国量化投资学会、北京量化投资学会、上海量化投资学会等,如雨后春笋,层出不穷。而随着国债期货、转融通、期权等一系列产品的推出已经提上监管层的日程安排,未来中国量化投资与对冲基金时代,已如滚滚长江,浩荡而来。
“春江水暖鸭先知”,量化投资强劲的势头,我有着很深的体会。2011年底我的《量化投资——策略与技术》一书,本来只是为了培训新来的金融工程研究员而撰写的讲义,但是出版后一个月内第一版就脱销了,大大出乎我的预料。后来又多次印刷,依然供不应求。
我的这本书作为一个量化投资的入门读物,是非常适合的,但是我自己也对书中部分内容不甚满意,其中一块就是在量化投资的技术手段方面。MATLAB作为构建量化投资分析模型的重要工具,我的书中极少提及这方面的内容,这也是很多读者提出的批评意见。所以王正林先生将本书发给我,阅读之下,欣喜异常。
一个好的量化投资策略,能否最终成为有效的模型和赚钱的交易系统,除了开发者要有对市场的深刻理解之外,同样需要一个好的工具。关羽武功盖世,他也需要赤兔马和青龙偃月刀;美国军队再强,它也需要精确制导武器和GPS。没有好的工具,量化投资模型往往会流于空想。
目前传统的量化投资模型的研究往往是基于Excel的,但是Excel的功能过于单一,尤其对复杂数据的计算方面有着天然的弱势,使得它无法胜任大规模数据、复杂系统的演算。而资本市场恰恰又是一个非线性的混沌系统,对于这样一个系统,MATLAB强大的数学演算能力就体现出了它的威力和价值。
本书中用了多个案例来详细阐述如何用MATLAB进行量化投资模型的开发、验证、优化等工作。对我的那本《量化投资——策略与技术》一书,实为极佳的补充,所以当王正林先生邀请我为其作序的时候,不由得欣然同意。
中国经济经过30年的高速发展,各行各业基本上已经定型,能够让年轻人成长的空间越来越小了。未来10年,量化投资与对冲基金这个领域是少有的几个可以诞生个人英雄的行业,无论出生贵贱,无论学历高低,无论有无经验,只要你勤奋、努力,脚踏实地地研究模型,研究市场,开发出适合市场稳健赢利的交易系统,实现财务自由并非遥不可及的梦想。
曾经有研究助理和我抱怨:“我们做量化研究的,一年都没有啥机会出去调研,免费旅游的机会都没有啊!”
我笑道:“你只要好好研究量化模型,找到持续稳定赢利的策略,自然就会有大量的资金来找你合作,实现财务自由不困难。到时候你会开着游艇出海,去拉斯维加斯享受,去非洲草原猎象,又何必在乎眼前的这点免费旅游呢?”他点头如捣蒜。
在中国目前的很多领域,赚钱已经变成一个非常困难的事情,甚至有些时候,男人要陪酒,女人要陪睡,才能保住自己可怜的饭碗。但是在量化投资与对冲基金领域,可以完全依靠自己的勤奋与努力。一个持续稳定赚钱的模型,不是靠陪酒和陪睡就能陪来的,而是要靠着自己的聪明才智和脚踏实地的工作。
所以,从事量化投资与对冲基金这个行业,不仅仅是为了实现财务自由,更重要的是人性的尊严!
絮絮叨叨说了这么多,读者大概都厌倦了吧,那就赶紧打住,让大家早点进入本书,感受MATLAB在量化投资方面的巨大威力吧!
最后还想说一句:俱往矣,数风流人物,还看今朝!
让我们一起拥抱中国量化投资与对冲基金黄金时代的到来!
方正富邦基金公司资深量化策略师
《量化投资——策略与技术》作者
《量化投资与对冲基金》副主编
中国量化投资学会 会长
CCTV/第一财经特邀嘉宾
丁鹏 博士
2012年,流火如金的7月,于北京金融街,丰融国际大厦,灿烂的晚霞中
第0章 致敬量化投资之王 VII
天下谁人不识君:詹姆斯?西蒙斯 VII
西蒙斯:我的量化投资生涯 XV
第1篇 MATLAB入门
第1章 MATLAB概述 2
1.1 MATLAB的发展历程 2
1.2 MATLAB的优势与特点 3
1.3 MATLAB系统的构成 4
1.4 MATLAB桌面操作环境 5
1.4.1 MATLAB启动和退出 5
1.4.2 MATLAB主菜单及功能 7
1.4.3 MATLAB命令窗口 9
1.4.4 MATLAB工作空间 11
1.4.5 M文件编辑/调试器 14
1.4.6 图形窗口 15
1.4.7 MATLAB文件管理 17
1.4.8 MATLAB帮助使用 17
1.5 MATLAB的工具箱 17
第2章 MATLAB科学计算 20
2.1 数据类型 20
2.1.1 变量与常量 20
2.1.2 字符串 21
2.1.3 元胞数组 21
2.1.4 构架数组 22
2.1.5 对象 22
2.2 数组及其运算 22
2.2.1 数组的创建 22
2.2.2 数组的运算 24
2.2.3 多项式运算 25
2.3 矩阵及其运算 28
2.3.1 矩阵的创建 28
2.3.2 矩阵的运算 30
2.4 符号运算 31
2.4.1 符号运算概述 31
2.4.2 常用的符号运算 34
2.5 关系运算和逻辑运算 35
第3章 MATLAB数据可视化 37
3.1 数据绘图的基本步骤 37
3.2 在工作空间直接绘图 38
3.3 多维数据绘图 39
3.3.1 二维图形 39
3.3.2 三维图形 40
3.4 图形的修饰 43
第4章 MATLAB编程 47
4.1 MATLAB编程概述 47
4.2 MATLAB编程原则 48
4.3 M文件 49
4.4 MATLAB程序流程控制 51
4.5 MATLAB中的函数及调用 54
4.5.1 函数类型 54
4.5.2 函数参数传递 57
4.6 函数句柄 61
4.7 MATLAB程序调试 63
4.7.1 常见程序错误 63
4.7.2 调试方法 66
4.7.3 调试工具 66
第2篇 MATLAB量化投资基础
第5章 MATLAB量化投资相关工具箱 70
5.1 MATLAB金融应用的案例 70
5.2 使用MATLAB的知名金融机构 72
5.3 金融工具箱 73
5.3.1 主要功能 73
5.3.2 体系结构 73
5.3.3 主要函数 74
5.3.4 金融时间序列工具ftstool 75
5.3.5 金融时间序列数据分析
工具ftsgui 76
5.4 金融衍生品工具箱 77
5.4.1 主要功能 77
5.4.2 体系结构 78
5.4.3 主要函数 79
5.4.4 GUI工具 80
5.5 固定收益工具箱 82
5.5.1 主要功能 82
5.5.2 体系结构 82
5.5.3 主要函数 83
第6章 金融数据的处理和获取 85
6.1 日期和货币数据处理 85
6.1.1 日期数据格式 85
6.1.2 日期型数据处理函数 86
6.1.3 非交易日数据 94
6.1.4 货币格式转换 95
6.2 MATLAB图表操作 96
6.2.1 图表窗口的创建 96
6.2.2 图表数据的保存和载入 97
6.2.3 图表窗口的坐标 99
6.3 线型图的含义和绘制 101
6.3.1 线型图的含义 101
6.3.2 线型图函数 102
6.4 烛型图 103
6.4.1 烛型图的含义 103
6.4.2 烛型图函数 104
6.5 移动平均线 105
6.5.1 移动平均线的含义 105
6.5.2 移动平均线的计算 105
6.6 布林带 106
6.6.1 布林带的计算 107
6.6.2 布林带的函数 109
6.7 动态数据获取 110
6.7.1 创建定时器 110
6.7.2 Callback函数的参数 113
6.7.3 定时器使用实例 114
第7章 固定收益证券计算 118
7.1 债券的基本概念 118
7.1.1 现金流的时间价值 118
7.1.2 现值和终值的计算 119
7.1.3 债券报价方式 121
7.1.4 报价和交割价 122
7.2 基本固定收益工具和利率 123
7.2.1 基本固定收益工具 123
7.2.2 利率的计量 123
7.3 日期计量的SIA标准 124
7.3.1 中长期国债的定价 125
7.3.2 市政债券的定价 127
7.3.3 大额存单国库券的定价 128
7.4 固定收益证券的属性 128
7.4.1 固定收益证券数据的属性 128
7.4.2 收益率计算 129
7.4.3 价格计算 135
7.4.4 敏感性分析 144
7.5 固定收益证券的数据管理 147
7.5.1 Instrument型数据 147
7.5.2 Excel数据的读写 153
7.5.3 其他格式数据的读写 156
第8章 利率期限结构和利率模型 159
8.1 利率期限结构计算 159
8.1.1 利息债券收益率 159
8.1.2 构建收益率曲线 160
8.1.3 Bootstrapping算法 161
8.1.4 利率期限结构计算函数 164
8.1.5 远期利率计算 165
8.1.6 期限结构曲线插值 169
8.2 基于利率期限结构定价技术 170
8.2.1 利率期限结构的表示 171
8.2.2 债券定价技术 173
8.2.3 现金流定价技术 174
8.2.4 互换定价技术 177
8.2.5 产品定价函数及敏感性分
析函数 178
8.2.6 Instrument型数据的构建 179
8.3 利率模型 182
8.3.1 利率模型分类 182
8.3.2 HL模型 183
8.3.3 变方差HL模型 187
8.3.4 HL模型的意义 193
8.4 BDT模型 193
8.4.1 BDT模型的构建 194
8.4.2 BDT模型的实现 197
8.5 HW和BK模型 198
8.5.1 三叉树的基本形态 198
8.5.2 HW模型的构建 199
8.5.3 HW模型的Q参数 204
8.5.4 BK模型简介 205
8.5.5 HW和BK模型的实现 206
8.6 HJM模型 208
8.6.1 HJM模型简介 208
8.6.2 HJM模型的实现 208
8.7 利率模型定价 210
8.7.1 利率模型的输入变量 210
8.7.2 产品的定价 212
第9章 衍生品计算 216
9.1 无套利和Black-Scholes方程 216
9.1.1 单步二叉树模型 216
9.1.2 风险中性定价 217
9.1.3 套利的数学模型 218
9.1.4 Black-Scholes模型假设 218
9.1.5 Black-Scholes方程 219
9.2 欧式期权的影响因素 221
9.2.1 欧式期权定价函数 221
9.2.2 欧式期权的希腊字母 222
9.3 欧式期权的风险度量 224
9.3.1 欧式期权希腊字母函数 224
9.3.2 期货期权定价函数 226
9.3.3 隐含波动率计算 227
9.4 期权价格的数值求解 228
9.4.1 多期二叉树模型 228
9.4.2 CRR模型 230
9.4.3 EQP模型 231
9.4.4 ITT模型 232
9.5 MATLAB中的CRR模型 232
9.5.1 资产价格二叉树 232
9.5.2 定价函数 235
9.5.3 其他定价函数 238
9.5.4 希腊字母计算 239
9.6 MATLAB中的EQP模型 239
9.6.1 资产价格二叉树 240
9.6.2 二叉树的等价式 242
9.6.3 定价函数 244
9.6.4 其他定价函数 246
9.7 有限差分法定价 246
9.7.1 有限差分法简介 246
9.7.2 自变量的离散化 247
9.7.3 隐式差分解法 248
9.7.4 方程的边界条件 249
第10章 投资组合管理与风险控制 252
10.1 投资组合基础概念 252
10.1.1 价格序列和收益率序列间
的相互转换 252
10.1.2 方差、协方差与相关系数 255
10.1.3 线性规划问题的提出和标
准化 257
10.2 资产组合风险-收益计算 258
10.2.1 资产组合的收益率和方差 258
10.2.2 收益率和标准差的计算 258
10.2.3 VaR的计算 260
10.3 资产组合有效前沿 261
10.3.1 资产有效前沿概念 262
10.3.2 简单约束条件下的资产组
合有效前沿 262
10.3.3 复杂约束条件下的资产组
合有效前沿 266
10.3.4 利用随机模拟法确定资产
组合有效前沿 267
10.4 资产配置 269
10.4.1 资产配置问题概述 269
10.4.2 资产配置问题求解 270
第11章 奇异期权和利率期权定价 272
11.1 普通香草期权 272
11.2 执行条件不同的奇异期权 272
11.2.1 百慕大期权 273
11.2.2 复合期权 273
11.3 呼叫期权 274
11.3.1 呼叫期权简介 274
11.3.2 呼叫期权估值 275
11.3.3 呼叫期权定价程序 276
11.4 亚式期权 278
11.4.1 亚式期权简介和分类 278
11.4.2 亚式期权的解 279
11.5 亚式期权数值解法 281
11.5.1 二叉树的路径函数 282
11.5.2 平均价格的确定 283
11.5.3 回溯法计算期权价格 283
11.5.4 定价实例 284
11.5.5 亚式期权定价程序 286
11.6 回望期权 288
11.6.1 回望期权简介 288
11.6.2 定价的二叉树方法 290
11.6.3 回望期权定价程序 294
11.7 障碍期权 295
11.7.1 障碍期权简介 295
11.7.2 障碍期权定价实例及程序 297
11.8 二值期权 299
11.8.1 二值期权简介 299
11.8.2 二值期权定价程序 300
11.9 基于多资产的期权 301
11.9.1 蒙特卡罗模拟 301
11.9.2 相关随机变量的路径生
成和Cholesky分解 305
11.9.3 价差期权 306
11.9.4 彩虹期权 308
第3篇 MATLAB量化投资相关函数详解
附录A 金融工具箱函数详解 312
A.1 日期数据处理和转换 312
A.1.1 当前日期和时间 312
A.1.2 日期和时间项 312
A.1.3 日期转换 314
A.1.4 金融日期数据 315
A.1.5 息票日期 318
A.1.6 货币与价格 322
A.1.7 金融数据的图表展示 323
A.2 现金流的分析和计算 325
A.2.1 年金 325
A.2.2 摊销与折旧 325
A.2.3 现值 326
A.2.4 终值 327
A.2.5 现金流支付的计算 327
A.2.6 收益率计算 328
A.2.7 现金流的敏感度 329
A.3 固定收益证券 329
A.3.1 应计利息 329
A.3.2 价格计算 330
A.3.3 利率期限结构 331
A.3.4 收益率计算 333
A.3.5 价差计算 334
A.3.6 利率敏感度 335
A.4 投资组合分析 337
A.4.1 资产组合分析 337
A.4.2 资产组合业绩评估 342
A.5 金融统计 343
A.5.1 条件期望最大化(ECM)
算法 343
A.5.2 多元正态回归 344
A.5.3 Maximization-Least-Squares
算法 345
A.5.4 似不相关回归 345
A.6 金融时间序列 346
A.6.1 对象和文件的创建 346
A.6.2 算术运算 346
A.6.3 数学运算 348
A.6.4 统计描述 349
A.6.5 数据操作 350
A.6.6 变换 352
A.6.7 技术分析指标 354
A.6.8 便捷工具 358
A.7 其他 358
A.7.1 期权定价与敏感度分析 358
A.7.2 单变量GARCH模型 361
附录B 金融衍生品工具箱函数详解 363
B.1 利率模型及应用 363
B.1.1 HJM模型 363
B.1.2 HJM模型的应用 363
B.1.3 BDT模型 367
B.1.4 BDT模型的应用 368
B.1.5 HW模型 371
B.1.6 HW模型的应用 372
B.1.7 BK模型 376
B.1.8 BK模型的应用 376
B.2 期权模型及应用 380
B.2.1 CRR模型 380
B.2.2 CRR模型的应用 381
B.2.3 EQP模型 382
B.2.4 EQP模型的应用 383
B.2.5 ITT模型 385
B.2.6 ITT模型的应用 385
B.3 利率工具和利率期限结构 387
B.3.1 利率工具 387
B.3.2 利率期限结构 390
B.4 期权定价数据属性设置及工具 393
B.4.1 期权定价数据属性设置 393
B.4.2 期权工具 394
B.5 金融工具的资产组合 395
B.6 权益类衍生品的解析解 398
B.7 其他 401
B.7.1 树图的操作 401
B.7.2 金融对象结构型数据 403
B.7.3 投资组合避险与配置 403
附录C 固定收益工具箱函数详解 405
C.1 定期存单 405
C.2 可转债定价 406
C.3 衍生证券计算 406
C.4 利率期限结构曲线对象 409
C.5 MBS相关函数 411
C.6 期权调整价差的计算 415
C.7 Steped-Coupon债券的相关计算 416
C.8 国库券的相关计算 418
C.9 国债的相关计算 419
C.10 零息票金融工具 420
参考文献 422