第1章 金融市场与金融产品 1
1.1 金融市场 1
1.1.1 货币市场 2
1.1.2 资本市场 2
1.1.3 商品市场 3
1.2 金融机构 3
1.2.1 存款性金融机构 4
1.2.2 非存款性金融机构 4
1.2.3 家庭或个人 5
1.3 基础金融工具 6
1.3.1 原生金融工具 6
1.3.2 衍生金融工具 6
1.3.3 金融工具的基本特征 6
1.4 金融产品 7
1.5 金融产品风险 8
第2章 MATLAB基础知识概述 10
2.1 MATLAB的发展历程和影响 10
2.2 基本操作 11
2.2.1 操作界面 11
2.2.2 Help帮助 12
2.2.3 系统变量 13
2.3 多项式运算 17
2.3.1 多项式表达方式 17
2.3.2 多项式求解 17
2.3.3 多项式乘法(卷积) 18
2.4 多项式的曲线拟合 18
2.4.1 函数拟合 18
2.4.2 曲线拟合工具CFTOOL 19
2.4.3 多项式插值 20
2.5 微积分计算 22
2.5.1 数值积分计算 22
2.5.2 符号积分计算 22
2.5.3 数值微分运算 23
2.5.4 符号微分运算 24
2.6 矩阵计算 25
2.6.1 线性方程组的求解 25
2.6.2 矩阵的特征值和特征向量 25
2.6.3 矩阵求逆 26
2.7 M函数编程规则 27
2.8 绘图函数 32
2.8.1 简易函数绘图 32
2.8.2 二维图形绘制 33
2.8.3 三维图形绘制 35
2.8.4 等高线图形绘制 37
2.8.5 二维彩图绘制 37
2.8.6 矢量场图绘制 39
2.8.7 多边形图绘制 39
第3章 MATLAB与Excel文件的数据交换 41
3.1 案例背景 41
3.2 数据交互函数 41
3.2.1 获取文件信息函数xlsfinfo 41
3.2.2 读取数据函数xlsread 42
3.2.3 写入数据函数xlswrite 44
3.2.4 交互界面函数uiimport 45
3.3 Excel-Link宏 47
3.3.1 加载Excel-Link宏 47
3.3.2 使用Excel-Link宏 47
3.3.3 Excel 2007加载与使用宏 50
3.4 交互实例 51
3.4.1 基金相关性的计算 51
3.4.2 多个文件的读取和写入 53
3.5 数据的平滑处理 54
3.5.1 smooth函数 54
3.5.2 smoothts函数 56
3.5.3 medfilt1函数 60
3.6 数据的标准化变换 61
3.6.1 数据的标准化常用方法 61
3.6.2 数据的极差规格化变换 64
第4章 MATLAB与数据库的数据交互 66
4.1 案例背景 66
4.2 MATLAB实现 66
4.2.1 Database工具箱简介 66
4.2.2 Database工具箱函数 66
4.2.3 数据库数据读取 67
4.2.4 数据库数据写入 72
4.3 网络数据读取 74
4.3.1 Yahoo数据 74
4.3.2 Google数据 76
第5章 贷款按揭与保险产品——现金流分析案例 79
5.1 货币时间价值计算 79
5.1.1 单利终值与现值 79
5.1.2 复利终值与现值 80
5.1.3 连续复利计算 80
5.2 固定现金流计算 81
5.2.1 固定现金流现值计算函数pvfix 81
5.2.2 固定现金流终值计算函数fvfix 82
5.3 变化现金流计算 82
5.4 年金现金流计算 84
5.5 商业按揭贷款分析 86
5.5.1 按揭贷款还款方式 86
5.5.2 等额还款模型与计算 86
5.5.3 等额本金还款 89
5.5.4 还款方式比较 91
5.5.5 提前还款违约金估算 91
5.6 商业养老保险分析 92
5.6.1 商业养老保险案例 93
5.6.2 产品结构分析 94
5.6.3 现金流模型 94
5.6.4 保险支出现值函数 95
5.6.5 保险收入现值函数 95
5.6.6 案例数值分析 96
5.6.7 案例分析结果 97
第6章 随机模拟——概率分布与随机数 99
6.1 概率分布 99
6.1.1 概率分布的定义 99
6.1.2 几种常用概率分布 99
6.1.3 概率密度、分布和逆概率分布函数值的计算 102
6.2 随机数与蒙特卡罗模拟 105
6.2.1 随机数的生成 105
6.2.2 蒙特卡罗模拟 108
6.3 随机价格序列 111
6.3.1 收益率服从正态分布的价格序列 111
6.3.2 具有相关性的随机序列 113
6.4 带约束的随机序列 115
第7章 CFTOOL数据拟合——GDP与用电量增速分析 118
7.1 案例背景——GDP与用电量关系 118
7.2 数据拟合方法 120
7.3 MATLAB CFTOOL使用 120
7.3.1 CFTOOL函数的调用方式 121
7.3.2 导入数据 121
7.3.3 数据的平滑处理 122
7.3.4 数据筛选 123
7.3.5 数据拟合 124
7.3.6 绘图控制 127
7.3.7 拟合后处理 127
7.4 加权重拟合 129
第8章 策略模拟——组合保险策略分析 132
8.1 固定比例组合保险策略 132
8.1.1 策略模型 132
8.1.2 模型参数 133
8.2 时间不变性组合保险策略 134
8.2.1 策略模型 134
8.2.2 模型参数 134
8.3 策略数值模拟 134
8.3.1 模拟情景假设 134
8.3.2 固定比例组合保险策略模拟 135
8.3.3 时间不变性组合保险策略模拟 138
8.4 策略选择与参数优化 142
8.4.1 模拟情景假设 142
8.4.2 模拟方案与模拟参数 142
8.4.3 模拟程序与结果 143
第9章 KMV模型求解——方程与方程组的数值解 151
9.1 方程与方程组 151
9.1.1 方程 151
9.1.2 方程组 151
9.2 方程与方程组的求解 152
9.2.1 fzero函数 152
9.2.2 fsolve函数 153
9.2.3 含参数方程组求解 155
9.3 KMV模型方程组的求解 157
9.3.1 KMV模型简介 157
9.3.2 KMV模型计算方法 158
9.3.3 KMV模型计算程序 159
第10章 期权定价模型与数值方法 163
10.1 期权基础概念 163
10.1.1 期权及其有关概念 163
10.1.2 买入、卖出期权平价组合 164
10.1.3 期权防范风险的应用 164
10.2 期权定价方法的理论基础 165
10.2.1 布朗运动 166
10.2.2 伊藤引理 168
10.2.3 Black-Schole微分方程 169
10.2.4 Black-Scholes方程求解 171
10.2.5 影响期权价格的因素分析 173
10.3 B-S公式隐含波动率计算 176
10.3.1 隐含波动率概念 176
10.3.2 隐含波动率计算方法 177
10.3.3 隐含波动率计算程序 178
10.4 期权二叉树模型 182
10.4.1 二叉树模型的基本理论 182
10.4.2 二叉树模型的计算 183
10.5 期权定价的蒙特卡罗方法 185
10.5.1 模拟基本思路 185
10.5.2 模拟技术实现 185
10.5.3 模拟技术改进 186
10.5.4 欧式期权蒙特卡罗模拟 188
10.5.5 障碍期权蒙特卡罗模拟 190
10.5.6 亚式期权蒙特卡罗模拟 194
第11章 股票挂钩结构分析 197
11.1 股票挂钩产品的基本结构 197
11.1.1 高息票据与保本票据 197
11.1.2 产品构成要素说明 198
11.1.3 产品的设计方法 199
11.2 股票挂钩产品案例分析 201
11.2.1 产品定价分析 201
11.2.2 产品案例要素说明 201
11.2.3 保本票据定价与收益 202
11.2.4 高息票据定价与收益 205
11.3 分级型结构产品分析 207
11.3.1 分级型结构产品的组成 207
11.3.2 分级型结构产品的结构比例 208
11.3.3 分级型结构产品的收益分配 208
11.3.4 分级型结构产品的流通方式 209
11.3.5 分级型结构产品的风险控制 209
11.4 鲨鱼鳍期权(SharkOption)期望收益测算 210
11.4.1 鲨鱼鳍期权简介 210
11.4.2 鲨鱼鳍期权收益率线 210
11.4.3 期望收益测算(历史模拟法) 211
11.4.4 结果与分析 212
第12章 马可维兹均值-方差模型 215
12.1 模型理论 215
12.2 收益与风险计算函数 216
12.3 有效前沿计算函数 217
12.4 约束条件下有效前沿 221
12.5 模型年化参数计算 223
第13章 基金评价与投资组合绩效 225
13.1 资产定价(CAPM)模型 225
13.2 组合绩效指标 226
13.2.1 Beta与Alpha计算 227
13.2.2 夏普比率 231
13.2.3 信息比率 232
13.2.4 跟踪误差 234
13.2.5 最大回撤 235
13.3 业绩归因分析 237
13.3.1 大类资产配置效应、行业配置效应和个股选择效应 237
13.3.2 基金选股与择时能力分析 238
第14章 风险价值VaR计算 240
14.1 VaR模型 240
14.1.1 VaR模型的含义 240
14.1.2 VaR的主要性质 240
14.1.3 VaR模型的优点与缺点 241
14.2 VaR计算方法 242
14.3 数据读取 242
14.3.1 数据提取 242
14.3.2 数据可视化与标准化 244
14.3.3 数据简单处理与分析 246
14.4 数据处理 251
14.5 历史模拟法程序 252
14.6 参数模型法程序 254
14.7 蒙特卡罗模拟程序 255
14.7.1 基于随机收益率序列的蒙特卡罗风险价值计算 255
14.7.2 基于几何布朗运动的蒙特卡罗模拟 258
第15章 跟踪误差最小化——非线性最小二乘法MATLAB编程 260
15.1 理论与案例 260
15.1.1 非线性最小二乘法 260
15.1.2 跟踪误差最小化背景 260
15.2 模型建立 261
15.2.1 实际案例 261
15.2.2 数学模型 262
15.3 MATLAB实现 263
15.3.1 lsqnonlin函数 263
15.3.2 建立目标函数 264
15.3.3 模型求解 266
15.4 扩展问题 269
第16章 分形技术——移动平均Hurst指数计算 270
16.1 Hurst指数简介 270
16.2 R/S方法计算Hurst指数 271
16.3 移动平均Hurst指数计算程序 271
16.3.1 时间序列分段 271
16.3.2 Hurst指数计算 273
16.3.3 移动平均Hurst指数计算 275
第17章 固定收益证券的久期与凸度计算 278
17.1 基本概念 278
17.2 价格与收益率的计算 280
17.2.1 计算公式 280
17.2.2 债券定价计算 281
17.2.3 债券收益率计算 284
17.3 久期与凸度的计算 287
17.3.1 债券久期计算 287
17.3.2 债券凸度计算 290
17.4 债券组合久期免疫策略 292
第18章 利率期限结构与利率模型 296
18.1 利率理论与投资策略 296
18.1.1 利率的期限结构理论 296
18.1.2 利用利率结构投资策略 296
18.2 利率期限结构 298
18.2.1 建立利率期限结构的方法 298
18.2.2 利率期限结构的计算 299
18.2.3 利率期限结构的平滑 304
18.3 利用利率期限结构计算远期利率 304
18.4 利率模型 308
18.4.1 利率模型分类 308
18.4.2 Ho-Lee模型 309
18.4.3 BDT二叉树的构建 313
18.4.4 HJM模型的构建 316
第19章 线性优化理论与方法 318
19.1 案例背景 318
19.1.1 线性规划应用 318
19.1.2 线性规划的求解方法 318
19.2 线性模型建立 319
19.3 线性优化MATLAB求解 319
19.3.1 linprog函数 319
19.3.2 线性规划目标函数 320
19.3.3 内点法求解 321
19.3.4 单纯形法求解 321
19.4 含参数线性规划 322
第20章 非线性优化理论与方法 324
20.1 理论背景 324
20.1.1 非线性问题 324
20.1.2 非线性优化 324
20.2 理论模型 325
20.2.1 无约束非线性优化 325
20.2.2 约束非线性优化 326
20.3 MATLAB实现 327
20.3.1 fminunc函数(无约束优化) 327
20.3.2 fminsearch函数 330
20.3.3 fmincon函数 332
20.4 扩展问题 337
20.4.1 大规模优化问题 337
20.4.2 含参数优化问题 338
第21章 资产收益率分布的拟合与检验 340
21.1 案例描述 340
21.2 数据的描述性统计 341
21.2.1 描述性统计量 341
21.2.2 统计图 344
21.3 分布的检验 348
21.3.1 chi2gof函数 348
21.3.2 jbtest函数 349
21.3.3 kstest函数 351
21.3.4 kstest2函数 353
21.3.5 lillietest函数 355
21.3.6 最终的结论 357
21.4 投资组合分布图比较 358
第22章 技术分析——指标计算与绘图 361
22.1 理论简介 361
22.2 行情数据的K线图 361
22.2.1 数据读取 361
22.2.2 蜡烛图(K线) 362
22.3 技术指标计算 364
22.3.1 移动平均线 364
22.3.2 布林带 366
22.3.3 平滑异同移动平均线 367
22.3.4 其他技术指标 368
22.4 动态技术指标 370
第23章 编程实用技巧 373
23.1 变量的初始化 373
23.2 集合交并函数 375
23.3 坐标轴时间标记 378
23.4 坐标轴过原点实现 379
23.5 定时触发程序运行 381
23.6 发送邮件 382
附录A 使用MATLAB进行国内期货交易 383
A.1 国内期货柜台系统介绍 383
A.2 开发前准备 383
A.3 各种对接方式 384
A.4 C#版对接原理 384
A.5 QuantBox版项目介绍 385
A.6 C版的特点 385
A.7 监控软件的使用 386
A.8 MATLAB对接期货接口 386
A.9 MATLAB对接证券 393
附录B 基于DataHouse的数据获取 394
B.1 恒生聚源DataHouse介绍 394
B.1.1 恒生聚源DataHouse概述 394
B.1.2 DataHouse下载安装 395
B.1.3 注册登录 396
B.1.4 DataHouse指标概况 397
B.1.5 指标搜索方法 399
B.2 DataHouse指标应用 402
B.2.1 获取证券代码 402
B.2.2 获取日期信息 406
B.3 DH取行情数据 410
B.3.1 DataHouse取高频行情(包括实时) 410
B.3.2 DH取日行情 415
B.3.3 DH取其他行情数据 420
B.3.4 基于行情类的其他案例 421
B.4 基本面数据 423
B.4.1 财务数据的提取 423
B.4.2 宏观数据的提取 429
B.4.3 基于财务数据的简单选股模型 431
B.4.4 基于宏观数据的简单择时模型 433
附录C FDataInterface接口介绍 436
C.1 FDataInterface接口介绍 436
C.2 获取历史数据(HistoryData)函数语法 436
C.3 获取实时数据(RealTimeData)函数语法 438
C.4 综合示例 440
参考文献 441