Python金融大数据分析 第2版
作者: (德)伊夫 希尔皮斯科 著 姚军 译
出版时间:2020年版
内容简介
《Python金融大数据分析 第2版》分为5部分,共21章。第1部分介绍了Python在金融学中的应用,其内容涵盖了Python用于金融行业的原因、Python的基础架构和工具,以及Python在计量金融学中的一些具体入门实例;第2部分介绍了Python的基础知识以及Python中非常有名的库NumPy和pandas工具集,还介绍了面向对象编程;第3部分介绍金融数据科学的相关基本技术和方法,包括数据可视化、输入/输出操作和数学中与金融相关的知识等;第4部分介绍Python在算法交易上的应用,重点介绍常见算法,包括机器学习、深度神经网络等人工智能相关算法;第5部分讲解基于蒙特卡洛模拟开发期权及衍生品定价的应用,其内容涵盖了估值框架的介绍、金融模型的模拟、衍生品的估值、投资组合的估值等知识。 《Python金融大数据分析 第2版》本书适合对使用Python进行大数据分析、处理感兴趣的金融行业开发人员阅读。
目录
目录
第 1部分 Python与金融
第 1章 为什么将Python用于金融 3
1.1 Python编程语言 3
1.1.1 Python简史 5
1.1.2 Python生态系统 6
1.1.3 Python用户谱系 7
1.1.4 科学栈 7
1.2 金融中的科技 8
1.2.1 科技投入 9
1.2.2 作为业务引擎的科技 9
1.2.3 作为进入门槛的科技和人才 10
1.2.4 不断提高的速度、频率和数据量 10
1.2.5 实时分析的兴起 11
1.3 用于金融的Python 12
1.3.1 金融和Python语法 12
1.3.2 Python的效率和生产率 16
1.3.3 从原型化到生产 20
1.4 数据驱动和人工智能优先的金融学 21
1.4.1 数据驱动金融学 21
1.4.2 人工智能优先金融学 24
1.5 结语 26
1.6 延伸阅读 27
第 2章 Python基础架构 29
2.1 作为包管理器使用的conda 31
2.1.1 安装Miniconda 31
2.1.2 conda基本操作 33
2.2 作为虚拟环境管理器的conda 37
2.3 使用Docker容器 41
2.3.1 Docker镜像和容器 41
2.3.2 构建Ubuntu和Python Docker镜像 42
2.4 使用云实例 46
2.4.1 RSA公钥和私钥 47
2.4.2 Jupyter Notebook配置文件 48
2.4.3 Python和Jupyter Notebook安装脚本 49
2.4.4 协调Droplet设置的脚本 51
2.5 结语 52
2.6 延伸阅读 53
第 2部分 掌握基础知识
第3章 数据类型与结构 57
3.1 基本数据类型 58
3.1.1 整数 58
3.1.2 浮点数 59
3.1.3 布尔值 61
3.1.4 字符串 65
3.1.5 题外话:打印和字符串替换 66
3.1.6 题外话:正则表达式 69
3.2 基本数据结构 71
3.2.1 元组 71
3.2.2 列表 72
3.2.3 题外话:控制结构 74
3.2.4 题外话:函数式编程 75
3.2.5 字典 76
3.2.6 集合 78
3.3 结语 79
3.4 延伸阅读 79
第4章 用NumPy进行数值计算 81
4.1 数据数组 82
4.1.1 用Python列表形成数组 82
4.1.2 Python array类 84
4.2 常规NumPy数组 86
4.2.1 基础知识 86
4.2.2 多维数组 89
4.2.3 元信息 93
4.2.4 改变组成与大小 93
4.2.5 布尔数组 97
4.2.6 速度对比 99
4.3 NumPy结构数组 100
4.4 代码向量化 102
4.4.1 基本向量化 102
4.4.2 内存布局 105
4.5 结语 107
4.6 延伸阅读 108
第5章 pandas数据分析 109
5.1 DataFrame类 110
5.1.1 使用DataFrame类的第 一步 110
5.1.2 使用DataFrame类的第二步 114
5.2 基本分析 118
5.3 基本可视化 122
5.4 Series类 124
5.5 GroupBy操作 126
5.6 复杂选择 128
5.7 联接、连接和合并 131
5.7.1 联接 132
5.7.2 连接 133
5.7.3 合并 135
5.8 性能特征 137
5.9 结语 139
5.10 延伸阅读 140
第6章 面向对象编程 141
6.1 Python对象简介 145
6.1.1 int 145
6.1.2 list 146
6.1.3 ndarray 146
6.1.4 DataFrame 148
6.2 Python类基础知识 149
6.3 Python数据模型 154
6.4 Vector类 158
6.5 结语 159
6.6 延伸阅读 159
第3部分 金融数据科学
第7章 数据可视化 163
7.1 静态2D绘图 164
7.1.1 一维数据集 164
7.1.2 二维数据集 170
7.1.3 其他绘图样式 177
7.2 静态3D绘图 184
7.3 交互式2D绘图 188
7.3.1 基本图表 188
7.3.2 金融图表 192
7.4 结语 196
7.5 延伸阅读 196
第8章 金融时间序列 197
8.1 金融数据 198
8.1.1 数据导入 198
8.1.2 汇总统计 201
8.1.3 随时间推移的变化 203
8.1.4 重新采样 207
8.2 滚动统计 209
8.2.1 概述 209
8.2.2 技术分析示例 211
8.3 相关分析 213
8.3.1 数据 213
8.3.2 对数回报率 214
8.3.3 OLS回归 216
8.3.4 相关 217
8.4 高频数据 218
8.5 结语 220
8.6 延伸阅读 220
第9章 输入/输出操作 221
9.1 Python基本I/O 222
9.1.1 将对象写入磁盘 222
9.1.2 读取和写入文本文件 225
9.1.3 使用SQL数据库 229
9.1.4 读写NumPy数组 232
9.2 pandas的I/O 234
9.2.1 使用SQL数据库 235
9.2.2 从SQL到pandas 237
9.2.3 使用CSV文件 239
9.2.4 使用Excel文件 240
9.3 PyTables的I/O 242
9.3.1 使用表 242
9.3.2 使用压缩表 250
9.3.3 使用数组 252
9.3.4 内存外计算 253
9.4 TsTables的I/O 256
9.4.1 样板数据 257
9.4.2 数据存储 258
9.4.3 数据检索 259
9.5 结语 261
9.6 延伸阅读 262
第 10章 高性能的Python 265
10.1 循环 266
10.1.1 Python 266
10.1.2 NumPy 267
10.1.3 Numba 268
10.1.4 Cython 269
10.2 算法 271
10.2.1 质数 271
10.2.2 斐波那契数 275
10.2.3 π 279
10.3 二叉树 283
10.3.1 Python 283
10.3.2 NumPy 285
10.3.3 Numba 286
10.3.4 Cython 287
10.4 蒙特卡洛模拟 288
10.4.1 Python 289
10.4.2 NumPy 291
10.4.3 Numba 291
10.4.4 Cython 292
10.4.5 多进程 293
10.5 pandas递归算法 294
10.5.1 Python 294
10.5.2 Numba 296
10.5.3 Cython 296
10.6 结语 297
10.7 延伸阅读 298
第 11章 数学工具 299
11.1 逼近法 299
11.1.1 回归 301
11.1.2 插值 310
11.2 凸优化 314
11.2.1 全局优化 315
11.2.2 局部优化 317
11.2.3 有约束优化 318
11.3 积分 320
11.3.1 数值积分 321
11.3.2 通过模拟求取积分 322
11.4 符号计算 323
11.4.1 基础知识 323
11.4.2 方程式 325
11.4.3 积分与微分 325
11.4.4 微分 326
11.5 结语 328
11.6 延伸阅读 328
第 12章 推断统计学 331
12.1 随机数 332
12.2 模拟 338
12.2.1 随机变量 338
12.2.2 随机过程 341
12.2.3 方差缩减 356
12.3 估值 359
12.3.1 欧式期权 359
12.3.2 美式期权 364
12.4 风险测度 367
12.4.1 风险价值 367
12.4.2 信用价值调整 371
12.5 Python脚本 374
12.6 结语 377
12.7 延伸阅读 377
第 13章 统计学 379
13.1 正态性检验 380
13.1.1 基准案例 381
13.1.2 真实数据 390
13.2 投资组合优化 396
13.2.1 数据 396
13.2.2 基本理论 398
13.2.3 最优投资组合 401
13.2.4 有效边界 404
13.2.5 资本市场线 405
13.3 贝叶斯统计 408
13.3.1 贝叶斯公式 409
13.3.2 贝叶斯回归 410
13.3.3 两种金融工具 414
13.3.4 随时更新估算值 418
13.4 机器学习 423
13.4.1 无监督学习 423
13.4.2 有监督学习 426
13.5 结语 441
13.6 延伸阅读 441
第4部分 算法交易
第 14章 FXCM交易平台 445
14.1 入门 446
14.2 读取数据 447
14.2.1 读取分笔交易数据 447
14.2.2 读取K线(蜡烛图)数据 449
14.3 使用API 451
14.3.1 读取历史数据 452
14.3.2 读取流数据 454
14.3.3 下单 455
14.3.4 账户信息 457
14.4 结语 457
14.5 延伸阅读 458
第 15章 交易策略 459
15.1 简单移动平均数 460
15.1.1 数据导入 460
15.1.2 交易策略 461
15.1.3 向量化事后检验 463
15.1.4 优化 465
15.2 随机游走假设 467
15.3 线性OLS回归 469
15.3.1 数据 470
15.3.2 回归 472
15.4 聚类 474
15.5 频率方法 476
15.6 分类 479
15.6.1 两个二元特征 479
15.6.2 5个二元特征 480
15.6.3 5个数字化特征 482
15.6.4 顺序训练-测试分离 484
15.6.5 随机训练-测试分离 485
15.7 深度神经网络 486
15.7.1 用scikit-learn实现DNN 486
15.7.2 用TensorFlow实现DNN 489
15.8 结语 492
15.9 延伸阅读 493
第 16章 自动化交易 495
16.1 资本管理 496
16.1.1 二项设定中的凯利标准 496
16.1.2 用于股票及指数的凯利标准 500
16.2 基于ML的交易策略 505
16.2.1 向量化事后检验 505
16.2.2 最优杠杆 510
16.2.3 风险分析 512
16.2.4 持久化模型对象 515
16.3 在线算法 516
16.4 基础设施与部署 518
16.5 日志与监控 519
16.6 结语 521
16.7 Python脚本 522
16.7.1 自动化交易策略 522
16.7.2 策略监控 525
16.8 延伸阅读 525
第5部分 衍生品分析
第 17章 估值框架 529
17.1 资产定价基本定理 529
17.1.1 简单示例 530
17.1.2 一般结果 530
17.2 风险中立折现 532
17.2.1 日期建模与处理 532
17.2.2 恒定短期利率 534
17.3 市场环境 536
17.4 结语 539
17.5 延伸阅读 540
第 18章 金融模型的模拟 541
18.1 随机数生成 542
18.2 通用模拟类 544
18.3 几何布朗运动 548
18.3.1 模拟类 548
18.3.2 用例 550
18.4 跳跃扩散 553
18.4.1 模拟类 553
18.4.2 用例 556
18.5 平方根扩散 557
18.5.1 模拟类 558
18.5.2 用例 560
18.6 结语 561
18.7 延伸阅读 563
第 19章 衍生品估值 565
19.1 通用估值类 566
19.2 欧式行权 570
19.2.1 估值类 570
19.2.2 用例 572
19.3 美式行权 577
19.3.1 最小二乘蒙特卡洛方法 577
19.3.2 估值类 578
19.3.3 用例 580
19.4 结语 583
19.5 延伸阅读 585
第 20章 投资组合估值 587
20.1 衍生品头寸 588
20.1.1 类 588
20.1.2 用例 590
20.2 衍生品投资组合 592
20.2.1 类 592
20.2.2 用例 597
20.3 结语 604
20.4 延伸阅读 605
第 21章 基于市场的估值 607
21.1 期权数据 608
21.2 模型检验 610
21.2.1 相关市场数据 611
21.2.2 期权建模 612
21.2.3 检验过程 615
21.3 投资组合估值 620
21.3.1 建立期权头寸模型 621
21.3.2 期权投资组合 622
21.4 Python代码 623
21.5 结语 625
21.6 延伸阅读 626
附录A 日期与时间 627
A.1 Python 627
A.2 NumPy 633
A.3 pandas 636
附录B BSM期权类 641
B.1 类定义 641
B.2 类的使用 643