图书目录

VII

目 录

第1章 小瓦的故事—从零开始

1.1 何以解忧,“小富”也行 ···············1

1.1.1 那些年,那些交易 ···························2

1.1.2 自动化交易和高频交易 ·····················2

1.1.3 因子投资悄然兴起 ···························3

1.2 机器学习崛起 ······························4

1.2.1 量化投资风生水起 ···························4

1.2.2 没有数据是不行的 ···························5

1.2.3 交易策略和阿尔法因子 ·····················5

1.3 要想富,先配库 ···························6

1.3.1 Anaconda的下载和安装 ·····················6

1.3.2 Jupyter Notebook的基本使用方法 ········8

1.3.3 用真实股票数据练练手 ···················11

1.4 小结 ········································15

第2章 小瓦的策略靠谱吗—回测与经典策略

2.1 对小瓦的策略进行简单回测 ··········16

2.1.1 下载数据并创建交易信号 ················16

2.1.2 对交易策略进行简单回测 ················18

2.1.3 关于回测,你还需要知道的 ·············20

2.2 经典策略之移动平均策略 ·············21

2.2.1 单一移动平均指标 ·························21

2.2.2 双移动平均策略的实现 ···················23

2.2.3 对双移动平均策略进行回测 ·············26

2.3 经典策略之海龟策略 ···················28

2.3.1 使用海龟策略生成交易信号 ·············28

2.3.2 根据交易信号和仓位进行下单 ··········29

2.3.3 对海龟策略进行回测 ······················31

2.4 小结 ········································34

第3章 AI来了—机器学习在交易中的简单应用

3.1 机器学习的基本概念 ···················35

3.1.1 有监督学习和无监督学习 ················35

深入浅出Python量化交易实战

VIII

3.1.2 分类和回归···································37

3.1.3 模型性能的评估·····························37

3.2 机器学习工具的基本使用方法 ·······37

3.2.1 KNN算法的基本原理 ·····················38

3.2.2 KNN算法用于分类 ························38

3.2.3 KNN算法用于回归 ························43

3.3 基于机器学习的简单交易策略 ·······47

3.3.1 获取股票数据································47

3.3.2 创建交易条件································49

3.3.3 使用分类算法制定交易策略 ·············50

3.4 小结 ········································54

第4章 多来点数据—借助量化交易平台

4.1 数据不够,平台来凑 ···················55

4.1.1 选择量化交易平台 ·························56

4.1.2 量化交易平台的研究环境 ················57

4.1.3 在研究环境中运行代码 ···················58

4.2 借助财务数据筛选股票 ················59

4.2.1 获取股票的概况·····························60

4.2.2 获取股票的财务数据 ······················62

4.2.3 通过财务指标进行选股 ···················64

4.3 谁是幕后“大佬” ······················65

4.3.1 找到最大的股东·····························66

4.3.2 大股东们增持了还是减持了 ·············67

4.3.3 资金净流入还是净流出 ···················69

4.4 小结 ········································71

第5章 因子来了—基本原理和用法

5.1 “瓦氏因子”了解一下 ················72

5.1.1 获取主力资金流向数据 ···················73

5.1.2 简易特征工程································74

5.1.3 “瓦氏因子”的计算 ······················75

5.1.4 用添加“瓦氏因子”的数据训练模型 ······76

5.1.5 “因子”都能干啥 ·························77

5.2 股票不知道怎么选?因子来帮忙 ····78

5.2.1 确定股票池···································78

5.2.2 获取沪深两市的全部指数 ················79

5.2.3 获取股票的市值因子 ······················80

5.2.4 获取股票的现金流因子 ···················81

5.2.5 获取股票的净利率因子 ···················82

5.2.6 获取股票的净利润增长率因子 ··········83

5.3 把诸多因子“打个包” ················84

5.3.1 将4个因子存入一个DataFrame ········84

5.3.2 使用PCA提取主成分 ·····················85

5.3.3 找到主成分数值最高的股票 ·············86

5.4 小结 ········································87

目录

IX

