本书首先讲解人工智能的基础知识,即什么是人工智能,为什么要学习人工智能,什么是智能,智能类型,人工智能的研究与应用领域,为什么使用Python 来开发人工智能,利用量化交易平台编写Python 程序,人工智能的发展历史;然后讲解Python 编程基础和人工智能的三个重要的包,即Numpy 包、Pandas 包和Matplotlib 包;接着讲解5 种机器学习算法,即决策树、随机森林、支持向量机(SVM)、朴素贝叶斯和人工智能的神经网络;然后讲解Python 量化交易策略的编写、获取数据函数、Python 基本面量化选股、Python 量化择时的技术指标函数、Python 量化交易策略的回测技巧、Python 量化交易策略的机器学习方法应用;*后讲解Python 量化交易策略的因子分析技巧和Python 量化交易策略实例。 在讲解过程中既考虑读者的学习习惯,又通过具体实例剖析讲解人工智能在量化交易应用中的热点问题、关键问题及种种难题。 本书适用于各种投资者,如股民、期民、中小散户、职业操盘手和专业金融评论人士,更适用于那些有志于在这个充满风险、充满寂寞的征程上默默前行的征战者和屡败屡战、愈挫愈勇并*终战胜失败、战胜自我的勇者。
人工智能 量化交易,未来金融市场的趋势机构和大户的工具,散户赚钱是偶然,机构和大户赚钱是必然的结果揭示智能量化交易实战精髓,新手交易获利更容易详解智能量化交易实战应用难题,多位专家合力编著
随着计算机技术的发展,人工智能已经从科幻逐步走入现实。从1956年人工智能这个概念被首次提出以来,人工智能的发展几经沉浮。随着核心算法的突破、计算能力的迅速提高,以及海量互联网数据的支撑,人工智能终于在21世纪的第二个十年里迎来质的飞跃,成为全球瞩目的科技焦点。在政府积极引导和企业战略布局等推动下,人工智能产业从无到有,规模快速壮大,创新能力显著增强,服务能力大幅提升,应用范畴不断拓展,并为云计算、大数据、物联网、量化交易等新兴领域的发展提供了基础支撑。与此同时,对人工智能人才的需求也极为迫切。
以美国为主的成熟资本市场,量化交易占比超过50%,量化对冲基金已经成为资管行业中的翘楚。中国的量化交易起步较晚,量化交易在证券市场占比还不足5%。随着科技的进步,中国的量化交易市场正在快速发展。
目前我国的量化交易主要应用在商品期货上。随着股指期货的上市,期货市场和证券市场实现了真正意义上的互动,投资者不仅可以在期货市场上进行投机交易,同时可以在期货与股票之间进行套利交易。利用量化交易对股指期货进行操作将会是投资者(尤其是机构投资者)的一个重要的发展方向。
| 内容结构
本书共16章,具体章节安排如下。
第1章:讲解人工智能的基础知识,即什么是人工智能,为什么要学习人工智能,什么是智能,智能类型,人工智能的研究与应用领域,为什么使用Python来开发人工智能,利用量化交易平台编写Python程序,人工智能的发展历史。
第2章到第5章:讲解Python编程基础和人工智能的三个重要的包,即Numpy包、Pandas包和Matplotlib包。
第6章到第8章:讲解5种机器学习算法,即决策树、随机森林、支持向量机(SVM)、朴素贝叶斯和人工智能的神经网络。
第9章到第14章:讲解Python量化交易策略的编写、获取数据函数、Python基本面量化选股、Python量化择时的技术指标函数、Python量化交易策略的回测技巧、Python量化交易策略的机器学习方法应用。
第15章到第16 章:讲解Python量化交易策略的因子分析技巧和Python量化交易策略实例。
| 内容特色
本书的特色归纳如下。
(1)实用性:本书首先着眼于人工智能在量化交易中的实战应用,然后再探讨深层次的技巧问题。
(2)详尽的例子:本书附有大量的例子,通过这些例子介绍知识点。每个例子都是作者精心选择的,投资者反复练习,举一反三,就可以真正掌握人工智能在量化交易中的实战技巧,从而学以致用。
(3)全面性:本书包含了人工智能和量化交易的所有知识,分别是人工智能基础知识、Python编程基础、Numpy包、Pandas包、Matplotlib
包、决策树、随机森林、支持向量机(SVM)、朴素贝叶斯、人工智能的神经网络、Python量化交易策略的编写、获取数据函数、Python基本面量化选股、Python量化择时的技术指标函数、Python量化交易策略的回测技巧、Python量化交易策略的机器学习方法应用、Python量化交易策略的因子分析技巧和Python量化交易策略实例。
| 适合读者
本书适用于各种投资者,如股民、期民、中小散户、职业操盘手和专业金融评论人士,更适用于那些有志于在这个充满风险、充满寂寞的征程上默默前行的征战者和屡败屡战、愈挫愈勇并最终战胜失败、战胜自我的勇者。
李晓波,从事金融衍生品市场交易及管理近20年,有着丰富的经验和体会,对国内外贵金属、外汇、邮币卡、大宗商品及股市等主流交易方式有着深刻的了解,擅长股票、期货、黄金、白银、邮币卡、外汇的培训指导,经常活跃在各大金融讲坛,深为投资者喜爱。可为个人投资者及机构提供分析、投资咨询,交易指导,理财培训等多方位的专业服务。
第1章 人工智能快速入门 / 1
1.1 初识人工智能 / 2
1.1.1 什么是人工智能 / 2
1.1.2 为什么要学习人工智能 / 2
1.2 智能概述 / 4
1.2.1 智能类型 / 4
1.2.2 智能的组成 / 6
1.3 人工智能的研究与应用领域 / 8
1.3.1 专家系统 / 8
1.3.2 自然语言理解 / 9
1.3.3 机器学习 / 9
1.3.4 机器定理证明 / 10
1.3.5 自动程序设计 / 11
1.3.6 分布式人工智能 / 12
1.3.7 机器人学 / 13
1.3.8 模式识别 / 14
1.3.9 人机博弈 / 14
1.3.10 计算机视觉 / 15
1.3.11 软计算 / 15
1.3.12 智能控制 / 16
1.3.13 智能规划 / 17
1.4 人工智能的开发语言 / 18
1.4.1 为什么使用Python来开发人工智能 / 18
1.4.2 Python的下载和安装 / 18
1.4.3 Python程序的编写 / 21
1.4.4 利用量化交易平台编写Python程序 / 24
1.5 人工智能的发展历史 / 27
1.5.1 计算机时代 / 27
1.5.2 大量程序 / 28
1.5.3 强弱人工智能 / 29
第2章 Python 编程基础 / 31
2.1 Python的基本数据类型 / 32
2.1.1 数值类型 / 32
2.1.2 字符串 / 34
2.2 变量与赋值 / 37
2.2.1 变量命名规则 / 37
2.2.2 变量的赋值 / 38
2.3 Python的基本运算 / 39
2.3.1 算术运算 / 39
2.3.2 赋值运算 / 41
2.3.3 位运算 / 42
2.4 Python的选择结构 / 43
2.4.1 关系运算 / 43
2.4.2 逻辑运算 / 45
2.4.3 if 语句 / 46
2.4.4 嵌套 if 语句 / 48
2.5 Python的循环结构 / 49
2.5.1 while循环 / 50
2.5.2 while 循环使用else语句 / 51
2.5.3 无限循环 / 51
2.5.4 for循环 / 52
2.5.5 在for循环中使用range()函数 / 53
2.5.6 break语句 / 54
2.5.7 continue语句 / 55
2.5.8 pass语句 / 56
2.6 Python的特征数据类型 / 57
2.6.1 列表 / 57
2.6.2 元组 / 61
2.6.3 字典 / 63
2.6.4 集合 / 64
2.7 Python的函数 / 67
2.7.1 函数的定义与调用 / 67
2.7.2 参数传递 / 69
2.7.3 匿名函数 / 71
2.7.4 变量作用域 / 72
2.8 Python的面向对象 / 73
2.8.1 面向对象概念 / 73
2.8.2 类与实例 / 74
2.8.3 模块的引用 / 77
2.9 Python的代码格式 / 78
2.9.1 代码缩进 / 78
2.9.2 代码注释 / 79
2.9.3 空行 / 79
2.9.4 同一行显示多条语句 / 79
第3章 人工智能的Numpy 包 / 81
3.1 初识Numpy包 / 82
3.2 ndarray数组基础 / 82
3.2.1 创建Numpy数组 / 83
3.2.2 Numpy特殊数组 / 86
3.2.3 Numpy序列数组 / 90
3.2.4 Numpy数组索引 / 91
3.2.5 Numpy数组运算 / 92
3.2.6 Numpy数组复制 / 93
3.3 Numpy的矩阵 / 94
3.4 Numpy的线性代数 / 96
3.4.1 两个数组的点积 / 96
3.4.2 两个向量的点积 / 97
3.4.3 一维数组的向量内积 / 97
3.4.4 矩阵的行列式 / 98
3.4.5 矩阵的逆 / 100
3.5 Numpy的文件操作 / 101
第4章 人工智能的Pandas 包 / 105
4.1 Pandas的数据结构 / 106
4.2 一维数组系列(Series) / 106
4.2.1 创建一个空的系列(Series) / 106
4.2.2 从ndarray创建一个系列(Series) / 107
4.2.3 从字典创建一个系列(Series) / 109
4.2.4 从有位置的系列(Series)中访问数据 / 109
4.2.5 使用标签检索数据 / 110
4.3 二维数组DataFrame / 111
4.3.1 创建DataFrame / 111
4.3.2 数据的查看 / 112
4.3.3 数据的选择 / 116
4.3.4 数据的处理 / 122
4.4 三维数组Panel / 124
第5章 人工智能的Matplotlib 包 / 127
5.1 Matplotlib包的优点 / 128
5.2 figure()函数的应用 / 128
5.2.1 figure()函数的各参数意义 /
128
5.2.2 figure()函数的实例 / 129
5.3 plot()函数的应用 / 131
5.3.1 plot()函数的各参数意义 /
131
5.3.2 plot()函数的实例 / 132
5.4 subplot()函数的应用 / 133
5.4.1 subplot()的各参数意义 / 134
5.4.2 subplot()的实例 / 134
5.5 add_axes方法的应用 / 135
5.6 legend()函数的应用 / 137
5.7 设置字体格式 / 139
5.8 设置线条的宽度和颜色 / 140
5.9 坐标轴网格 / 142
5.10 绘制柱状图 / 143
5.11 绘制色图和等高线图 / 144
5.12 绘制立体三维图形 / 146
第6章 决策树和随机森林 / 151
6.1 决策树 / 152
6.1.1 什么是决策树 / 152
6.1.2 决策树的组成 / 153
6.1.3 决策树的优点 / 153
6.1.4 决策树的缺点 / 154
6.1.5 决策树的构造 / 154
6.1.6 纯度判断方法 / 155
6.1.7 决策树的剪枝 / 162
6.1.8 利用Python代码实现决策树 / 163
6.2 随机森林 / 167
6.2.1 随机森林的构建 / 167
6.2.2 随机森林的优缺点 / 168
6.2.3 随机森林的应用范围 / 168
6.2.4 利用Python代码实现随机森林 /
169
第7章 支持向量机(SVM)和朴素贝叶斯 / 173
7.1 支持向量机(SVM) / 174
7.1.1 什么是支持向量机(SVM) / 174
7.1.2 支持向量机(SVM)的工作原理 / 174
7.1.3 核函数 / 175
7.1.4 支持向量机(SVM)的优点 / 177
7.1.5 支持向量机(SVM)的缺点 / 177
7.1.6 利用Python代码实现支持向量机(SVM)
/ 177
7.2 朴素贝叶斯 / 182
7.2.1 什么是朴素贝叶斯 / 182
7.2.2 朴素贝叶斯的算法思想 / 182
7.2.3 朴素贝叶斯的算法步骤 / 183
7.2.4 朴素贝叶斯的优缺点 / 184
7.2.5 利用Python代码实现高斯朴素贝叶斯 /
184
7.2.6 利用Python代码实现多项式分布朴素贝叶斯 / 187
7.2.7 利用Python代码实现伯努力朴素贝叶斯
/ 188
第8章 人工智能的神经网络 / 191
8.1 初识人工神经网络 / 192
8.1.1 什么是人工神经网络 / 192
8.1.2 大脑中的神经元细胞和神经元细胞网络 /
192
8.1.3 人工神经网络的基本特征 / 193
8.1.4 人工神经网络的特点 / 195
8.2 人工神经网络的算法 / 195
8.3 神经网络库Pybrain / 197
8.3.1 神经网络的创建 / 197
8.3.2 神经网络的数据集定义 / 201
8.3.3 训练神经网络 / 202
8.3.4 循环神经网络 / 204
8.4 人工神经网络实例 / 205
第9章 Python 量化交易策略的编写 / 209
9.1 Python量化交易策略的组成 /
210
9.1.1 初始化函数(initialize) / 211
9.1.2 开盘前运行函数(before_market_open) / 212
9.1.3 开盘时运行函数(market_open) / 213
9.1.4 收盘后运行函数(after_market_close) / 214
9.2 Python量化交易策略的设置函数 /
214
9.2.1 设置基准函数 / 215
9.2.2 设置佣金/印花税函数 / 215
9.2.3 设置滑点函数 / 217
9.2.4 设置动态复权(真实价格)模式函数 /
217
9.2.5 设置成交量比例函数 / 218
9.2.6 设置是否开启盘口撮合模式函数 / 218
9.2.7 设置要操作的股票池函数 / 218
9.3 Python量化交易策略的定时函数 /
219
9.3.1 定时函数的定义及分类 / 219
9.3.2 定时函数各项参数的意义 / 219
9.3.3 定时函数的注意事项 / 220
9.3.4 定时函数的实例 / 221
9.4 Python量化交易策略的下单函数 /
222
9.4.1 按股数下单函数 / 222
9.4.2 目标股数下单函数 / 223
9.4.3 按价值下单函数 / 223
9.4.4 目标价值下单函数 / 224
9.4.5 撤单函数 / 224
9.4.6 获取未完成订单函数 / 225
9.4.7 获取订单信息函数 / 225
9.4.8 获取成交信息函数 / 226
9.5 Python量化交易策略的日志log
/ 226
9.5.1 设定log级别 / 226
9.5.2 log.info / 227
9.6 Python量化交易策略的常用对象 /
227
9.6.1 Order对象 / 227
9.6.2 全局对象g / 228
9.6.3 Trade对象 / 229
9.6.4 tick对象 / 229
9.6.5 Context对象 / 230
9.6.6 Position对象 / 231
9.6.7 SubPortfolio对象 / 232
9.6.8 Portfolio对象 / 233
9.6.9 SecurityUnitData对象 / 233
第10章 Python 量化交易策略的获取数据函数 / 235
10.1 获取股票数据的history()函数 / 236
10.1.1 各项参数的意义 / 236
10.1.2 history()函数的应用实例 / 238
10.2 获取一只股票数据的attribute_history
()函数 / 241
10.3 查询一个交易日股票财务数据的get_fundamentals
()函数 / 242
10.3.1 各项参数的意义 / 242
10.3.2 get_fundamentals ()函数的应用实例 / 243
10.4 查询股票财务数据的get_fundamentals_continuously
()函数 / 249
10.5 获取股票特别数据的get_current_data
()函数 / 250
10.6 获取指数成分股代码的get_index_stocks
()函数 / 251
10.6.1 各项参数的意义 / 251
10.6.2 get_index_stocks ()函数的应用实例 / 252
10.7 获取行业成分股代码的get_industry_stocks()函数 / 253
10.8 获取概念成本股代码的get_concept_stocks
()函数 / 255
10.9 获取所有数据信息的get_all_securities()函数 / 256
10.9.1 各项参数的意义 / 256
10.9.2 get_all_securities()函数的应用实例 / 257
10.10 获取一只股票信息的get_security_info
()函数 / 259
10.11 获取龙虎榜数据的get_billboard_list
()函数 / 260
10.11.1 各项参数的意义 / 260
10.11.2 get_billboard_list()函数的应用实例 / 261
10.12 获取限售解禁数据的get_locked_shares
()函数 / 262
第11章 Python 基本面量化选股 / 265
11.1 初识量化选股 / 266
11.2 成长类因子选股 / 266
11.2.1 营业收入同比增长率选股 / 266
11.2.2 营业收入环比增长率选股 / 268
11.2.3 净利润同比增长率选股 / 269
11.2.4 净利润环比增长率选股 / 270
11.2.5 营业利润率选股 / 271
11.2.6 销售净利率选股 / 272
11.2.7 销售毛利率选股 / 273
11.3 规模类因子选股 / 274
11.3.1 总市值选股 / 274
11.3.2 流通市