本书是以给广大量化研究者建立一个一般性的量化研究流程(主要是量化策略开发,也包括其他量化研究)为主旨来展开编写的。全部章节以流程化的形式展开,从量化研究的数据开始到最终以交易结束。数据库、指标库、算法库、工具库、可视化库、报告和日常工作系统、交易系统这7个核心库/系统分别解决了量化研究中某一个环节的问题。
量化研究是以上述7个核心库/系统所代表环节的一个循环,在这个循环中不断进行的改进和研究。它将数据和思想相结合,通过交易来检验研究成果是否达到预期,然后改进思想和更换数据,并投入下一次交易中。这样的循环使得每一次量化研究都更加接近理想效果。而在循环的每一个环节上,本书给出了一系列工具、算法、技术等来支撑各个核心库/系统的功能。
本书在编程语言上以Matlab和Python为主,数据库一章用到了MySQL的基本知识,交易系统一章用到了MongoDB的知识。本书的内容十分丰富,通过阅读本书,读者可以对量化研究形成一个系统、全面、完整的认识,并在今后的研究工作中逐步拓展,最终形成自己的体系。
李一邨,浙江大学量化金融博士,现任杭州伊园科技有限公司总经理。兼职受聘为杭州市科促会数据科学家、杭州市科促会第二届理事会理事、杭州师范大学校外指导老师、杭州市科协专家智库成员。曾获证券时报和期货日报联合评选的第八到第十二连续5届“中国最佳金融量化策略工程师”。
前沿量化科学领域的开创者,多年来致力于将多元学科的前沿理论嫁接融合到金融投资领域。曾任某A股上市金融机构研究所量化研究总监,独立开发商品指数体系,并在国内金融界市场占有率第一的金融资讯终端万得资讯公开发布。拥有多年Matlab和Python编程经验。精通量化金融领域,也对机器学习领域有较深入的研究,发表多篇金融和机器学习交叉的SCI、EI论文,撰写过多本专著。实践中,开发多空仓点价交易策略,实盘夏普比1.5+,年化收益率100%+。在多年的量化金融研究工作中,从事复杂衍生品设计、套期保值方案设计、大宗商品点价交易、量化投资策略开发等多个实战项目,为高净值客户提供资产管理服务,获得可观的业绩与利润。
绪论 量化研究体系介绍 1
0.1 7大模块 1
0.1.1 数据库 1
0.1.2 指标库 2
0.1.3 算法库 2
0.1.4 工具库 3
0.1.5 可视化库 5
0.1.6 报告和日常工作系统 5
0.1.7 交易和风控系统 5
0.2 结束语 7
第1章 数据库 9
1.1 股票日频率行情数据下载脚本 13
1.2 期货成交持仓排名数据下载脚本 21
1.3 EDB数据下载案例 26
1.4 高频数据下载案例 30
1.5 同花顺量化数据接口的融资标的股数据下载案例 38
1.6 同花顺十大流通股东数据下载案例 39
第2章 指标库 42
2.1 指标库的设计与分类 42
2.1.1 根据投资标的进行分类 42
2.1.2 根据数据性质进行分类 42
2.1.3 根据投资市场进行分类 43
2.2 指标库目录管理程序的说明 43
2.3 技术指标案例 58
2.3.1 摆动指标 58
2.3.2 波动指标 64
2.3.3 超买超卖指标 72
2.3.4 成交量指标 78
2.3.5 反趋向指标 89
2.3.6 价格指标 105
2.3.7 量价技术指标 111
2.3.8 能量指标 118
第3章 算法库 131
3.1 机器学习常见算法分类汇总 131
3.1.1 按学习方式分类 132
3.1.2 按对训练集的使用方法分类 134
3.1.3 按形式及功能分类 135
3.2 傅里叶变换 143
3.2.1 傅里叶变换算法理论 143
3.2.2 离散傅里叶变换代码与去噪实例 145
3.2.3 利用快速傅里叶变换对原数据进行降噪 151
3.3 ReliefF特征选择 152
3.3.1 ReliefF算法理论 152
3.3.2 ReliefF算法实例分析 155
3.4 高斯混合聚类模型(GMM) 161
3.4.1 GMM算法理论 161
3.4.2 算法代码及实例 169
3.5 Chi-Merge算法 175
3.5.1 Chi-Merge 算法简介 175
3.5.2 Chi-Merge原理介绍 176
3.5.3 Chi-Merge实例分析 177
3.5.4 Chi-Merge算法代码 182
3.6 粗糙集分类算法 188
3.6.1 粗糙集分类算法简介 188
3.6.2 粗糙集分类算法原理介绍 189
3.6.3 粗糙集分类算法函数 196
3.6.4 粗糙集分类算法实例分析 197
3.6.5 粗糙集分类算法代码 199
第4章 工具库 208
4.1 数据清洗程序 208
4.1.1 自动数据清洗程序的功能概述 208
4.1.2 手动数据清洗程序的功能概述 211
4.1.3 自动数据清洗程序 213
4.1.4 手动输入日期序列对数据进行补全的程序 217
4.2 因子回测程序 218
4.2.1 因子回测程序整体逻辑 218
4.2.2 因子回测程序流程 218
4.2.3 输入参数 219
4.2.4 模型结构及逻辑 221
4.2.5 因子回测程序代码 223
4.3 先后轮动关系挖掘程序 232
4.3.1 先后轮动程序介绍 232
4.3.2 先后轮动总体流程 232
4.3.3 输入参数 233
4.3.4 模型结构及逻辑 234
4.3.5 自定义折线化函数逻辑 235
4.3.6 程序代码 235
4.4 多品种量化回测系统 251
4.4.1 平台思路框架 251
4.4.2 公式介绍 251
4.5 中文变量与代码变量对照表 275
4.6 函数介绍 276
4.7 实例分析 278
第5章 可视化库 281
5.1 Matlab画图编程技巧总结 281
5.1.1 画布设置 281
5.1.2 坐标轴设置 282
5.1.3 label设置 283
5.1.4 legend设置 284
5.1.5 title设置 284
5.1.6 颜色、透明图控制 284
5.1.7 plot函数 285
5.1.8 scatter函数 286
5.1.9 plotyy函数 288
5.1.10 极坐标与笛卡儿坐标转换 290
5.1.11 patch函数应用 291
5.1.12 构建曲面 292
5.1.13 自制坐标轴 293
5.1.14 字体 293
5.1.15 画图技巧 294
5.2 形态类画图程序 296
5.2.1 渐变彩色折线图 296
5.2.2 饼状图 298
5.2.3 彩带图 302
5.2.4 关系图 304
5.2.5 火柴图 306
5.2.6 雷达图 309
5.2.7 面积图 311
5.2.8 柱状图 314
5.3 功能性图例 318
5.3.1 沿有效前沿的资产权重变化面积图 318
5.3.2 资产组合的有效前沿 319
5.3.3 二资产协整关系判断及对冲策略测试 320
......
本书是作者李一邨与电子工业出版社的资深编辑李冰老师的初次合作。李冰老师具有多年科技书籍编辑工作经验,在她的帮助和指导下,历时一年半才完成初稿。著书期间,经过多次商讨和修改,日臻完善。我们衷心地希望本书的内容能够为从事量化研究领域工作的读者提供一些帮助。
本书主旨
本书主要为有志于从事量化研究领域相关工作的读者建立一个量化研究的一般性流程和框架,并对流程的关键环节适当展开,给出程序案例。读者通过学习本书能够了解一般性的量化研究内容,并在今后结合自身的工作进一步丰富和拓展这个框架,以期最终建立自己独特的量化研究体系。
本书主要内容
本书以7大核心库/系统为核心构建量化研究体系,每个核心库/系统都在研究环节中发挥了自身的功能,具体内容如下。
(1)数据库以同花顺和万得两个数据商的量化接口为例,对两个接口的各个数据模块编写了数据下载脚本并作为案例,这些案例可以帮助读者了解基于数据商的量化接口开发数据库的编程经验。
(2)指标库给出了一套指标库目录管理程序,并总结了8大类技术指标,这些技术指标可在量化投资中发挥风控、止损、止盈、趋势判断等功能。
(3)算法库首先给出了机器学习算法的一般分类,然后重点介绍了几个经典和常用的算法并作为案例。傅里叶变换主要用于时间序列的分析,可以对时间序列进行成分分解和去掉噪声成分;ReliefF是一种特征选择算法,可对研究数据相对于目标数据的重要性进行排序,从中选择重要的数据作为特征因子;高斯混合聚类是一种非监督聚类算法,用于特征数据是高斯分布的聚类;Chi-Merge算法是一种连续数值数据离散化的算法,通常可用于将连续数值数据离散化为几个标签,从而将回归问题转化为分类问题;粗糙集分类算法是一种基于规则推理的分类算法。上述几个算法功能各不相同,在研究中存在互补性。
(4)工具库的内容包括:数据清洗程序,用于对时间序列数据的清洗,包括补全、匹配、平滑等;因子回测程序,用于对因子在研究中是否有效进行回测的程序;先后轮动程序,一个观察自变量和因变量是否存在先行滞后关系的程序,用于检验自变量和应变量在时间上的因果性;回测平台程序,用于量化策略的回测。
(5)可视化库首先总结了一些Matlab画图编程的技巧,并总结了一些常用函数,然后从形态类画图程序和功能类画图程序两大类出发分别介绍了一些图例。其中,形态类画图程序是指折线图、柱状图、饼状图等;功能类画图程序主要是为了实现某种研究目的而使用的画图程序,如对异常数据点的可视化、两个时间序列协整关系的观察等,这些画图程序可以广泛运用于研究报告、论文撰写及任何需要用到数据展示的应用场景中。
(6)报告和日常工作系统首先介绍了Matlab调用Word相关COM接口的技术,然后利用这些技术开发了一套自动化撰写量化研究报告的程序,最后介绍了量化团队的管理方法,并开发了一套量化研究员的管理考核系统。
(7)交易系统首先介绍了爬虫的基本知识和原理,然后利用这些知识以东方财富网的股票交易接口、期货交易接口、期权交易接口为例给出了开发案例,最后介绍了VNPY交易接口的下载、安装和基本功能。