首页>参考读物>计算机科学与技术>综合

Python金融数据分析(原书第2版)
作者 : [新加坡] 马伟明(James Ma Weiming) 著
译者 : 张永冀 黄昊 译
出版日期 : 2021-04-09
ISBN : 978-7-111-67873-1
定价 : 89.00元
扩展资源下载
扩展信息
语种 : 简体中文
页数 : 293
开本 : 16
原书名 : Mastering Python for Finance
原出版社: Packt Publishing Ltd.
属性分类: 店面
包含CD : 无CD
绝版 : 未绝版
图书简介

本书介绍如何利用新的程序语言进行金融建模并实现复杂的数据运算。书中讲授的程序工具与数据均可以通过公开渠道获取,通过建模与研究分析,你会对整个Python生态体系有全局性的认识。大量的实例分析也会加深你对金融风险管控的认知。

图书特色

图书前言

本书将介绍如何利用新的方法进行金融建模并实现复杂的数据运算。书中讲授的工具与数据均可以通过公开渠道获取,通过建模与研究分析,你会对整个Python生态系统有全局性的认识。书中的大量实例分析会加深你对金融风险管控的认知。
本书内容从Jupyter Notebook的设置开始(所有任务均在Notebook中完成),随后讲解一系列金融分析中广泛应用的库(如TensorFlow、Keras、NumPy、SciPy、scikit-learn等),这些库可以帮助分析师做出基于数据分析的高效投资决策。书中结合常见的金融概念(如股票、期权、利率及其他金融衍生品等)讲解如何开发金融应用程序以及利用不同的算法实现风险分析。之后,你将学习如何对时间序列数据进行统计分析,了解如何搭建算法交易平台以利用高频数据设计交易策略,以及如何构建事件驱动的回溯测试系统来检验交易策略,评价不同策略的业绩表现。最后,你将探索金融前沿领域正在运用的机器学习和深度学习技术。
通过阅读本书,你将学习将Python应用于金融行业的不同范例,并执行高效的数据分析。
目标读者
对Python定量研究感兴趣的金融从业者、数据分析师和软件开发人员适合阅读本书。此外,本书对那些想使用机器学习技术扩展现有金融应用程序功能的读者也有一定的参考价值。
本书的主要内容
第1章简要介绍设置Python环境(包括Jupyter Notebook)的过程。我们将使用pandas库在Jupyter中画图,以便进行时间序列分析。
第2章介绍使用Python求解线性方程组、执行整数规划,以及将矩阵代数应用于投资组合分析的线性优化过程。
第3章介绍金融中的非线性问题,探究从非线性模型中提取信息的一些方法,学习非线性波动建模中的求根方法。SciPy的优化模块包含根函数与fsolve函数,可以帮助求解非线性模型的根。
第4章探讨如何使用三叉树模型、二叉树网格和有限差分法等进行期权估值。
第5章讨论收益率曲线的推导过程,以及利用Python实现衍生品利率的短期定价模型。
第6章介绍识别主成分的主成分分析,还有用于检验时间序列是否平稳的Dicker-Fuller检验。
第7章通过讨论波动指数,对美国股票指数和VIX数据进行分析,并通过各分指数的期权价格推测主指数价格。
第8章讨论使用代理API开发均值回归和趋势跟踪的实时交易平台。
第9章讨论如何设计和实施事件驱动的回溯测试系统,以可视化模拟交易策略的表现。
第10章介绍机器学习,研究机器学习的概念及其在金融领域中的应用,还包括一些应用机器学习来协助做出交易决策的实例。
第11章介绍如何建立使用神经网络的深度学习预测模型,通过实际操作学习TensorFlow和Keras。
读者需要具备的知识
读者需要有使用Python的经验。
下载示例代码及彩色图像
本书的示例源码及所有截图和样图,可以从http://www.packtpub.com通过个人账号下载,也可以访问华章图书官网http://www.hzbook.com,通过注册并登录个人账号下载。
除此之外,还可以在GitHub上下载代码,地址为https://github.com/PacktPublishing/ Mastering-Python-for-Finance-Second-Edition。如果代码有更新,GitHub存储库也会同步更新。
排版约定
这里是本书用到的一些排版约定。
代码体:表示数据库表名称、文件夹名称、文件名、文件扩展名、路径名、伪URL、用户输入和Twitter句柄中的代码。例如:“默认情况下,pandas的.plot()命令使用matplotlib库显示图。”
代码块设置如下:

