产品特色
编辑推荐
本书由具有丰富的教学经验和专业经验的严玉星教授编写,囊括了他多年在金融领域教学一线的经典思想,并且结合了众多实际的金融数据,严教授还全程参与了本书的翻译和审校工作。
本书在原作者全程参与的前提下,邀请香港理工大学的张少军老师全程主导并负责本书的翻译,将基本的金融理论和丰富的代码示例及金融模型深度解析,引导读者编写高效的Python程序,构建实际的Python应用,实现金融数据的高效分析。在理论和实践中,把握量化交易的核心思想,将金融模型运用得得心应手。
内容简介
Python凭借其简单、易读、可扩展性以及拥有巨大而活跃的科学计算社区,在需要数据分析和处理大量数据的金融领域得到了广泛而迅速的应用,并且成为越来越多专业人士**的编程语言之一。
本书通过12章内容介绍了Python在金融领域的应用,从Python的安装、基础语法,再到一系列简单的编程示例,本书循序渐进地引导读者学习Python。同时,本书还结合Python的各个模块以及金融领域中的期权价格、金融图形绘制、时间序列、期权定价模型、期权定价等内容,深度揭示了Python在金融行业中的应用技巧。
本书适合金融、会计等相关专业的高校师生阅读,也适合金融领域的研究人员和从业人员参考学习。对于有一定计算机编程基础,但想要从事金融行业的读者,本书也是不错的参考用书。
作者简介
严玉星,毕业于麦吉尔大学,获金融学博士学位。他有着丰富的教学经验,教授过各类本科学位和研究生学位的金融课程,如金融建模、期权和期货、投资组合理论、定量财务分析、企业融资和金融数据库等。他曾在8所全球知名的大学任教:两所在加拿大,一所在新加坡,5所在美国。
严博士一直活跃于学术研究的前沿,他的研究成果在多个国际学术期刊发表。此外,他还是财务数据方面的专家。在新加坡南洋理工大学任教时,他曾为博士生讲授一门名为“金融数据库入门”的课程。
目录
第1章 Python简介及安装 1
1.1 Python简介 1
1.2 如何安装Python 3
1.3 Python的不同版本 3
1.4 运行Python的3种方式 4
1.4.1 用GUI启动Python 4
1.4.2 从Python命令行启动Python 5
1.4.3 从DOS窗口启动Python 6
1.5 如何退出Python 7
1.6 错误提示 7
1.7 Python语言是区分大小写的 8
1.8 变量的初始化 8
1.9 寻找在线帮助 9
1.10 查找学习手册和教程 10
1.11 如何找出Python的版本 12
1.12 小结 12
练习题 12
第2章 用Python完成普通计算器的功能 14
2.1 变量的赋值及显示 15
2.2 错误提示 15
2.3 不能调用没有赋值的变量 16
2.4 选择有意义的变量名 16
2.5 使用dir()来查找变量和函数 17
2.6 删除或取消变量 17
2.7 基本数学运算:加、减、乘、除 18
2.8 幂函数、取整和余数函数 19
2.9 一个真正的幂函数 20
2.10 选择合适的数值精度 21
2.11 找出某个内置函数的详细信息 22
2.12 列出所有内置函数 22
2.13 导入数学模块 23
2.14 、e、对数和指数函数 24
2.15 import math与from math import*的区别 24
2.16 一些常用的函数 25
2.16.1 print()函数 25
2.16.2 type()函数 26
2.16.3 下划线_ 26
2.16.4 结合两个字符串 26
2.16.5 将小写字符变成大写字符的函数:upper() 27
2.17 元组数据类型 28
2.18 小结 29
练习题 30
第3章 用Python编写一个金融计算器 32
3.1 编写不需要保存的Python函数 33
3.2 函数的输入参数及它们的预设值 33
3.3 缩进格式在Python编程中至关重要 34
3.4 检查自己编写的函数是否存在 35
3.5 在Python编辑器里定义函数 35
3.6 利用import()在Python编辑器里激活自己编写的函数 36
3.7 使用Python编辑器调试程序 37
3.8 调用pv_f()函数的两种方法 37
3.9 生成自制的模块 38
3.10 两种注释方法 39
3.10.1 第1种注释方法 39
3.10.2 第2种注释方法 39
3.11 查找有关pv_f()函数的信息 40
3.12 条件函数:if() 41
3.13 计算年金 41
3.14 利率换算 42
3.15 连续复利利率 44
3.16 数据类型:列表 45
3.17 净现值和净现值法则 45
3.18 投资回收期和投资回收期法则 47
3.19 内部收益率和内部收益率法则 47
3.20 显示在某个目录下的指定文件 49
3.21 用Python编写一个专业金融计算器 49
3.22 将我们的目录加到Python的路径上 50
3.23 小结 52
练习题 52
第4章 编写Python程序计算看涨期权价格 56
4.1 用空壳法编写一个程序 57
4.2 用注释法编写一个程序 59
4.3 使用和调试他人编写的程序 61
4.4 小结 61
练习题 61
第5章 模块简介 64
5.1 什么是模块 64
5.2 导入模块 65
5.2.1 为导入的模块取个简称 66
5.2.2 显示模块里的所有函数 66
5.2.3 比较import math和from math import * 67
5.2.4 删除已经导入的模块 67
5.2.5 导入几个指定的函数 68
5.2.6 找出所有的内置模块 69
5.2.7 找出所有可用的模块 69
5.2.8 找到一个已安装的模块的目录位置 71
5.2.9 有关模块的更多信息 72
5.2.10 查找某个未安装的模块 72
5.3 模块之间的相互依赖性 73
5.4 小结 74
练习题 75
第6章 NumPy和SciPy模块简介 76
6.1 安装NumPy和SciPy模块 77
6.2 从Anaconda启动Python 77
6.2.1 使用NumPy的示例 78
6.2.2 使用SciPy的示例 79
6.3 显示NumPy和SciPy包含的所有函数 82
6.4 关于某个函数的详细信息 83
6.5 理解列表数据类型 83
6.6 使用全一矩阵、全零矩阵和单位矩阵 84
6.7 执行数组操作 84
6.8 数组的加、减、乘、除 85
6.8.1 进行加减运算 85
6.8.2 执行矩阵乘法运算 85
6.8.3 执行逐项相乘的乘法运算 86
6.9 x.sum()函数 87
6.10 遍历数组的循环语句 87
6.11 使用与模块相关的帮助 87
6.12 SciPy的一系列子函数包 88
6.13 累积标准正态分布 89
6.14 与数组相关的逻辑关系 90
6.15 SciPy的统计子模块(stats) 90
6.16 SciPy模块的插值方法 91
6.17 使用SciPy求解线性方程 92
6.18 利用种子(seed)生成可重复的随机数 93
6.19 在导入的模块里查找函数 94
6.20 优化算法简介 95
6.21 线性回归和资本资产定价模型(CAPM) 95
6.22 从文本文件(.txt)输入数据:loadtxt()和getfromtxt()函数 96
6.23 独立安装NumPy模块 97
6.24 数据类型简介 97
6.25 小结 98
练习题 98
第7章 用matplotlib模块绘制与金融相关的图形 101
7.1 通过ActivePython安装matplotlib模块 102
7.2 通过Anaconda安装matplotlib模块 103
7.3 matplotlib模块简介 103
7.4 了解简单利率和复利利率 106
7.5 为图形添加文字 107
7.6 杜邦等式的图示 109
7.7 净现值图示曲线 110
7.7.1 有效地使用颜色 113
7.7.2 使用不同形状 114
7.8 图形演示分散投资的效果 115
7.9 股票的数目和投资组合风险 117
7.10 从雅虎财经网站下载历史价格数据 119
7.10.1 用直方图显示收益率分布 120
7.10.2 比较单只股票的收益和市场收益 122
7.11 了解现金的时间价值 124
7.12 用烛台图展示IBM的每日收盘价 125
7.13 用图形展示价格变化 126
7.14 同时展示收盘价和交易量 129
7.14.1 在图形上添加数学公式 130
7.14.2 在图形上添加简单的图像 131
7.14.3 保存图形文件 132
7.15 比较个股的表现 132
7.16 比较多只股票的收益率与波动率 133
7.17 查找学习手册、示例和有关视频 135
7.18 独立安装matplotlib模块 136
7.19 小结 136
练习题 136
第8章 时间序列的统计分析 139
8.1 安装pandas和statsmodels模块 140
8.1.1 在Anaconda命令提示符下启动Python 140
8.1.2 使用DOS窗口启动Python 141
8.1.3 使用Spyder启动Python 142
8.2 Pandas和statsmodels模块简介 143
8.2.1 如何使用Pandas模块 143
8.2.2 statsmodels模块示例 144
8.3 开源数据 145
8.4 用Python代码输入数据 147
8.4.1 从剪贴板输入数据 147
8.4.2 从雅虎财经网站下载历史价格数据 147
8.4.3 从txt文件输入数据 148
8.4.4 从Excel文件输入数据 149
8.4.5 从csv文件输入数据 150
8.4.6 从网页下载数据 150
8.4.7 从MATLAB数据文件输入数据 152
8.5 几个重要的函数 152
8.5.1 使用pd.Series()生成一维时间序列 152
8.5.2 使用日期变量 153
8.5.3 使用DataFrame数据类型 154
8.6 计算回报率 156
8.6.1 从日回报率计算月回报率 157
8.6.2 从日回报率计算年回报率 159
8.7 按日期合并数据集 160
8.8 构建n只股票的投资组合 161
8.9 T-检验和F-检验 162
8.9.1 检验方差是否相等 163
8.9.2 测试“一月效应” 164
8.10 金融研究和实战的应用举例 165
8.10.1 基于52周最高价和最低价的交易策略 165
8.10.2 用Roll(1984)模型来估算买卖价差 166
8.10.3 用Amihud(2002)模型来估算反流动性指标 167
8.10.4 Pastor和Stambaugh(2003)流动性指标 168
8.10.5 Fama-French三因子模型 171
8.10.6 Fama-MacBeth回归模型 173
8.10.7 滚动式估算市场风险系数 174
8.10.8 在险价值简介 177
8.11 构建有效组合边界 178
8.11.1 估计方差-协方差矩阵 178
8.11.2 优化-最小化 181
8.11.3 构建一个最优投资组合 181
8.11.4 构建n只股票的有效组合边界 183
8.12 插值法简介 186
8.13 输出数据到外部文件 187
8.13.1 输出数据到一个文本文件 187
8.13.2 输出数据到一个二进制文件 188
8.13.3 从二进制文件读取数据 188
8.14 用Python分析高频数据并计算买卖价差 188
8.15 更多关于使用Spyder的信息 194
8.16 一个有用的数据集 195
8.17 小结 196
练习题 197
第9章 Black-Scholes-Merton期权定价模型 201
9.1 看涨期权和看跌期权的收益和利润/损失函数 202
9.2 欧式期权与美式期权 205
9.3 现金流、不同类型的期权、权利和责任 206
9.4 正态分布、标准正态分布和累积标准正态分布 206
9.5 不分红股票的期权定价模型 209
9.6 用于期权定价的p4f模块 210
9.7 已知分红股票的欧式期权价格 212
9.8 多种交易策略 213
9.8.1 股票多头和看涨期权空头的组合 214
9.8.2 跨式期权组合—具有同样执行价格的看涨期权和看跌期权的组合 215
9.8.3 日历套利组合 216
9.8.4 蝶式看涨期权组合 218
9.9 期权价格和输入参数之间的关系 219
9.10 与期权相关的希腊字母 219
9.11 期权平价关系及其图形表示 221
9.12 二叉树法及其图形表示 223
9.12.1 为欧式期权定价的二叉树法 229
9.12.2 为美式期权定价的二叉树法 229
9.13 套期保值策略 230
9.14 小结 231
练习题 232
第10章 Python的循环语句和隐含波动率的计算 235
10.1 隐含波动率的定义 236
10.2 for循环简介 237
10.2.1 使用for循环计算隐含波动率 237
10.2.2 欧式期权的隐含波动率 238
10.2.3 看跌期权的隐含波动率 239
10.2.4 enumerate()函数简介 240
10.3 用for循环计算内部收益率及多个内部收益率 241
10.4 while循环简介 243
10.4.1 使用键盘命令停止无限循环 244
10.4.2 使用while循环计算隐含波动率 244
10.4.3 多重嵌套的for循环 246
10.5 美式看涨期权的隐含波动率 246
10.6 测试一个程序的运行时间 247
10.7 二分搜索的原理 248
10.8 顺序访问与随机访问 249
10.9 通过循环访问数组的元素 250
10.9.1 利用for循环赋值 251
10.9.2 通过循环访问词典的元素 251
10.10 从CBOE网站下载期权数据 252
10.11 从雅虎财经网页下载期权数据 254
10.11.1 从雅虎财经网页检索不同的到期日期 254
10.11.2 从雅虎财经网页下载当前价格 255
10.12 看跌期权和看涨期权的比率及其短期趋势 255
10.13 小结 258
练习题 258
第11章 蒙特卡罗模拟和期权定价 261
11.1 产生服从标准正态分布的随机数 262
11.1.1 产生服从(高斯)正态分布的随机样本 263
11.1.2 利用种子(seed)生成相同的随机数 263
11.1.3 产生n个服从正态分布的随机数 263
11.1.4 正态分布样本的直方图 264
11.1.5 对数正态分布的图形表示 265
11.1.6 产生服从泊松分布的随机数 266
11.1.7 产生服从均匀分布的随机数 266
11.2 利用蒙特卡罗模拟计算的近似值 267
11.3 从 只股票中随机选择m只 268
11.4 可重复和不可重复的随机取样 270
11.5 年收益率的分布 271
11.6 模拟股价变化 273
11.7 图形展示期权到期日的股票价格的分布 275
11.8 寻找有效的投资组合和有效边界 276
11.8.1 寻找基于两只股票的有效组合及相关系数的影响 276
11.8.2 构建n只股票的有效边界 281
11.9 算术平均值与几何平均值 283
11.10 预测长期回报率 284
11.11 用模拟法为看涨期权定价 285
11.12 奇异期权简介 286
11.12.1 利用蒙特卡罗模拟给均价期权定价 286
11.12.2 利用蒙特卡罗模拟给障碍式期权定价 288
11.13 障碍式期权的平价关系及其图形演示 289
11.14 具有浮动执行价格的回望式期权的定价 293
11.15 使用Sobol序列来提高效率 294
11.16 小结 294
练习题 295
第12章 波动率和GARCH模型 296
12.1 传统的风险测度-标准方差 297
12.2 检验正态分布 297
12.3 下偏标准方差 300
12.4 检验两个时间段的波动率是否相等 302
12.5 利用Breusch和Pagan(1979)方法检验异方差 303
12.6 从雅虎财经网页检索期权数据 306
12.7 波动率的微笑曲线和斜度 307
12.8 波动率集聚效应的图形表示 309
12.9 ARCH模型及ARCH(1)随机过程的模拟 310
12.10 GARCH(广义ARCH)模型 312
12.10.1 模拟GARCH随机过程 312
12.10.2 采用改良的garchSim()函数模拟GARCH(p,q)模型 313
12.10.3 由Glosten、Jagannanthan和
Runkle(1993)提出的GJR_
GARCH模型简介 315
12.11 小结 319
练习题 319
深入理解金融世界:一套构建您在金融领域影响力的核心指南 如果您渴望在瞬息万变的金融市场中游刃有余,掌握驱动现代金融运作的底层逻辑,并能够自信地做出基于数据和深度洞察的决策,那么这套精心编撰的图书将是您不可或缺的伙伴。我们拒绝浮光掠影的表面陈述,致力于为您提供一个全面、系统且极具实践性的金融知识体系,帮助您不仅理解“是什么”,更能洞悉“为什么”以及“如何做”。 这套图书并非仅仅是对金融术语的堆砌,也不是简单地罗列交易策略。它的核心在于构建一套严谨的思维框架,从宏观经济的脉络到微观市场的细节,从资产定价的理论基石到风险管理的实战技巧,无不涵盖。我们旨在培养您成为一个真正意义上的金融“理解者”和“实践者”,而非被动的市场参与者。 第一卷:金融市场的基石与运作(构建您的全局观) 在这一卷中,我们将从金融市场的最基本构成元素讲起,为您的金融知识打下坚实的地基。 金融市场的多维度视角: 我们将深入剖析不同类型金融市场的特性,包括但不限于股票市场、债券市场、外汇市场、商品市场以及衍生品市场。您将了解它们的运作机制、参与者角色、交易品种以及各自的风险与收益特征。例如,我们将详细阐述股票市场的价格发现机制,介绍不同类型的股票(如普通股、优先股)及其内在价值的驱动因素;债券市场的部分,我们将深入研究国债、公司债、市政债等,并讲解收益率曲线的解读以及利率风险的管理;外汇市场的部分,我们将探索汇率的决定因素、国际收支平衡表的影响,以及不同货币政策对汇率波动的传导机制;商品市场部分,我们则会关注石油、黄金、农产品等大宗商品的供需基本面分析,以及地缘政治和天气等非经济因素的影响;衍生品市场,我们将从期权、期货、掉期等基础工具出发,讲解其对冲风险和投机的功能,以及其与标的资产价格的复杂关联。 宏观经济的脉动与金融的关联: 金融市场绝非孤立存在,它与宏观经济的景气度息息相关。本卷将带领您穿越纷繁复杂的宏观经济指标,理解它们如何影响资产价格。您将学习解读GDP、通货膨胀率、失业率、利率、货币政策、财政政策等关键指标,并理解它们之间的相互作用。我们将深入分析中央银行的货币政策工具(如公开市场操作、存款准备金率、再贴现率)如何影响流动性、信贷成本和通胀预期,以及财政政策(如政府支出、税收)如何影响总需求和经济增长。您还将了解经济周期理论,并学习如何识别不同经济周期阶段下投资机会的差异。 公司价值与财务分析: 理解一家公司的内在价值是做出明智投资决策的前提。本卷将为您揭示财务报表的奥秘,教授您如何进行深入的财务分析。您将掌握资产负债表、利润表、现金流量表这三大报表的阅读与解读技巧,学习计算关键财务比率(如盈利能力比率、偿债能力比率、营运能力比率、成长能力比率),并理解它们在评估公司健康状况和增长潜力方面的意义。我们将探讨不同行业公司的财务特征,并学习如何通过财务分析来识别潜在的投资机会和风险。 法律法规与合规性: 金融行业的健康发展离不开健全的法律法规体系。本卷将为您梳理重要的金融法律法规,包括但不限于证券法、银行法、保险法等,以及相关的监管政策。您将了解不同监管机构(如证券交易委员会、中央银行)的职能,以及合规性在金融机构运营中的重要性,从而避免潜在的法律风险。 第二卷:投资策略与资产配置(驱动您的投资决策) 在构建了扎实的理论基础后,本卷将聚焦于投资实践,为您提供一套系统性的投资策略和资产配置方法。 不同资产类别的投资策略: 从股票投资到债券投资,从房地产投资到另类投资,您将学习各种主流资产类别的投资策略。我们将深入探讨股票投资中的价值投资、成长投资、动量投资等不同风格,并讲解技术分析和基本面分析的应用。债券投资方面,我们将讲解久期管理、信用评级分析以及利率掉期等策略。对于房地产投资,我们将分析房地产市场的周期性、投资物业的类型及其收益模式。在另类投资领域,我们将初步介绍对冲基金、私募股权、风险投资等,并探讨其风险收益特征。 投资组合理论与资产配置: 构建一个多元化的投资组合是分散风险、优化收益的关键。本卷将详细介绍投资组合理论,包括马科维茨的均值-方差模型,并教您如何根据您的风险偏好、投资目标和时间 horizon 来构建最优的投资组合。您将学习如何进行资产配置,即决定在不同资产类别中分配多少比例的资金,以及如何根据市场变化动态调整您的资产配置。我们将探讨不同资产类别之间的相关性,以及如何利用相关性来降低投资组合的整体风险。 风险管理的核心理念与实操: 风险与收益并存,有效的风险管理是投资成功的基石。本卷将深入讲解各类金融风险,包括市场风险、信用风险、操作风险、流动性风险等,并为您提供实用的风险管理工具和方法。您将学习如何进行风险评估、风险度量(如VaR、CVaR),以及如何通过对冲工具(如期权、期货)来规避或降低特定风险。我们将强调风险管理并非一味地规避风险,而是在理解风险的基础上,做出最优的风险收益权衡。 行为金融学与投资心理: 人的情绪和心理往往是投资决策中的“隐形之手”。本卷将带您走进行为金融学的世界,认识常见的投资心理偏差,如羊群效应、过度自信、锚定效应、前景理论等。您将学习如何识别这些偏差,并采取措施克服它们,从而做出更理性、更符合自身利益的投资决策。我们将探讨情绪管理在投资中的重要性,以及如何在市场波动中保持冷静和纪律。 第三卷:金融工程与量化分析(驾驭数据,洞悉未来) 如果您希望更深入地理解金融模型的构建,并利用数据分析来指导决策,那么本卷将为您打开一扇新的大门。 金融衍生品定价与模型: 衍生品在现代金融市场中扮演着至关重要的角色。本卷将深入探讨期权、期货、远期等衍生品的定价模型,例如Black-Scholes模型及其变种。您将理解这些模型背后的数学原理,并学习如何应用它们来评估衍生品的公允价值,以及如何利用衍生品进行套利或风险对冲。我们将深入剖析不同类型期权的定价要素,以及影响期货价格的因素,并讲解远期合约的定价逻辑。 金融时间序列分析与预测: 金融数据的时序性是其最显著的特征之一。本卷将为您介绍金融时间序列分析的常用方法,如ARIMA模型、GARCH模型等,并教您如何利用这些模型对金融资产价格进行短期预测。您将学习如何检验时间序列的平稳性、自相关性,以及如何选择合适的模型来捕捉数据的动态特征。我们将探讨模型诊断与选择的标准,并讲解如何评估预测的准确性。 风险模型与压力测试: 在极端市场环境下,传统的风险模型可能失效。本卷将为您介绍更高级的风险模型,如因子模型,并重点讲解压力测试在评估金融机构在极端事件下的稳健性方面的作用。您将学习如何设计和执行压力测试场景,以及如何解读测试结果,从而更好地识别和管理潜在的系统性风险。我们将探讨不同类型的压力测试,以及它们在监管和内部风险管理中的应用。 量化交易策略的构建与实现: 量化交易是现代金融市场的重要趋势。本卷将为您介绍量化交易策略的设计理念,包括如何从海量数据中寻找交易信号,如何构建交易模型,以及如何进行策略回测和优化。您将了解不同类型的量化交易策略,如均值回归策略、趋势跟踪策略、统计套利策略等。我们将强调策略的逻辑性、稳健性以及风险控制的重要性,并为您提供实践性的指导。 这套图书的目标是赋能您,让您能够: 全面理解金融市场的运行逻辑: 从宏观到微观,从理论到实践,建立起一套完整的金融知识体系。 掌握有效的投资分析工具: 能够独立分析公司财务,评估资产价值,并制定科学的投资策略。 精准识别和管理金融风险: 避免潜在的陷阱,保护您的资本,并在市场波动中保持优势。 拥抱金融科技的浪潮: 理解量化分析和金融工程在现代金融中的应用,为未来的职业发展奠定基础。 做出更明智的金融决策: 无论是个人投资还是职业发展,都能更加自信和高效。 这套图书的内容严谨、逻辑清晰,并且紧密结合了金融领域的最新发展和实际应用。它将引导您逐步深入,从基础概念到高级理论,从理论模型到实践操作,让您真正成为一个驾驭金融市场的行家。无论您是金融行业的从业者,希望提升专业技能;还是对金融市场充满兴趣的投资者,渴望获得更深入的洞见;亦或是希望转入金融领域的求职者,需要系统性地构建知识框架,这套图书都将是您实现目标的理想选择。它将陪伴您在金融的道路上,不断成长,不断超越。