猜你喜欢
Python量化交易:策略、技巧与实战

Python量化交易:策略、技巧与实战

书籍作者:张彦桥 ISBN:9787121370908
书籍语言:简体中文 连载状态:全集
电子书格式:pdf,txt,epub,mobi,azw3 下载次数:3282
创建日期:2021-02-14 发布日期:2021-02-14
运行环境:PC/Windows/Linux/Mac/IOS/iPhone/iPad/Kindle/Android/安卓/平板
内容简介

本书首先讲解量化交易的基础知识,即量化交易的定义、历史、主要内容及与传统交易的区别、JoinQuant(聚宽)量化交易平台;然后讲解量化交易开发语言Python,即讲解Python语言的开发环境、基本语法、基本流程控制、特征数据类型、函数及应用、面向对象程序设计;接着讲解如何利用Python语言编写量化策略、如何回测、编写量化策略所需要常用函数、因子分析、量化交易策略实例;最后讲解量化选股的技巧、量化择时的技巧及算法交易。

在讲解过程中即考虑读者的学习习惯,又通过具体实例剖析讲解量化实际交易过程中的热点问题、关键问题及种种难题。


作者简介

张彦桥,现任青岛东胜伟业软件科技有限公司项目开发部经理,具有8年以上Python、Java项目开发经验。精通Visual Basic、JavaScript、PHP 、C、C#、Ruby等编程语言,熟悉多种开源技术,喜欢GET新技能,曾带领团队完成过多个中、小型项目开发,在量化交易、数据安全、云计算、机器学习、物联网、区块链等领域拥有丰富的经验。

编辑推荐
适读人群 :本书适用于各类投资者,如股民、期民、职业操盘手和专业金融评论人士。

实用性:本书首先着眼于量化实战应用,然后探讨深层次的技巧问题。

详尽的例子:本书每一章都附有大量的例子,通过这些例子介绍知识点。每个例子都是作者精心选择的,投资者反复练习,举一反三,就可以真正掌握操盘技巧,从而学以致用。

全面性:本书包含了量化交易的所有知识,分别是基础知识、量化交易平台、量化交易开发语言Python、量化策略的常用库、常用函数与对象、获取数据函数、基本面选股、技术指标函数、回测、机器算法运用技巧、因子分析运用技巧、实战案例。

在内容表现上形象生动,图文并茂:为了能够让投资者在学习知识的同时,不过于死板,在内容表现上,本书采用了大量的图表、图形,以使整书的风格显得生动、形象。


前言

前 言

在大多数投资者的想象中,量化交易似乎应该是用十几个显示屏运行的数学模型,是交易速度以微秒来计的、深不可测的投资方法。诚然,复杂模型和高频交易属于量化范畴,但广义上,量化代表的是一种理性的思维方式。例如,当你着眼于真实数据,理性地运用逻辑分析和归纳统计得出市场的一些观点和规律,并据此制定和执行明确的交易策略时,你就是在做量化交易。普通个人投资者完全可以运用量化的方法来指导自己的投资决策,事实上,他们常常不经意间就已经用基于经验、逻辑和数学的量化投资的思维来指导自己的交易了。

在金融市场上一直有句话,即美国是机构市,我国A股是散户市。据统计,美国现在量化交易方式所占比例已经超过70%,但是我国还不到5%。这样看来,量化交易在我国是有比较大的发展空间的。

当前,我国的量化交易主要应用在商品期货上。随着股指期货的上市,期货市场和证券市场实现了真正意义上的互动,投资者不仅可以在期货市场上进行投机交易,同时还可以在期货与股票之间进行套利交易。利用量化交易对股指期货进行操作将会是投资者(尤其是机构投资者)的一个重要的发展方向。

本书结构

本书共14章,具体章节安排如下。

第1章:讲解量化交易的基础知识,即量化交易的定义、特点、应用、故事、历史及注意事项。

第2章:讲解量化交易平台,即JoinQuant聚宽量化交易平台的功能,账户的注册、登录及量化交易策略的创建,选股技巧,买卖条件模型,风险控制技巧,其他参数设置技巧,回测,模拟交易,实盘交易。

第3 ~ 5章:讲解量化交易开发语言Python,即讲解Python开发环境及编程基础、流程控制与特征数据类型、函数与面向对象。

