第1章 金融量化交易策略分析概述 1
1.1 金融量化分析简介 1
1.1.1 金融量化分析的应用范畴 1
1.1.2 金融量化分析的基本流程 2
1.1.3 金融量化分析的方法与工具 2
1.1.4 金融量化分析的优势 3
1.2 金融量化分析的困局 3
1.2.1 金融量化分析策略的同质化 4
1.2.2 量化分析工具的局限性 4
1.2.3 量化分析结果的随机性 5
1.3 金融量化分析注意事项 5
1.4 本章小结 6
1.5 思考题 6
第2章 金融量化分析工具的准备——基础语法 7
2.1 Python简介 7
2.1.1 Python数据处理的优势 7
2.1.2 Python的基本语法 8
2.2 Python变量 9
2.2.1 变量的命名规则 9
2.2.2 数值型变量 10
2.2.3 布尔类型变量 10
2.2.4 字符串类型变量 11
2.2.5 列表类型变量 14
2.2.6 元组类型变量 16
2.2.7 集合类型变量 17
2.2.8 字典类型变量 18
2.3 流程控制 19
2.3.1 逻辑判断 20
2.3.2 if判断 20
2.3.3 循环语句 21
2.4 函数 23
2.4.1 函数的定义与调用 23
2.4.2 函数的参数 24
2.4.3 lambda匿名函数 26
2.4.4 Python高阶函数 27
2.5 类与对象 31
2.5.1 创建类与实例对象 31
2.5.2 面向对象的封装 35
2.5.3 面向对象的继承 37
2.5.4 面向对象的多态 38
2.6 模块应用 39
2.6.1 模块的安装、卸载与调用 39
2.6.2 Python内置模块示例1:datetime模块 41
2.6.3 Python内置模块示例2:os模块 44
2.7 本章小结 45
2.8 思考题 45
第3章 金融量化分析工具的准备——Pandas基础 46
3.1 Pandas简介 46
3.1.1 Pandas的主要优势 46
3.1.2 Pandas的主要功能 47
3.1.3 Pandas的底层结构 47
3.2 Series对象 48
3.2.1 创建Series对象 48
3.2.2 访问Series对象数据 50
3.2.3 Series对象的常用属性 50
3.2.4 Series对象的常用函数 51
3.3 DataFrame对象 55
3.3.1 DataFrame对象的数据存储结构 55
3.3.2 创建DataFrame对象 56
3.3.3 DataFrame对象的常用属性 59
3.3.4 DataFrame的列操作方法 60
3.4 Pandas金融量化分析应用 66
3.4.1 统计计算 67
3.4.2 累计计算 67
3.4.3 获取CSV文件数据 68
3.4.4 获取SQLite数据库中的数据 70
3.5 Pandas数据可视化 72
3.5.1 折线图 72
3.5.2 直方图 77
3.6 本章小结 79
3.7 思考题 79
第4章 金融量化分析工具的准备——NumPy基础 80
4.1 NumPy简介 80
4.1.1 NumPy的主要优势 80
4.1.2 NumPy的主要功能 81
4.1.3 ndarray的底层结构 81
4.2 ndarray对象的创建 82
4.2.1 创建ndarray对象的方法 82
4.2.2 创建特殊的ndarray对象 83
4.3 ndarray数组数据的访问 84
4.3.1 索引 84
4.3.2 切片 86
4.4 NumPy数组操作 88
4.4.1 修改ndarray数组形状 88
4.4.2 合并ndarray数组 91
4.4.3 分割ndarray数组 92
4.4.4 删除ndarray数组数据 93
4.4.5 添加数组数据 94
4.5 NumPy模块的主要函数 95
4.5.1 统计类函数 95
4.5.2 线性代数类函数 97
4.5.3 排序与筛选类函数 98
4.6 NumPy随机数处理 102
4.6.1 NumPy处理随机数问题的优势 102
4.6.2 生成随机数 102
4.6.3 随机抽样 104
4.6.4 随机模拟实验 105
4.7 本章小结 107
4.8 思考题 107
第5章 金融量化分析数据的准备 108
5.1 数据获取 108
5.1.1 从Tushare平台上获取数据 108
5.1.2 从AkShare模块中获取数据 110
5.1.3 从qstock模块中获取数据 112
5.1.4 从Alpha Vantage API中获取数据 118
5.2 数据清洗 124
5.2.1 数据清洗的内容 124
5.2.2 数据清洗示例 125
5.2.3 数据清洗进阶——JSON数据清洗 128
5.3 数据存储 131
5.3.1 用CSV文件存储数据 131
5.3.2 用SQLite数据库存储数据 132
5.4 本章小结 138
5.5 思考题 138
第6章 金融量化交易策略开发实战 139
6.1 趋势追踪交易策略 139
6.1.1 趋势追踪交易策略介绍 139
6.1.2 趋势追踪交易策略实战代码 140
6.1.3 趋势追踪交易策略实战代码详解 142
6.2 顶底背离交易策略实战 146
6.2.1 顶底背离交易策略介绍 146
6.2.2 顶底背离交易策略实战代码 147
6.2.3 顶底背离交易策略实战代码详解 148
6.3 小市值交易策略实战 149
6.3.1 小市值交易策略介绍 149
6.3.2 小市值交易策略实战代码 150
6.3.3 小市值交易策略实战代码详解 152
6.4 海龟交易策略实战 153
6.4.1 海龟交易策略介绍 153
6.4.2 海龟交易策略实战代码 153
6.4.3 海龟交易策略实战代码详解 156
6.5 网格交易策略实战 159
6.5.1 网格交易策略介绍 159
6.5.2 网格交易策略实战代码 160
6.5.3 网格交易策略实战代码详解 164
6.6 本章小结 167
6.7 思考题 167
第7章 金融量化分析常用的工具模块 168
7.1 TA-Lib模块 168
7.1.1 TA-Lib模块的安装 168
7.1.2 TA-Lib模块的函数类别 170
7.1.3 TA-Lib模块的常用函数 174
7.2 Empyrical模块 176
7.2.1 Empyrical模块的优点 177
7.2.2 Empyrical模块的用途 177
7.2.3 Empyrical模块的常用函数 177
7.3 Mplfinance模块 184
7.3.1 Mplfinance模块的优点 184
7.3.2 Mplfinance模块的主要函数 185
7.3.3 通过Mplfinance模块绘制K线图 189
7.4 本章小结 199
7.5 思考题 199
第8章 金融量化分析高级应用 200
8.1 金融数据回归分析 200
8.1.1 回归分析的基本原理 200
8.1.2 回归分析的步骤 201
8.1.3 构建回归模型示例 201
8.2 金融数据时间序列ARIMA模型回归分析 203
8.2.1 时间序列分析模型介绍 203
8.2.2 ARIMA模型的计算公式 204
8.2.3 构建ARIMA模型示例 205
8.3 金融数据时间序列VAR模型回归分析 215
8.3.1 VAR模型介绍 215
8.3.2 构建VAR模型示例 216
8.4 金融资产组合优化量化分析 223
8.4.1 马科维茨模型 223
8.4.2 利用cvxpy模块求解马科维茨模型 224
8.4.3 金融资产组合优化问题解决方案(通用) 226
8.5 本章小结 227
8.6 思考题 228
第9章 金融量化回测框架Backtrader实战应用 229
9.1 Backtrader框架简介 229
9.1.1 Backtrader框架的优势与特点 229
9.1.2 Backtrader回测框架的工作流程 230
9.2 Backtrader框架的数据准备 230
9.2.1 数据准备注意事项 230
9.2.2 数据读取函数 231
9.2.3 使用GenericCSVData函数读取数据 231
9.2.4 使用PandasData函数读取数据 235
9.2.5 同时加载多组数据 236
9.2.6 读取非OHLC数据 238
9.2.7 使用resampledata函数进行数据重新采样 241
9.3 Backtrader框架的指标 242
9.3.1 定义指标的核心要素 242
9.3.2 定义指标的步骤 243
9.3.3 定义指标示例 245
9.4 Backtrader框架的数据引用 249
9.4.1 加载数据的基础引用 249
9.4.2 加载数据的切片引用 250
9.4.3 指标值的引用 250
9.4.4 数据引用综合案例 251
9.5 Backtrader框架的自定义策略类 255
9.5.1 自定义策略类的核心问题 255
9.5.2 Backtrader策略类的内部生命周期函数 255
9.5.3 Backtrader策略类实例讲解 256
9.6 Backtrader框架的观察器应用 263
9.6.1 观察器的核心用途 263
9.6.2 默认加载观察器 263
9.6.3 加载内置的观察器 264
9.6.4 加载自定义观察器 266
9.7 Backtrader框架的分析器应用 268
9.7.1 分析器与观察器的关系 268
9.7.2 分析器之交易记录——Transactions类 268
9.7.3 分析器之交易记录——TradeAnalyzer类 271
9.8 本章小结 272
9.9 思考题 272