量化交易丛书 Python量化交易 策略、技巧与实战
作者: (中国)张彦桥
出版时间: 2019年版
内容简介
本书首先讲解量化交易的基础知识,即量化交易的定义、历史、主要内容及与传统交易的区别、JoinQuant(聚宽)量化交易平台;然后讲解量化交易开发语言Python,即讲解Python语言的开发环境、基本语法、基本流程控制、特征数据类型、函数及应用、面向对象程序设计;接着讲解如何利用Python语言编写量化策略、如何回测、编写量化策略所需要常用函数、因子分析、量化交易策略实例;最后讲解量化选股的技巧、量化择时的技巧及算法交易。在讲解过程中即考虑读者的学习习惯,又通过具体实例剖析讲解量化实际交易过程中的热点问题、关键问题及种种难题。
目录
目 录
第1章 量化交易概述\t1
1.1 初识量化交易\t2
1.1.1 什么是量化交易\t2
1.1.2 量化交易与算法交易\t2
1.1.3 量化交易与程序化交易\t2
1.1.4 量化交易与技术分析\t3
1.1.5 量化交易与人工交易\t3
1.1.6 为什么要学习量化交易\t4
1.2 量化交易的特点\t5
1.3 量化交易的应用\t6
1.3.1 投资品种选择\t7
1.3.2 投资时机选择\t7
1.3.3 算法交易\t7
1.3.4 各种套利交易\t9
1.3.5 资产配置\t10
1.4 量化交易的故事\t11
1.4.1 朱尔斯?雷格纳特的量化交易故事\t11
1.4.2 爱德华?索普的量化交易故事\t12
1.4.3 詹姆斯?西蒙斯的量化交易故事\t13
1.5 量化交易的历史\t14
1.5.1 国外量化交易的历史\t14
1.5.2 国内量化交易的历史\t15
1.6 量化交易的注意事项\t15
第2章 量化交易平台\t17
2.1 初识JoinQuant聚宽量化交易平台\t18
2.2 量化交易平台的功能\t18
2.2.1 高质量数据和强大的研究平台\t18
2.2.2 顶级回测体验和顶尖模拟交易\t19
2.3 账户的注册、登录及量化交易策略的创建\t19
2.3.1 量化交易平台账户的注册\t19
2.3.2 量化交易平台账户的登录\t20
2.3.3 量化交易策略的创建\t22
2.4 量化交易策略的选股技巧\t24
2.4.1 量化选股的基本设置\t24
2.4.2 选股指标\t27
2.5 量化交易策略的买卖条件模型\t31
2.5.1 轮动模型\t32
2.5.2 择时模型\t33
2.6 量化交易策略的风险控制技巧\t35
2.6.1 止盈、止损指标\t35
2.6.2 其他指标\t36
2.7 量化交易策略的其他参数设置技巧\t36
2.8 编写Python代码来创建量化交易策略\t38
2.9 量化交易策略的回测\t39
2.10 量化交易策略的模拟交易\t41
2.10.1 新建模拟交易并运行\t41
2.10.2 查看模拟交易\t42
2.10.3 绑定微信\t45
2.11 量化交易策略的实盘交易\t46
第3章 Python开发环境及编程基础\t49
3.1 初识Python\t50
3.1.1 Python的发展历程\t50
3.1.2 Python的特点\t50
3.2 Python开发环境及配置\t51
3.2.1 Python的下载和安装\t51
3.2.2 Python的环境变量配置\t53
3.3 Python程序的编写\t57
3.4 利用量化交易平台编写Python程序\t61
3.4.1 初识IPython Notebook研究平台\t62
3.4.2 利用IPython Notebook编写Python程序\t66
3.5 Python的基本数据类型\t67
3.5.1 数值类型\t67
3.5.2 字符串\t69
3.6 Python的变量与赋值\t73
3.6.1 变量命名规则\t73
3.6.2 变量的赋值\t74
3.7 Python的基本运算\t74
3.7.1 算术运算\t75
3.7.2 赋值运算\t76
3.7.3 位运算\t77
3.8 Python的代码格式\t78
3.8.1 代码缩进\t78
3.8.2 代码注释\t79
3.8.3 空行\t80
3.8.4 同一行显示多条语句\t80
第4章 Python流程控制与特征数据类型\t81
4.1 Python的选择结构\t82
4.1.1 关系运算\t82
4.1.2 逻辑运算\t83
4.1.3 if语句\t84
4.1.4 嵌套if语句\t86
4.2 Python的循环结构\t87
4.2.1 while循环\t87
4.2.2 while循环使用else语句\t88
4.2.3 无限循环\t89
4.2.4 for循环\t90
4.2.5 在for循环中使用range()函数\t90
4.2.6 break语句\t92
4.2.7 continue语句\t92
4.2.8 pass语句\t93
4.3 Python的特征数据类型\t94
4.3.1 列表\t94
4.3.2 元组\t97
4.3.3 字典\t99
4.3.4 集合\t100
第5章 Python函数与面向对象\t104
5.1 Python内置函数\t105
5.1.1 数学函数\t105
5.1.2 随机数函数\t106
5.1.3 三角函数\t108
5.1.4 字符串函数\t110
5.2 用户自定义函数\t113
5.2.1 自定义函数的定义\t113
5.2.2 调用自定义函数\t114
5.2.3 函数的参数传递\t116
5.2.4 函数的参数类型\t118
5.2.5 匿名函数\t123
5.3 Python的面向对象\t123
5.3.1 面向对象概念\t124
5.3.2 类与实例\t124
5.3.3 模块的引用\t127
5.3.4 包\t127
5.4 变量作用域及类型\t130
5.4.1 变量作用域\t130
5.4.2 全局变量和局部变量\t131
5.4.3 global和nonlocal关键字\t132
第6章 Python量化交易策略的常用库\t135
6.1 Numpy库\t136
6.1.1 ndarray数组基础\t136
6.1.2 Numpy的矩阵对象\t148
6.2 Pandas库\t149
6.2.1 一维数组Series\t149
6.2.2 二维数组DataFrame\t150
6.2.3 三维数组Panel\t160
第7章 Python量化交易策略的常用函数与对象\t163
7.1 Python量化交易策略的一般结构\t164
7.1.1 初始化函数\t165
7.1.2 开盘前运行函数\t166
7.1.3 开盘时运行函数\t166
7.1.4 收盘后运行函数\t167
7.2 Python量化交易策略的设置函数\t167
7.2.1 设置基准函数\t168
7.2.2 设置佣金/印花税函数\t168
7.2.3 设置滑点函数\t169
7.2.4 设置动态复权(真实价格)模式函数\t170
7.2.5 设置成交量比例函数\t170
7.2.6 设置是否开启盘口撮合模式函数\t171
7.2.7 设置要操作的股票池函数\t171
7.3 Python量化交易策略的定时函数\t171
7.3.1 定时函数的定义及分类\t172
7.3.2 定时函数各项参数的意义\t172
7.3.3 定时函数的注意事项\t173
7.3.4 定时函数的实例\t174
7.4 Python量化交易策略的下单函数\t174
7.4.1 按股数下单函数\t174
7.4.2 目标股数下单函数\t175
7.4.3 按价值下单函数\t175
7.4.4 目标价值下单函数\t176
7.4.5 撤单函数\t176
7.4.6 获取未完成订单函数\t177
7.4.7 获取订单信息函数\t177
7.4.8 获取成交信息函数\t178
7.5 Python量化交易策略的日志log\t178
7.5.1 设定log级别\t178
7.5.2 log.info\t179
7.6 Python量化交易策略的常用对象\t179
7.6.1 Order对象\t179
7.6.2 全局对象g\t180
7.6.3 Trade对象\t180
7.6.4 tick对象\t180
7.6.5 Context对象\t181
7.6.6 Position对象\t182
7.6.7 SubPortfolio对象\t183
7.6.8 Portfolio对象\t184
7.6.9 SecurityUnitData对象\t184
第8章 Python量化交易策略的获取数据函数运用技巧\t186
8.1 history()函数的运用技巧\t187
8.1.1 各项参数的意义\t187
8.1.2 history()函数的应用实例\t188
8.2 attribute_history ()函数的运用技巧\t191
8.3 get_fundamentals ()函数的运用技巧\t192
8.3.1 各项参数的意义\t192
8.3.2 get_fundamentals ()函数的应用实例\t193
8.4 get_fundamentals_continuously ()函数的运用技巧\t198
8.5 get_current_data ()函数的运用技巧\t199
8.6 get_index_stocks ()函数的运用技巧\t200
8.6.1 各项参数的意义\t200
8.6.2 get_index_stocks ()函数的应用实例\t201
8.7 get_industry_stocks()函数的运用技巧\t202
8.8 get_concept_stocks ()函数的运用技巧\t203
8.9 get_all_securities()函数的运用技巧\t205
8.9.1 各项参数的意义\t205
8.9.2 get_all_securities()函数的应用实例\t206
8.10 get_security_info ()函数的运用技巧\t207
8.11 get_billboard_list ()函数的运用技巧\t208
8.11.1 各项参数的意义\t208
8.11.2 get_billboard_list()函数的应用实例\t209
8.12 get_locked_shares ()函数的运用技巧\t210
第9章 Python量化交易策略的基本面选股技巧\t211
9.1 量化选股概述\t212
9.2 成长类因子选股技巧\t212
9.2.1 营业收入同比增长率选股技巧\t212
9.2.2 营业收入环比增长率选股技巧\t214
9.2.3 净利润同比增长率选股技巧\t215
9.2.4 净利润环比增长率选股技巧\t216
9.2.5 营业利润率选股技巧\t217
9.2.6 销售净利率选股技巧\t217
9.2.7 销售毛利率选股技巧\t218
9.3 规模类因子选股技巧\t220
9.3.1 总市值选股技巧\t220
9.3.2 流通市值选股技巧\t221
9.3.3 总股本选股技巧\t222
9.3.4 流通股本选股技巧\t222
9.4 价值类因子选股技巧\t223
9.4.1 市净率选股技巧\t223
9.4.2 市销率选股技巧\t224
9.4.3 市现率选股技巧\t225
9.4.4 动态市盈率选股技巧\t226
9.4.5 静态市盈率选股技巧\t227
9.5 质量类因子选股技巧\t228
9.5.1 净资产收益率选股技巧\t228
9.5.2 总资产净利率选股技巧\t229
9.6 基本面多因子量化选股\t230
第10章 Python量化交易策略的技术指标函数运用技巧\t232
10.1 量化择时概述\t233
10.2 趋向指标函数运用技巧\t234
10.2.1 MACD指标函数\t234
10.2.2 EMV指标函数\t235
10.2.3 UOS指标函数\t237
10.2.4 GDX指标函数\t238
10.2.5 DMA指标函数\t239
10.2.6 JS指标函数\t240
10.2.7 MA指标函数\t241
10.2.8 EXPMA指标函数\t242
10.2.9 VMA指标函数\t243
10.3 反趋向指标函数运用技巧\t245
10.3.1 KD指标函数\t245
10.3.2 MFI指标函数\t246
10.3.3 RSI指标函数\t247
10.3.4 OSC指标函数\t248
10.3.5 WR指标函数\t249
10.3.6 CCI指标函数\t250
10.4 压力支撑指标函数运用技巧\t251
10.4.1 BOLL指标函数\t251
10.4.2 MIKE指标函数\t253
10.4.3 XS指标函数\t254
10.5 量价指标函数运用技巧\t256
10.5.1 OBV指标函数\t256
10.5.2 VOL指标函数\t257
10.5.3 VR指标函数\t258
10.5.4 MASS指标函数\t259
第11章 Python量化交易策略的回测方法与技巧\t261
11.1 量化交易策略回测的流程\t262
11.2 利用Python编写MACD指标量化交易策略\t262
11.2.1 量化交易策略的编辑页面\t262
11.2.2 编写初始化函数\t265
11.2.3 编写单位时间调用的函数\t265
11.3 设置MACD指标量化交易策略的回测参数\t266
11.4 MACD指标量化交易策略的回测详情\t269
11.5 MACD指标量化交易策略的风险指标\t272
11.5.1 Alpha(阿尔法)\t272
11.5.2 Beta(贝塔)\t273
11.5.3 Sharpe(夏普比率)\t274
11.5.4 Sortino(索提诺比率)\t275
11.5.5 Information Ratio(信息比率)\t276
11.5.6 Volatility(策略波动率)\t277
11.5.7 Benchmark Volatility(基准波动率)\t278
11.5.8 Max Drawdown(最大回撤)\t279
第12章 Python量化交易策略的机器算法运用技巧\t280
12.1 随机森林在量化交易中的运用技巧\t281
12.1.1 随机森林的构建\t281
12.1.2 随机森林的优缺点\t281
12.1.3 随机森林在量化交易中的运用实例\t282
12.2 支持向量机(SVM)在量化交易中的运用技巧\t284
12.2.1 什么是支持向量机(SVM)\t285
12.2.2 支持向量机(SVM)的工作原理\t285
12.2.3 核函数\t287
12.2.4 支持向量机(SVM)的优点\t288
12.2.5 支持向量机(SVM)的缺点\t288
12.2.6 支持向量机(SVM)在量化交易中的运用实例\t289
12.3 朴素贝叶斯在量化交易中的运用技巧\t292
12.3.1 什么是朴素贝叶斯\t292
12.3.2 朴素贝叶斯的算法思想\t292
12.3.3 朴素贝叶斯的算法步骤\t292
12.3.4 朴素贝叶斯的优缺点\t293
12.3.5 朴素贝叶斯在量化交易中的运用实例\t293
12.4 神经网络在量化交易中的运用技巧\t296
12.4.1 什么是人工神经网络\t296
12.4.2 大脑中的神经元细胞和神经元细胞网络\t297
12.4.3 人工神经网络的基本特征\t298
12.4.4 人工神经网络的特点\t299
12.4.5 人工神经网络的算法\t299
12.4.6 人工神经网络在量化交易中的运用实例\t301
第13章 Python量化交易策略的因子分析运用技巧\t305
13.1 因子的类型及因子分析的作用\t306
13.2 因子分析的Python代码\t306
13.2.1 因子分析中的三个变量\t306
13.2.2 因子分析中可以使用的基础因子\t307
13.2.3 calc的参数及返回值\t308
13.3 因子的新建及常见分析\t308
13.3.1 因子的新建\t308
13.3.2 因子的收益分析\t311
13.3.3 因子的IC分析\t314
13.3.4 因子的换手分析\t315
13.4 因子在研究和回测中的使用\t317
13.5 基本面因子运用实例\t319
第14章 Python量化交易策略实战案例\t323
14.1 MA均线量化交易策略实战案例\t324
14.1.1 编写初始化函数\t324
14.1.2 编写单位时间调用的函数\t326
14.1.3 MA均线量化交易策略的回测\t327
14.2 多均线量化交易策略实战案例\t327
14.2.1 编写初始化函数\t328
14.2.2 编写交易程序函数\t328
14.2.3 多均线量化交易策略的回测\t330
14.3 MACD指标量化交易策略实战案例\t330
14.3.1 编写初始化函数\t331
14.3.2 编写单位时间调用的函数\t331
14.3.3 MACD指标量化交易策略的回测\t332
14.4 KD指标量化交易策略实战案例\t333
14.4.1 编写初始化函数\t333
14.4.2 编写开盘前运行函数\t334
14.4.3 编写开盘时运行函数\t334
14.4.4 编写收盘后运行函数\t335
14.4.5 KD指标量化交易策略的回测\t335
14.5 BOLL指标量化交易策略实战案例\t336
14.5.1 编写初始化函数\t336
14.5.2 编写开盘前运行函数\t337
14.5.3 编写开盘时运行函数\t337
14.5.4 编写收盘后运行函数\t338
14.5.5 BOLL指标量化交易策略的回测\t339
14.6 多股票持仓量化交易策略实战案例\t339
14.6.1 编写初始化函数\t340
14.6.2 编写单位时间调用的函数\t340
14.6.3 多股票持仓量化交易策略的回测\t341
14.7 医药股轮动量化交易策略实战案例\t342
14.7.1 编写初始化函数\t342
14.7.2 编写选股函数\t342
14.7.3 编写交易函数\t343
14.7.4 医药股轮动量化交易策略的回测\t343
14.8 小市值股票量化交易策略实战案例\t344
14.8.1 编写初始化函数\t344
14.8.2 编写选股函数\t345
14.8.3 编写过滤停牌股票函数\t345
14.8.4 编写交易函数\t346
14.8.5 小市值股票量化交易策略的回测\t346
14.9 机器算法多因子量化交易策略实战案例\t347
14.9.1 编写初始化函数\t347
14.9.2 编写自定义的交易函数\t348
14.9.3 机器算法多因子量化交易策略的回测\t353