第6 ~ 11章:讲解Python量化交易策略的常用库、常用函数与对象、获取数据函数运用技巧、基本面选股技巧、技术指标函数运用技巧、回测方法与技巧。

第12 ~ 13章:讲解Python量化交易策略的机器算法运用技巧、因子分析运用技巧。

第14章:讲解Python量化交易策略实战案例。

本书特色

本书的特色归纳如下。

实用性:本书着眼于量化实战应用,同时探讨深层次的技巧问题。

详尽的例子:本书每一章都附有大量的例子,通过这些例子介绍知识点。每个例子都是作者精心选择的,投资者只要反复练习,举一反三,就可以真正掌握操盘技巧,从而学以致用。

全面性:本书包含了量化交易的所有知识,分别是量化交易的基础知识、量化交易平台、量化交易开发语言Python、Python量化交易策略的常用库、Python量化交易策略常用函数与面向对象、Python量化交易策略获取数据函数应用技巧、Python量化交易策略基本面选股技巧、Python量化交易策略技术指标函数运用技巧、Python量化交易策略回测方法与技巧、Python量化交易策略机器算法运用技巧、Python量化交易策略因子分析运用技巧、Python量化交易策略实战案例。

在内容表现上形象生动,图文并茂:为了能够让投资者在学习知识的同时,不过于死板,本书采用了大量的图、表,以使整本书的风格更加生动、形象。

本书适合的读者

本书适用于各类投资者,如股民、期民、职业操盘手和专业金融评论人士。

创作团队

本书由张彦桥、梁雷超编著,刘志隆、王冲冲、吕雷、王高媛、张志伟、周飞、葛钰秀、王英茏、陈锐杰等对本书的编写提出过宝贵意见并参与了部分编写工作。

由于时间仓促,加之水平有限,书中的缺点和不足之处在所难免,敬请读者批评指正。


目录

