新書推薦:
《
Hygge Home(为什么我只想待在家)
》
售價:HK$
96.8
《
思想会·诺曼底1944:登陆日与史诗般的77天法国战役
》
售價:HK$
196.9
《
黄金定律:智慧泥板与巴比伦最富有的人(全球畅销书!来自古巴比伦的财富课,教你摆脱贫困,智慧管理财富,实现财富持续增长!)
》
售價:HK$
52.8
《
全球的全球史:世界各地的研究与实践 历史学的实践丛书
》
售價:HK$
88.0
《
学会思考 批判性思维 思辨与立场 学会提问
》
售價:HK$
86.9
《
AI时代:弯道超车新思维
》
售價:HK$
76.8
《
香事渊略
》
售價:HK$
108.9
《
这就是山海经
》
售價:HK$
107.8
|
編輯推薦: |
此书可用于Python入门及量化投资的学习。作者专业,内容详尽具体,所有实例的程序源代码可扫描书中二维码免费下载。
|
內容簡介: |
本书注重理论与实践相结合,通过实际案例和编程实现让读者理解理论在实践中的应用;同时还充分强调案例的实用性、程序的可模仿性,且在案例程序中附有详细的注释。例如,投资组合管理、KMV 模型计算、期权定价模型与数值方法等案例程序,读者可以直接使用或根据需要在源代码基础上进行修改使用。
本书共19章,前两章分别对金融市场的基本概况与Python的基础知识进行概述;接下来的16章为金融数量分析常用的案例含完整、稳健的程序,包括现金流分析、随机模拟、策略模拟、期权定价模型与数值方法、固定收益证券的久期与凸度计算、期货或股票的技术指标计算与回测等;*后一章,总结了一些Python金融编程技巧。
本书既可作为高等院校金融数学、金融工程专业的实践教材,也可作为理工科、经济金融学科和数量分析方面的研究生,以及与经济金融相关的研究人员和从业人员的参考用书。
|
目錄:
|
第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章 Python基础知识概述 10
2.1 Python的发展历程和影响 10
2.2 基本操作 11
2.3 多项式运算 11
2.3.1 多项式表达方式 11
2.3.2 多项式求解 12
2.3.3 多项式乘法卷积 12
2.4 多项式的曲线拟合 13
2.4.1 函数拟合 13
2.4.2 多项式插值 14
2.5 微积分计算 15
2.5.1 数值积分计算 15
2.5.2 符号积分计算 16
2.5.3 数值微分计算 16
2.6 矩阵计算 18
2.6.1 线性方程组的求解 18
2.6.2 矩阵的特征值和特征向量 18
2.6.3 矩阵求逆 19
2.7 Python 函数编程规则 19
2.8 绘 图 20
2.8.1 简易图形的绘制 20
2.8.2 二维图形的绘制 21
2.8.3 三维图形的绘制 23
2.8.4 等高线图形的绘制 24
2.8.5 二维伪彩图的绘制 25
2.8.6 矢量场图的绘制 26
2.8.7 多边形图的绘制 27
第3章 Python爬虫 29
3.1 基本参数 29
3.1.1 基本请求形式 29
3.1.2 为URL传递参数 30
3.2 获取网络信息 31
第4章 贷款按揭与保险产品现金流分析案例 34
4.1 货币时间价值计算 34
4.1.1 单利终值与现值 34
4.1.2 复利终值与现值 35
4.1.3 连续复利计算 35
4.2 固定现金流计算 36
4.2.1 固定现金流现值计算函数pv 36
4.2.2 固定现金流终值计算函数fv 37
4.3 变化现金流计算 38
4.4 年金现金流计算 39
4.5 商业按揭贷款分析 41
4.5.1 按揭贷款还款方式 41
4.5.2 等额还款模型与计算 41
4.5.3 等额本金还款 44
4.5.4 还款方式比较 46
4.5.5 提前还款违约金估算 46
4.6 商业养老保险分析 47
4.6.1 商业养老保险案例 47
4.6.2 产品结构分析 48
4.6.3 现金流模型 48
4.6.4 保险支出现值函数 49
4.6.5 保险收入现值函数 50
4.6.6 案例数值分析 51
4.6.7 案例分析结果 53
第5章 随机模拟概率分布与随机数 54
5.1 概率分布 54
5.1.1 概率分布的定义 54
5.1.2 几种常用的概率分布 54
5.1.3 密度函数、分布函数和逆概率分布函数值的计算 57
5.2 随机数与蒙特卡罗模拟58
5.2.1 随机数的生成 58
5.2.2 蒙特卡罗模拟 61
5.3 随机价格序列 64
5.3.1 收益率服从正态分布的价格序列 64
5.3.2 具有相关性的随机序列 66
5.4 带约束的随机序列 68
第6章 策略模拟组合保险策略分析 72
6.1 固定比例组合保险策略72
6.1.1 策略模型 72
6.1.2 模型参数 73
6.2 时间不变性组合保险策略 74
6.2.1 策略模型 74
6.2.2 模型参数 74
6.3 策略数值模拟74
6.3.1 模拟情景假设 74
6.3.2 固定比例组合保险策略模拟 75
6.3.3 时间不变性组合保险策略模拟 78
6.4 策略选择与参数优化 82
6.4.1 模拟情景假设 82
6.4.2 模拟方案与模拟参数 82
6.4.3 模拟程序与结果 83
第7章 KMV模型求解方程与方程组的数值解 91
7.1 方程与方程组 91
7.1.1 方 程 91
7.1.2 方程组 91
7.2 方程与方程组的求解 92
7.2.1 fsolve函数解变量方程 92
7.2.2 fsolve函数解多变量方程组 93
7.2.3 含参数方程组的求解 94
7.3 KMV模型方程组的求解 94
7.3.1 KMV模型简介 94
7.3.2 KMV模型计算方法 95
7.3.3 KMV模型计算程序 96
第8章 期权定价模型与数值方法 101
8.1 期权基础概念 101
8.1.1 期权及其相关概念 101
8.1.2 买入期权、卖出期权平价组合 102
8.1.3 期权防范风险的应用 102
8.2 期权定价方法的理论基础 103
8.2.1 布朗运动 104
8.2.2 伊藤引理 105
8.2.3 Black Scholes微分方程 107
8.2.4 Black Scholes方程求解 109
8.2.5 影响期权价格的因素分析 111
8.3 B S公式隐含波动率计算 115
8.3.1 隐含波动率概念 115
8.3.2 隐含波动率计算方法 116
8.3.3 隐含波动率计算程序 116
8.4 期权二叉树模型 118
8.4.1 二叉树模型的基本理论 118
8.4.2 二叉树模型的计算 119
8.5 期权定价的蒙特卡罗方法 121
8.5.1 模拟基本思路 121
8.5.2 模拟技术实现 121
8.5.3 模拟技术改进 122
8.5.4 欧式期权蒙特卡罗模拟 124
8.5.5 障碍期权蒙特卡罗模拟 127
第9章 股票挂钩结构分析 131
9.1 股票挂钩产品的基本结构 131
9.1.1 高息票据与保本票据 131
9.1.2 产品构成要素说明 132
9.1.3 产品的设计方法 133
9.2 股票挂钩产品案例分析 135
9.2.1 产品定价分析 135
9.2.2 产品案例要素说明 135
9.2.3 保本票据定价与收益 136
9.2.4 高息票据定价与收益 140
9.3 分级型结构产品分析 142
9.3.1 分级型结构产品的组成 142
9.3.2 分级型结构产品的结构比例 142
9.3.3 分级型结构产品的收益分配 143
9.3.4 分级型结构产品的流通方式 143
9.3.5 分级型结构产品的风险控制 144
9.4 鲨鱼鳍期权期望收益测算 144
9.4.1 鲨鱼鳍期权简介 144
9.4.2 鲨鱼鳍期权收益率曲线 144
第10章 马科维茨均值方差模型 146
10.1 模型理论 146
10.2 收益与风险计算函数 147
10.3 有效前沿计算函数 148
10.4 约束条件下的有效前沿 151
10.5 模型年化参数计算 153
第11章 跟踪误差最小化非线性最小二乘法Python编程 154
11.1 理论与案例 154
11.1.1 非线性最小二乘法 154
11.1.2 跟踪误差最小化背景 154
11.2 模型的建立 155
11.2.1 实际案例 155
11.2.2 数学模型 156
11.3 Python实现 157
11.3.1 least_squares函数 157
11.3.2 建立目标函数 158
11.3.3 模型的求解 160
11.4 扩展问题 162
第12章 分形技术移动平均Hurst指数计算 163
12.1 Hurst指数简介 163
12.2 RS方法计算Hurst指数 164
12.3 移动窗口Hurst指数计算程序 164
12.3.1 时间序列分段 164
12.3.2 Hurst指数计算 166
12.3.3 移动窗口Hurst指数计算 168
第13章 固定收益证券的久期与凸度计算 171
13.1 基本概念 171
13.2 QuantLib基础 174
13.3 价格与收益率的计算 176
13.3.1 计算公式 176
13.3.2 债券定价的计算 177
13.3.3 债券收益率的计算 179
13.4 久期与凸度的计算 180
13.4.1 债券久期的计算 180
13.4.2 债券凸度的计算 182
13.5 债券组合久期免疫策略 183
第14章 利率期限结构与利率模型 188
14.1 利率理论与投资策略 188
14.1.1 利率的期限结构理论 188
14.1.2 利用利率结构投资策略 188
14.2 利率期限结构 190
14.2.1 建立利率期限结构的方法 190
14.2.2 利率期限结构的计算 191
14.2.3 利率期限结构的平滑 194
14.3 利用利率期限结构计算远期利率 194
14.4 利率模型 197
14.4.1 利率模型分类 197
14.4.2 Ho Lee模型 197
14.4.3 BDT二叉树的构建 201
第15章 线性优化理论与方法 204
15.1 线性规划理论 204
15.1.1 线性规划的求解方法 204
15.1.2 线性模型的标准形式 205
15.2 线性优化Python求解 205
15.2.1 linprog函数 205
15.2.2 线性规划目标函数 205
15.2.3 内点法求解 206
15.2.4 单纯形法求解 206
15.3 含参数线性规划 207
第16章 非线性优化理论与方法 208
16.1 理论背景 208
16.1.1 非线性问题 208
16.1.2 非线性优化 208
16.2 理论模型 209
16.2.1 无约束非线性优化 209
16.2.2 约束非线性优化 210
16.3 Python实现 211
第17章 资产收益率分布的拟合与检验 214
17.1 案例描述 214
17.2 数据的描述性统计 215
17.2.1 描述性统计量 215
17.2.2 统计图 218
17.3 分布的检验 221
17.3.1 normaltest函数 221
17.3.2 jarque_bera函数 222
17.3.3 kstest函数 223
17.3.4 ks_2samp函数 223
17.3.5 最终结论 225
17.4 投资组合分布图比较 225
17.5 常用统计量 228
第18章 技术分析指标计算与回测 230
18.1 理论简介 230
18.2 行情数据的K线图 230
18.2.1 数据的读取 230
18.2.2 蜡烛图K线 231
18.3 技术指标的计算 233
18.3.1 移动平均线 233
18.3.2 布林带 235
18.3.3 平滑异同移动平均线 236
18.3.4 其他技术指标 237
18.4 动态技术指标 238
第19章 编程实用技巧 241
19.1 变量的初始化 241
19.2 集合交并函数 243
19.3 定时触发程序运行 245
19.4 发送邮件 246
参考文献 248
|
內容試閱:
|
笔者编著的《金融数量分析基于MATLAB编程》自2009年上市到现在已经更新了4个版本。近十年,国内金融市场变革迅速,金融产品日新月异,在此期间Python由于其免费与便捷的特点已经开始在金融行业被广泛应用,为此笔者诚意邀请怀伟城、王玮珩两位Python专家将《金融数量分析基于MATLAB编程》中的案例改写为用Python编写的案例。
也许大家是因为听说Python功能强大,并能解决许多问题才开始学习Python的。但我相信如果有一个更好的、更能说服自己的理由,大家也许能够更主动、积极地学习Python,并将Python用于金融数值计算,同时提高自己对于金融的理解。
1. 巨大的数据量
大数据时代,在金融方面我们需要处理的数据量越来越大。A 股股票数量早已超过3 000只,公募基金的数量也已经超过5 000只,备案私募基金的数量超过40 000只;中证指数有限公司、深证信息公司、中信标普等指数编制机构发布的各类指数也已数千,而且还在快速增长;开盘价、收盘价、PE、PB、ROE、ROA、夏普比率、波动率等各种指标数据不计其数。
2. 复杂的模型
随着投资标的品种股指期货、股指期权、商品期权、可转债的增加,我们所需掌握的定价模型越来越复杂,例如,期权定期、Beta对冲、浮动利息债券等;同时,随着程序化交易的快速发展,各种复杂的交易策略模型也在市场中被大量应用。这些复杂的模型都需要强大的数值计算平台的支持。
3. 避免主观臆断
人类大脑的思维具有局限性并且逻辑有时具有跳跃性,常常凭借直观感觉判断事物。例如,几年前大家常见的一个量化案例: 某策略赚3%止赢即获利平仓,亏损1%平仓止损,每一组止赢与止损交易可以获利2%。如果这个策略进行高频交易,将获利丰富啊! 但我们却忽略了一点,即赚3%与赔1%的概率并非一致,如果进一步思考就会发现我们忽略了交易成本。
再举一个我常常使用的问例: 两个[0,1]上的均匀分布的和是什么分布? 三个[0,1]上的均匀分布的和是什么分布? n 个呢? 有的读者会直接回答还是均匀分布,有的读者深思一下回答是正态分布。这两个答案或许都不正确,但如何验证呢? 我们可以通过编程的方式进行数值试验,对两个结论进行验证。如果做数值试验,那就需要编程实现。
4. 实现自动化办公
大多数人在日常工作中都会面对很多重复性的劳动与烦琐的计算。例如,某个报表每日周、月都要更新,且更新逻辑很明确:增加内容,统计市场数据,附加某些计算等;或者,在每天的工作中Excel或Word的重复工作占据了你大量的时间。如果有一种方法可以将你从中解脱出来,那么你就可以有更多的时间进行创造性的工作或享受生活了。
所谓重复劳动,大多都是规则明确化的,它包括脑力与体力两个方面。从人工智能角度发展,就是让机器代替人类执行重复计算或劳动的过程。比如自从有了计算机,大家的劳动相比之前高效了许多。但是,我们在计算机上还是会进行某些重复性的劳动与烦琐的计算,这又是为什么呢? 这是因为软件、硬件作为商品都是普遍适用的,基于利润或稳定性方面的考虑,它不会针对某件事或某个人设定,所以面对各自的工作问题,就需要自己或请人来解决。由于某些业务的复杂性非技术上的,其中的逻辑只有自己最清楚,所以自己编程解决是一条非常有效的路径。例如,金融市场数据每日更新,通过Python,可以将自己从一定的重复劳动中解脱出来。
实现自动化办公需要自己编程,但你或许会问: 不会编程怎么办? 首先,必须说明的是,有些人适合编程而有些人不适合编程,适合不适合只有自己尝试过才知道。其次,还有一条途径请别人帮你解决问题,如果你觉得贵就只有自己继续重复劳动了。假设你工作30年,每天有50%的时间在重复劳动,那么你的15年时间就在重复劳动中度过了。是否尝试一下由你自己决定! 在这里声明,重复并非不好,或许大多数工作的性质就是重复,每个人的生活态度不一样。笔者厌恶重复,有时为了生活也不得不重复,但在重复的过程中我总是思考如何能自动化,如何摆脱重复。
5. 量化交易赚钱
量化交易者的楷模是数学家西蒙斯,关于他的文艺复兴科技公司与大奖章基金介绍如下:华尔街赚钱机器文艺复兴科技公司,依靠公司的旗舰产品大奖章基金Medallion Fund20年的超群表现赢得无数赞誉。据《福布斯》杂志的统计,截至2012年9月,西蒙斯的身价已高达110亿美元,在福布斯全球富豪榜上位居第82位。数据显示,自1988年成立至2010年西蒙斯退休,大奖章基金年均回报率高达35%,不仅远远跑赢大市,还比索罗斯和巴菲特的操盘成绩高十余个百分点,这使得西蒙斯在人才济济的华尔街笑傲群雄。他被投资界称为量化投资之王。西蒙斯成功的秘诀主要有三:一是针对不同市场设计数量化的投资管理模型;二是以计算机运算为主导,排除人为因素干扰;三是在全球各种市场上进行短线交易。如果没有仔细阅读前面4点,直接看到量化交易赚钱,或有图急功近利之嫌。作者想提醒读者先阅读前面4点,尤其是避免主观臆断与实现自动化办公,以量化交易赚钱或许需要天赋与运气,但实现避免主观臆断与实现自动化办公只需要你用些时间去学习一下Python编程。
最后,希望本书能对各位读者有所帮助,并且再次感谢怀伟城、王玮珩两位Python专家,以及北京航空航天大学出版社的各位老师卓有成效的工作。
6. 其 他
书中所有程序的源代码可在北京航空航天大学出版社网站http:www.buaapress.com.cnmzswelcomeindex下载专区免费下载。
由于作者水平有限,书中不当之处,敬请读者批评指正。本书网络支持:www.ariszheng.com,作者邮箱:ariszheng@gmail.com,编辑邮箱:shpchen2004@163.com。
郑志勇
2018年5月于北京
|
|