第6章 因子好用吗—有些事需要你知道

6.1 针对投资组合获取因子值 ·············88

6.1.1 建立投资组合并设定日期 ················88

6.1.2 获取一个情绪因子 ·························90

6.1.3 获取全部的因子分析结果 ················91

6.2 因子收益分析 ····························92

6.2.1 因子各分位统计·····························92

6.2.2 因子加权多空组合累计收益 ·············94

6.2.3 做多最大分位做空最小分位收益 ·······96

6.2.4 分位数累计收益对比 ······················97

6.3 因子IC分析 ·····························98

6.3.1 因子IC分析概况 ···························99

6.3.2 因子IC时间序列图 ························99

6.3.3 因子IC正态分布Q-Q图和月度均值 ·····101

6.4  因子换手率、因子自相关性和因子预 

测能力分析 ······························102

6.4.1 因子换手率分析····························103

6.4.2 因子自相关性分析 ························104

6.4.3 因子预测能力分析 ························106

6.5 小结 ·······································107

第7章 当因子遇上线性模型

7.1 什么是线性模型 ························108

7.1.1 准备用于演示的数据 ·····················108

7.1.2 来试试最简单的线性回归 ···············110

7.1.3 使用正则化的线性模型 ··················113

7.2 用线性模型搞搞交易策略 ············115

7.2.1 准备因子·····································115

7.2.2 训练模型·····································117

7.2.3 基于模型的预测进行选股 ···············118

7.3 能不能赚到钱 ···························119

7.3.1 平台的策略回测功能 ·····················120

7.3.2 把研究成果写成策略 ·····················121

7.3.3 回测···········································124

7.4 小结 ·······································126

第8章 因子遇到决策树与随机森林

8.1 什么是决策树和随机森林 ············127

8.1.1 线性模型不适用的数据样本 ············127

8.1.2 决策树的用法和原理 ·····················129

8.1.3 随机森林的用法和原理 ··················130

8.2 哪些因子重要,决策树能告诉你 ·····132

 8.2.1 多来点因子··································132

8.2.2 设定目标并训练模型 ·····················135

8.2.3 哪些因子重要·······························137

8.3 用重要因子和随机森林来制订 

策略 ·······································138

深入浅出Python量化交易实战

8.3.1 回测函数的初始化 ························138

8.3.2 盘前的准备工作····························139

8.3.3 策略中的机器学习部分 ··················141

8.3.4 定义买入股票和卖出股票的列表 ······142

8.3.5 定义买入操作和卖出操作 ···············144

8.3.6 对策略进行回测····························145

8.4 小结 ·······································146

第9章 因子遇到支持向量机

9.1 什么是支持向量机 ·····················147

9.1.1 支持向量机的基本原理 ··················147

9.1.2 线性内核有时“很着急” ···············149

9.1.3 RBF内核“闪亮登场” ··················150

9.2 动态因子选择策略 ·····················152

9.2.1 设置回测环境·······························152

9.2.2 开盘前准备··································153

9.2.3 机器学习的部分····························155

9.2.4 买入和卖出的操作 ························157

9.3 策略的回测详情 ························158

9.3.1 策略收益概述·······························159

9.3.2 策略交易详情·······························159

9.3.3 持仓和收益详情····························161

9.4 使用策略进行模拟交易 ···············162

9.4.1 模拟交易·····································163

9.4.2 查看模拟交易详情 ························164

9.4.3 模拟交易的持仓与下单 ··················165

9.5 小结 ·······································166

第10章 初识自然语言处理技术

10.1我们的想法是否靠谱 ··················167

10.1.1 思考几个问题 ·····························167

10.1.2 参考一下“大佬”们的做法 ···········168

10.1.3 说了那么多,什么是NLP ··············169

10.2 获取文本数据并简单清洗 ··········170

10.2.1 获取新闻联播文本数据 ·················170

10.2.2 对文本数据进行简单清洗 ··············172

10.3 中文分词,“结巴”来帮忙 ·······173

10.3.1 使用“结巴”进行分词 ·················174