目 录
第1章 量化交易概述 1
1.1 初识量化交易 2
1.1.1 什么是量化交易 2
1.1.2 量化交易与算法交易 2
1.1.3 量化交易与程序化交易 2
1.1.4 量化交易与技术分析 3
1.1.5 量化交易与人工交易 3
1.1.6 为什么要学习量化交易 4
1.2 量化交易的特点 5
1.3 量化交易的应用 6
1.3.1 投资品种选择 7
1.3.2 投资时机选择 7
1.3.3 算法交易 7
1.3.4 各种套利交易 9
1.3.5 资产配置 10
1.4 量化交易的故事 11
1.4.1 朱尔斯?雷格纳特的量化交易故事 11
1.4.2 爱德华?索普的量化交易故事 12
1.4.3 詹姆斯?西蒙斯的量化交易故事 13
1.5 量化交易的历史 14
1.5.1 国外量化交易的历史 14
1.5.2 国内量化交易的历史 15
1.6 量化交易的注意事项 15
第2章 量化交易平台 17
2.1 初识JoinQuant聚宽量化交易平台 18
2.2 量化交易平台的功能 18
2.2.1 高质量数据和强大的研究平台 18
2.2.2 顶级回测体验和顶尖模拟交易 19
2.3 账户的注册、登录及量化交易策略的创建 19
2.3.1 量化交易平台账户的注册 19
2.3.2 量化交易平台账户的登录 20
2.3.3 量化交易策略的创建 22
2.4 量化交易策略的选股技巧 24
2.4.1 量化选股的基本设置 24
2.4.2 选股指标 27
2.5 量化交易策略的买卖条件模型 31
2.5.1 轮动模型 32
2.5.2 择时模型 33
2.6 量化交易策略的风险控制技巧 35
2.6.1 止盈、止损指标 35
2.6.2 其他指标 36
2.7 量化交易策略的其他参数设置技巧 36
2.8 编写Python代码来创建量化交易策略 38
2.9 量化交易策略的回测 39
2.10 量化交易策略的模拟交易 41
2.10.1 新建模拟交易并运行 41
2.10.2 查看模拟交易 42
2.10.3 绑定微信 45
2.11 量化交易策略的实盘交易 46
第3章 Python开发环境及编程基础 49
3.1 初识Python 50
3.1.1 Python的发展历程 50
3.1.2 Python的特点 50
3.2 Python开发环境及配置 51
3.2.1 Python的下载和安装 51
3.2.2 Python的环境变量配置 53
3.3 Python程序的编写 57
3.4 利用量化交易平台编写Python程序 61
3.4.1 初识IPython Notebook研究平台 62
3.4.2 利用IPython Notebook编写Python程序 66
3.5 Python的基本数据类型 67
3.5.1 数值类型 67
3.5.2 字符串 69
3.6 Python的变量与赋值 73
3.6.1 变量命名规则 73
3.6.2 变量的赋值 74
3.7 Python的基本运算 74
3.7.1 算术运算 75
3.7.2 赋值运算 76
3.7.3 位运算 77
3.8 Python的代码格式 78
3.8.1 代码缩进 78
3.8.2 代码注释 79
3.8.3 空行 80
3.8.4 同一行显示多条语句 80
第4章 Python流程控制与特征数据类型 81
4.1 Python的选择结构 82
4.1.1 关系运算 82
4.1.2 逻辑运算 83
4.1.3 if语句 84
4.1.4 嵌套if语句 86
4.2 Python的循环结构 87
4.2.1 while循环 87
4.2.2 while循环使用else语句 88
4.2.3 无限循环 89
4.2.4 for循环 90
4.2.5 在for循环中使用range()函数 90
4.2.6 break语句 92
4.2.7 continue语句 92
4.2.8 pass语句 93
4.3 Python的特征数据类型 94
4.3.1 列表 94
4.3.2 元组 97
4.3.3 字典 99
4.3.4 集合 100
第5章 Python函数与面向对象 104
5.1 Python内置函数 105
5.1.1 数学函数 105
5.1.2 随机数函数 106
5.1.3 三角函数 108
5.1.4 字符串函数 110
5.2 用户自定义函数 113
5.2.1 自定义函数的定义 113
5.2.2 调用自定义函数 114
5.2.3 函数的参数传递 116
5.2.4 函数的参数类型 118
5.2.5 匿名函数 123
5.3 Python的面向对象 123
5.3.1 面向对象概念 124
5.3.2 类与实例 124
5.3.3 模块的引用 127
5.3.4 包 127
5.4 变量作用域及类型 130
5.4.1 变量作用域 130
5.4.2 全局变量和局部变量 131
5.4.3 global和nonlocal关键字 132
第6章 Python量化交易策略的常用库 135
6.1 Numpy库 136
6.1.1 ndarray数组基础 136
6.1.2 Numpy的矩阵对象 148
6.2 Pandas库 149
6.2.1 一维数组Series 149
6.2.2 二维数组DataFrame 150
6.2.3 三维数组Panel 160
第7章 Python量化交易策略的常用函数与对象 163
7.1 Python量化交易策略的一般结构 164
7.1.1 初始化函数 165
7.1.2 开盘前运行函数 166
7.1.3 开盘时运行函数 166
7.1.4 收盘后运行函数 167
7.2 Python量化交易策略的设置函数 167
7.2.1 设置基准函数 168
7.2.2 设置佣金/印花税函数 168
7.2.3 设置滑点函数 169
7.2.4 设置动态复权(真实价格)模式函数 170
7.2.5 设置成交量比例函数 170
7.2.6 设置是否开启盘口撮合模式函数 171
7.2.7 设置要操作的股票池函数 171
7.3 Python量化交易策略的定时函数 171
7.3.1 定时函数的定义及分类 172
7.3.2 定时函数各项参数的意义 172
7.3.3 定时函数的注意事项 173
7.3.4 定时函数的实例 174
7.4 Python量化交易策略的下单函数 174
7.4.1 按股数下单函数 174
7.4.2 目标股数下单函数 175
7.4.3 按价值下单函数 175
7.4.4 目标价值下单函数 176
7.4.5 撤单函数 176
7.4.6 获取未完成订单函数 177
7.4.7 获取订单信息函数 177
7.4.8 获取成交信息函数 178
7.5 Python量化交易策略的日志log 178
7.5.1 设定log级别 178
7.5.2 log.info 179
7.6 Python量化交易策略的常用对象 179
7.6.1 Order对象 179
7.6.2 全局对象g 180
7.6.3 Trade对象 180
7.6.4 tick对象 180
7.6.5 Context对象 181
7.6.6 Position对象 182
7.6.7 SubPortfolio对象 183
7.6.8 Portfolio对象 184
7.6.9 SecurityUnitData对象 184
第8章 Python量化交易策略的获取数据函数运用技巧 186
8.1 history()函数的运用技巧 187
8.1.1 各项参数的意义 187
8.1.2 history()函数的应用实例 188
8.2 attribute_history ()函数的运用技巧 191
8.3 get_fundamentals ()函数的运用技巧 192
8.3.1 各项参数的意义 192
8.3.2 get_fundamentals ()函数的应用实例 193
8.4 get_fundamentals_continuously ()函数的运用技巧 198
8.5 get_current_data ()函数的运用技巧 199
8.6 get_index_stocks ()函数的运用技巧 200
8.6.1 各项参数的意义 200
8.6.2 get_index_stocks ()函数的应用实例 201
8.7 get_industry_stocks()函数的运用技巧 202
8.8 get_concept_stocks ()函数的运用技巧 203
8.9 get_all_securities()函数的运用技巧 205
8.9.1 各项参数的意义 205
8.9.2 get_all_securities()函数的应用实例 206
8.10 get_security_info ()函数的运用技巧 207
8.11 get_billboard_list ()函数的运用技巧 208
8.11.1 各项参数的意义 208
8.11.2 get_billboard_list()函数的应用实例 209
8.12 get_locked_shares ()函数的运用技巧 210
第9章 Python量化交易策略的基本面选股技巧 211
9.1 量化选股概述 212
9.2 成长类因子选股技巧 212
9.2.1 营业收入同比增长率选股技巧 212
9.2.2 营业收入环比增长率选股技巧 214
9.2.3 净利润同比增长率选股技巧 215
9.2.4 净利润环比增长率选股技巧 216
9.2.5 营业利润率选股技巧 217
9.2.6 销售净利率选股技巧 217
9.2.7 销售毛利率选股技巧 218
9.3 规模类因子选股技巧 220
9.3.1 总市值选股技巧 220
9.3.2 流通市值选股技巧 221
9.3.3 总股本选股技巧 222
9.3.4 流通股本选股技巧 222
9.4 价值类因子选股技巧 223
9.4.1 市净率选股技巧 223
9.4.2 市销率选股技巧 224
9.4.3 市现率选股技巧 225
9.4.4 动态市盈率选股技巧 226
9.4.5 静态市盈率选股技巧 227
9.5 质量类因子选股技巧 228
9.5.1 净资产收益率选股技巧 228
9.5.2 总资产净利率选股技巧 229
9.6 基本面多因子量化选股 230
第10章 Python量化交易策略的技术指标函数运用技巧 232
10.1 量化择时概述 233
10.2 趋向指标函数运用技巧 234
10.2.1 MACD指标函数 234
10.2.2 EMV指标函数 235
10.2.3 UOS指标函数 237
10.2.4 GDX指标函数 238
10.2.5 DMA指标函数 239
10.2.6 JS指标函数 240
10.2.7 MA指标函数 241
10.2.8 EXPMA指标函数 242
10.2.9 VMA指标函数 243
10.3 反趋向指标函数运用技巧 245
10.3.1 KD指标函数 245
10.3.2 MFI指标函数 246
10.3.3 RSI指标函数 247
10.3.4 OSC指标函数 248
10.3.5 WR指标函数 249
10.3.6 CCI指标函数 250
10.4 压力支撑指标函数运用技巧 251
10.4.1 BOLL指标函数 251
10.4.2 MIKE指标函数 253
10.4.3 XS指标函数 254
10.5 量价指标函数运用技巧 256
10.5.1 OBV指标函数 256
10.5.2 VOL指标函数 257
10.5.3 VR指标函数 258
10.5.4 MASS指标函数 259
第11章 Python量化交易策略的回测方法与技巧 261
11.1 量化交易策略回测的流程 262
11.2 利用Python编写MACD指标量化交易策略 262
11.2.1 量化交易策略的编辑页面 262
11.2.2 编写初始化函数 265
11.2.3 编写单位时间调用的函数 265
11.3 设置MACD指标量化交易策略的回测参数 266
11.4 MACD指标量化交易策略的回测详情 269
11.5 MACD指标量化交易策略的风险指标 272
11.5.1 Alpha(阿尔法) 272
11.5.2 Beta(贝塔) 273
11.5.3 Sharpe(夏普比率) 274
11.5.4 Sortino(索提诺比率) 275
11.5.5 Information Ratio(信息比率) 276
11.5.6 Volatility(策略波动率) 277
11.5.7 Benchmark Volatility(基准波动率) 278
11.5.8 Max Drawdown(最大回撤) 279
第12章 Python量化交易策略的机器算法运用技巧 280
12.1 随机森林在量化交易中的运用技巧 281
12.1.1 随机森林的构建 281
12.1.2 随机森林的优缺点 281
12.1.3 随机森林在量化交易中的运用实例 282
12.2 支持向量机(SVM)在量化交易中的运用技巧 284
12.2.1 什么是支持向量机(SVM) 285
12.2.2 支持向量机(SVM)的工作原理 285
12.2.3 核函数 287
12.2.4 支持向量机(SVM)的优点 288
12.2.5 支持向量机(SVM)的缺点 288
12.2.6 支持向量机(SVM)在量化交易中的运用实例 289
12.3 朴素贝叶斯在量化交易中的运用技巧 292
12.3.1 什么是朴素贝叶斯 292
12.3.2 朴素贝叶斯的算法思想 292
12.3.3 朴素贝叶斯的算法步骤 292
12.3.4 朴素贝叶斯的优缺点 293
12.3.5 朴素贝叶斯在量化交易中的运用实例 293
12.4 神经网络在量化交易中的运用技巧 296
12.4.1 什么是人工神经网络 296
12.4.2 大脑中的神经元细胞和神经元细胞网络 297
12.4.3 人工神经网络的基本特征 298
12.4.4 人工神经网络的特点 299
12.4.5 人工神经网络的算法 299
12.4.6 人工神经网络在量化交易中的运用实例 301
第13章 Python量化交易策略的因子分析运用技巧 305
13.1 因子的类型及因子分析的作用 306
13.2 因子分析的Python代码 306
13.2.1 因子分析中的三个变量 306
13.2.2 因子分析中可以使用的基础因子 307
13.2.3 calc的参数及返回值 308
13.3 因子的新建及常见分析 308
13.3.1 因子的新建 308
13.3.2 因子的收益分析 311
13.3.3 因子的IC分析 314
13.3.4 因子的换手分析 315
13.4 因子在研究和回测中的使用 317
13.5 基本面因子运用实例 319
第14章 Python量化交易策略实战案例 323
14.1 MA均线量化交易策略实战案例 324
14.1.1 编写初始化函数 324
14.1.2 编写单位时间调用的函数 326
14.1.3 MA均线量化交易策略的回测 327
14.2 多均线量化交易策略实战案例 327
14.2.1 编写初始化函数 328
14.2.2 编写交易程序函数 328
14.2.3 多均线量化交易策略的回测 330
14.3 MACD指标量化交易策略实战案例 330
14.3.1 编写初始化函数 331
14.3.2 编写单位时间调用的函数 331
14.3.3 MACD指标量化交易策略的回测 332
14.4 KD指标量化交易策略实战案例 333
14.4.1 编写初始化函数 333
14.4.2 编写开盘前运行函数 334
14.4.3 编写开盘时运行函数 334
14.4.4 编写收盘后运行函数 335
14.4.5 KD指标量化交易策略的回测 335
14.5 BOLL指标量化交易策略实战案例 336
14.5.1 编写初始化函数 336
14.5.2 编写开盘前运行函数 337
14.5.3 编写开盘时运行函数 337
14.5.4 编写收盘后运行函数 338
14.5.5 BOLL指标量化交易策略的回测 339
14.6 多股票持仓量化交易策略实战案例 339
14.6.1 编写初始化函数 340
14.6.2 编写单位时间调用的函数 340
14.6.3 多股票持仓量化交易策略的回测 341
14.7 医药股轮动量化交易策略实战案例 342
14.7.1 编写初始化函数 342
14.7.2 编写选股函数 342
14.7.3 编写交易函数 343
14.7.4 医药股轮动量化交易策略的回测 343
14.8 小市值股票量化交易策略实战案例 344
14.8.1 编写初始化函数 344
14.8.2 编写选股函数 345
14.8.3 编写过滤停牌股票函数 345
14.8.4 编写交易函数 346
14.8.5 小市值股票量化交易策略的回测 346
14.9 机器算法多因子量化交易策略实战案例 347
14.9.1 编写初始化函数 347
14.9.2 编写自定义的交易函数 348
14.9.3 机器算法多因子量化交易策略的回测 353