当我们希望你注意代码块的特定部分时,相关的行或项以粗体设置:

命令行输入或输出如下所示:

表示警告或重要说明。
表示提示和技巧。

上架指导

计算机\数据科学

封底文字

Python zui初用于科学计算,它的灵活性和稳定性使其广泛应用于数学计算和软件开发,后来迅速在金融领域取得一席之地。

本书详细介绍如何利用Python进行金融建模并实现复杂的数据运算。书中讲授的工具都可以从公开渠道获取,通过建模与成功的研究案例分析,你会对整个Python生态系统有全局性的认识。此外,书中的大量实例分析会加深你对金融风险管控的认知。

通过阅读本书,你将能够:
·求解代表各种金融问题的线性模型和非线性模型。
·对DOW指数及其要素进行主成分分析。
·分析、预测和预报平稳与非平稳时间序列过程。
·创建事件驱动的回溯测试工具并度量你的策略。
·用Python构建高频算法交易平台。
·用SPX期权复制CBOT VIX指数以研究基于VIX的策略。
·执行基于回归和基于分类的机器学习任务进行预测。
·将TensorFlow和Keras用于深度神经网络体系结构。

图书目录

前言
审校者简介
第一部分 开始学习Python
第1章 Python金融分析概述2
1.1 安装Python3
1.1.1 准备一个虚拟环境3
1.1.2 运行Jupyter Notebook4
1.1.3 关于Python的其他建议5
1.2 Quandl简介6
1.3 绘制时间序列图7
1.3.1 从Quandl检索数据集7
1.3.2 绘制收盘价与成交量的关系图9
1.3.3 绘制烛台图12
1.4 对时间序列数据进行金融分析13
1.4.1 绘制收益率图13
1.4.2 绘制累积收益率图14
1.4.3 绘制直方图15
1.4.4 绘制波动率图16
1.4.5 Q-Q图17
1.4.6 下载多个时间序列数据18
1.4.7 显示相关矩阵19
1.4.8 绘制相关性图19
1.4.9 简单的移动平均线20
1.4.10 指数移动平均22
1.5 总结23
第二部分 金 融 概 念
第2章 金融中的线性问题26
2.1 资本资产定价模型与证券市场线27
2.2 套利定价理论模型30
2.3 因子模型的多元线性回归30
2.4 线性最优化32
2.4.1 安装Pulp32
2.4.2 一个用线性规划求最大值的实例32
2.4.3 线性规划的结果34
2.4.4 整数规划34
2.5 使用矩阵解线性方程组37
2.6 LU分解38
2.7 Cholesky分解40
2.8 QR分解41
2.9 使用其他矩阵代数方法求解42
2.9.1 Jacobi迭代法42
2.9.2 Gauss-Seidel迭代法44
2.10 总结45
第3章 金融中的非线性问题46
3.1 非线性建模46
3.2 非线性模型求根算法49
3.2.1 增量法50
3.2.2 二分法52
3.2.3 牛顿迭代法54
3.2.4 割线法56
3.2.5 求根法的结合使用57
3.3 利用SciPy求根58
3.3.1 求根标量函数58
3.3.2 通用非线性求解器59
3.4 总结60
第4章 期权定价的数值方法61
4.1 什么是期权61
4.2 二叉树期权定价模型62
4.3 欧式期权定价62
4.4 编写StockOption基类65
4.4.1 利用二叉树模型给欧式期权定价66
4.4.2 利用二叉树模型给美式期权定价67
4.4.3 Cox-Ross-Rubinstein模型69
4.4.4 Leisen-Reimer模型70
4.5 希腊值72
4.6 三叉树期权定价模型75
4.7 期权定价中的Lattice方法77
4.7.1 二叉树网格77
4.7.2 CRR二叉树Lattice方法期权定价模型78
4.7.3 三叉树网格79
4.8 期权定价中的有限差分法80
4.8.1 显式方法82
4.8.2 编写FiniteDifferences类82
4.8.3 隐式方法85
4.8.4 Crank-Nicolson方法88
4.8.5 奇异障碍期权定价90
4.8.6 美式期权定价的有限差分方法91
4.9 隐含波动率模型95
4.10 总结98
第5章 利率及其衍生工具的建模99
5.1 固定收益证券99
5.2 收益率曲线100
5.3 无息债券101
5.4 自助法构建收益率曲线102
5.4.1 自助法构建收益率曲线的实例102
5.4.2 编写BootstrapYield-Curve类103
5.5 远期利率106
5.6 计算到期收益率107
5.7 计算债券定价108
5.8 债券久期109
5.9 债券凸度109
5.10 短期利率模型110
5.10.1 Vasicek模型111
5.10.2 Cox-Ingersoll-Ross模型112
5.10.3 Rendleman and Bartter模型113
5.10.4 Brennan and Schwartz模型115
5.11 债券期权116
5.11.1 可赎回债券117
5.11.2 可回售债券117
5.11.3 可转换债券117
5.11.4 优先股117
5.12 可赎回债券期权定价118
5.12.1 用Vasicek模型定价无息债券118
5.12.2 提前行权定价119
5.12.3 有限差分策略迭代法121
5.12.4 可赎回债券定价的其他影响因素127
5.13 总结128
第6章 时间序列数据的统计分析129
6.1 道琼斯工业平均指数及其30种成分130
6.1.1 从Quandl 上下载Dow成分数据集130
6.1.2 关于Alpha Vantage131
6.1.3 获取Alpha Vantage API密钥131
6.1.4 安装Alpha Vantage 的Python包132
6.1.5 从Alpha Vantage下载DJIA数据集132
6.2 PCA分析133
6.2.1 特征向量和特征值的求法133
6.2.2 用PCA重新构建道琼斯指数135
6.3 平稳和非平稳时间序列136
6.3.1 平稳性与非平稳性136
6.3.2 平稳性检查136
6.3.3 非平稳过程的类型137
6.3.4 平稳过程的类型137
6.4 扩展Dickey-Fuller检验137
6.5 用趋势分析时间序列138
6.6 如何使时间序列平稳141
6.6.1 去趋势141
6.6.2 差分143
6.6.3 按季节分解144
6.6.4 ADF检验的缺陷147
6.7 预测和预报时间序列147
6.7.1 自回归积分移动平均法147
6.7.2 用网格搜索求取模型参数148
6.7.3 SARIMAX模型的拟合149
6.7.4 SARIMAX模型的预测和预报151
6.8 总结153
第三部分 实 践 操 作
第7章 对VIX的交互式金融分析156
7.1 波动率指数衍生品157
7.1.1 STOXX与欧洲期货交易所157
7.1.2 EURO STOXX 50指数157
7.1.3 VSTOXX157
7.1.4 S&P 500指数158
7.1.5 SPX期权158
7.1.6 VIX指数158
7.2 S&P 500指数和VIX指数的金融分析158
7.2.1 获取数据158
7.2.2 执行分析160
7.2.3 SPX与VIX的相关性164
7.3 计算VIX指数166
7.3.1 导入SPX期权数据166
7.3.2 查找近期期权和远期期权170
7.3.3 计算所需的分钟数172
7.3.4 计算远期SPX指数水平174
7.3.5 寻找所需的远期行权价格175
7.3.6 确定行权价格限175
7.3.7 按行权价格将贡献列表176
7.3.8 计算波动率180
7.3.9 计算远期期权波动率180
7.3.10 计算VIX指数181
7.3.11 计算多个VIX指数181
7.3.12 比较结果183
7.4 总结184
第8章 构建算法交易平台186
8.1 什么是算法交易186
8.1.1 具有公共API的交易平台187
8.1.2 选择一种编程语言188
8.1.3 系统功能188
8.2 建立算法交易平台189
8.2.1 设计代理接口189
8.2.2 需要的Python库190
8.2.3 编写事件驱动代理类190
8.2.4 存储价格事件处理程序191
8.2.5 存储订单事件处理程序191
8.2.6 存储仓位事件处理程序191
8.2.7 声明一个获取价格的抽象函数192
8.2.8 声明流式价格的抽象函数192
8.2.9 声明发送订单的抽象函数192
8.2.10 实现代理类192
8.3 建立均值回归算法交易系统198
8.3.1 设计均值回归算法198
8.3.2 实现均值回归交易类198
8.3.3 添加事件监听器200
8.3.4 编写均值回归信号生成器201
8.3.5 运行交易系统204
8.4 建立趋势跟踪交易平台205
8.4.1 趋势跟踪算法的设计205
8.4.2 编写趋势跟踪交易类206
8.4.3 编写趋势跟踪信号发生器206
8.4.4 运行趋势跟踪交易系统207
8.5 用VaR技术实现风险管理208
8.6 总结211
第9章 回溯测试系统的实现213
9.1 回溯测试概述213
9.1.1 回溯测试的缺陷214
9.1.2 事件驱动回溯测试系统214
9.2 设计并实施回溯测试系统215
9.2.1 TickData类216
9.2.2 MarketData类216
9.2.3 MarketDataSource类216
9.2.4 Order类218
9.2.5 Position类218
9.2.6 Strategy类219
9.2.7 MeanRevertingStrategy类220
9.2.8 BacktestEngine类222
9.2.9 运行回溯测试系统225
9.2.10 多策略运行回溯测试系统227
9.2.11 改进回溯测试系统227
9.3 回溯测试模型的10个注意事项228
9.3.1 模型的资源限制228
9.3.2 模型评价标准228
9.3.3 估计回溯测试参数的质量229
9.3.4 应对模型风险229
9.3.5 样本数据回测的性能229
9.3.6 解决回溯测试的常见缺陷229
9.3.7 常识错误230
9.3.8 理解模型环境230
9.3.9 数据准确性230
9.3.10 数据挖掘230
9.4 回溯测试中的算法选择230
9.4.1 k-均值聚类算法230
9.4.2 KNN机器学习算法231
9.4.3 分类回归树分析231
9.4.4 2k析因设计231
9.4.5 遗传算法231
9.5 总结232
第10章 金融中的机器学习233
10.1 机器学习简介233
10.1.1 机器学习在金融中的应用234
10.1.2 监督学习和无监督学习235
10.1.3 监督机器学习中的分类与回归236
10.1.4 过拟合和欠拟合模型236
10.1.5 特征工程236
10.1.6 机器学习的scikit-learn库237
10.2 用单资产回归模型预测价格237
10.2.1 OLS线性回归238
10.2.2 准备自变量和因变量238
10.2.3 编写线性回归模型239
10.2.4 测量预测性能的风险度量240
10.2.5 岭回归243
10.2.6 其他回归模型244
10.2.7 结论245
10.3 用跨资产动量模型预测收益245
10.3.1 准备自变量245
10.3.2 准备因变量246
10.3.3 多资产线性回归模型247
10.3.4 决策树的集成248
10.4 基于分类的机器学习预测趋势250
10.4.1 准备因变量250
10.4.2 准备多资产数据集作为输入变量250
10.4.3 逻辑回归251
10.4.4 基于分类预测的风险度量252
10.4.5 支持向量分类器255
10.4.6 其他类型的分类器256
10.5 机器学习算法的应用结论257
10.6 总结257
第11章 金融中的深度学习259
11.1 浅谈深度学习259
11.1.1 什么是深度学习260
11.1.2 人工神经元260
11.1.3 激活函数261
11.1.4 损失函数261
11.1.5 优化器262
11.1.6 网络结构262
11.1.7 TensorFlow和其他深度学习框架263
11.1.8 什么是张量263
11.2 基于TensorFlow的深度学习价格预测模型263
11.2.1 特征化模型263
11.2.2 需要的库264
11.2.3 下载数据集264
11.2.4 缩放和拆分数据267
11.2.5 基于TensorFlow构建人工神经网络268
11.2.6 绘制预测值和实际值271
11.3 基于Keras的信用卡支付违约预测272
11.3.1 Keras简介273
11.3.2 安装Keras273
11.3.3 获取数据集273
11.3.4 缩放和拆分数据274
11.3.5 基于Keras的深度神经网络设计275
11.3.6 度量模型的性能277
11.3.7 显示Keras历史记录中的事件279
11.4 总结281

教学资源推荐
作者: 张建忠 徐敬东 编著
作者: (美)Jeffrey A. Hoffer Mary B. Prescott
作者: 朱晓玲、侯整风、丁凉 编著
参考读物推荐
作者: (美) John Mongan Eric Giguère Noah Kindler 著
作者: 赵敏 宁振波 著