10.3.2 使用“结巴”进行列表分词 ···········174

10.3.3 建立停用词表 ·····························175

10.3.4 去掉文本中的停用词 ····················176

10.3.5 使用“结巴”提取关键词 ··············178

10.4 小结 ·····································180

第11章 新闻文本向量化和话题建模

11.1 让机器“读懂”新闻 ················181

11.1.1 准备文本数据 ·····························181

目录

11.1.2 使用CountVectorizer将文本转化为 

向量 ··········································183

11.1.3 使用TfidfVectorizer将文本转化为 

向量 ··········································185

11.2 让机器告诉我们新闻说了啥 ·······186

11.2.1 什么是话题建模 ··························186

11.2.2 什么是LDA模型 ························187

11.3 话题建模实战 ·························188

11.3.1 加载数据并进行分词 ····················188

11.3.2 将分词结果合并保存 ····················190

11.3.3 使用LDA进行话题建模 ···············191

11.3.4 对模型进行改进 ··························192

11.4 小结 ·····································194

第12章 股评数据情感分析

12.1 机器懂我们的情感吗 ················195

12.1.1 了解分好类的语料 ·······················196

12.1.2 将文件上传到量化交易平台 ···········197

12.2 用语料制作数据集 ···················198

12.2.1 将正面情绪语料存储为列表 ···········198

12.2.2 将负面情绪语料存储为列表 ···········200

12.2.3 给数据“打上标签” ····················201

12.2.4 合并正负面情绪语料 ····················202

12.3 隆重推出“朴素贝叶斯” ··········203

12.3.1 “朴素贝叶斯”又是什么 ··············204

12.3.2 为贝叶斯模型准备数据 ·················205

12.3.3 开始训练贝叶斯模型并评估其性能 ·····206

12.4 小结 ·····································208

第13章 咱也“潮”一把—深度学习来了

13.1 开始研究前的准备 ···················209

13.1.1 翻翻工具箱,看看有什么 ··············210

13.1.2 为神经网络准备数据 ····················211

13.2 使用Keras对文本进行预处理 ·····213

13.2.1 使用Tokenizer提取特征 ················213

13.2.2 将文本转化为序列 ·······················214

13.2.3 填充序列与转化矩阵 ····················216

13.3 使用Keras构建简单神经网络 ·····217

13.3.1 先动手“撸”一个多层感知机 ········217

13.3.2 念叨一下多层感知机的原理 ···········218

13.3.3 再来说说激活函数 ·······················220

13.3.4 Dropout层又是干吗的 ··················221

13.3.5 训练一下,看看效果如何 ··············222

13.4 小结 ·····································224

深入浅出Python量化交易实战

第14章 再进一步—CNN和LSTM

14.1 先动手“撸”一个卷积神经 

网络 ·····································225

14.1.1 准备好库和数据集 ·······················225

14.1.2 处理数据与搭建模型 ····················227

14.2 卷积神经网络模型详解 ·············229

14.2.1 嵌入层是干啥用的 ·······················230

14.2.2 卷积层是干啥用的 ·······················231

14.2.3 最大池化层是干啥用的 ·················233

14.2.4 训练模型看看效果 ·······················234

14.3 长短期记忆网络 ······················236

14.3.1 搭建一个简单的长短期记忆网络 ·····236

14.3.2 关于长短期记忆网络 ····················237

14.3.3 训练模型及评估 ··························238

14.3.4 保存模型并在回测中调用 ··············240

14.4 小结 ·····································241

第15章 写在最后—小瓦的征程

15.1 可以一夜暴富了吗 ···················242

15.1.1 使用第三方量化平台是个好主 

意吗 ··········································243

15.1.2 机器学习到底有没有用 ·················243

15.1.3 要“吊死”在A股“这棵树” 

上吗 ··········································244

15.2 将来要做什么 ·························245

15.2.1 学习一些数据库知识 ····················245

15.2.2 多看看不同的投资标的 ·················247

15.2.3 打开国际化的视野 ·······················249

15.3 小结 ·····································252