前言
本书是作者李一邨与电子工业出版社的资深编辑李冰老师的初次合作。李冰老师具有多年科技书籍编辑工作经验,在她的帮助和指导下,历时一年半才完成初稿。著书期间,经过多次商讨和修改,日臻完善。我们衷心地希望本书的内容能够为从事量化研究领域工作的读者提供一些帮助。
本书主旨
本书主要为有志于从事量化研究领域相关工作的读者建立一个量化研究的一般性流程和框架,并对流程的关键环节适当展开,给出程序案例。读者通过学习本书能够了解一般性的量化研究内容,并在今后结合自身的工作进一步丰富和拓展这个框架,以期最终建立自己独特的量化研究体系。
本书主要内容
本书以7大核心库/系统为核心构建量化研究体系,每个核心库/系统都在研究环节中发挥了自身的功能,具体内容如下。
(1)数据库以同花顺和万得两个数据商的量化接口为例,对两个接口的各个数据模块编写了数据下载脚本并作为案例,这些案例可以帮助读者了解基于数据商的量化接口开发数据库的编程经验。
(2)指标库给出了一套指标库目录管理程序,并总结了8大类技术指标,这些技术指标可在量化投资中发挥风控、止损、止盈、趋势判断等功能。
(3)算法库首先给出了机器学习算法的一般分类,然后重点介绍了几个经典和常用的算法并作为案例。傅里叶变换主要用于时间序列的分析,可以对时间序列进行成分分解和去掉噪声成分;ReliefF是一种特征选择算法,可对研究数据相对于目标数据的重要性进行排序,从中选择重要的数据作为特征因子;高斯混合聚类是一种非监督聚类算法,用于特征数据是高斯分布的聚类;Chi-Merge算法是一种连续数值数据离散化的算法,通常可用于将连续数值数据离散化为几个标签,从而将回归问题转化为分类问题;粗糙集分类算法是一种基于规则推理的分类算法。上述几个算法功能各不相同,在研究中存在互补性。
(4)工具库的内容包括:数据清洗程序,用于对时间序列数据的清洗,包括补全、匹配、平滑等;因子回测程序,用于对因子在研究中是否有效进行回测的程序;先后轮动程序,一个观察自变量和因变量是否存在先行滞后关系的程序,用于检验自变量和应变量在时间上的因果性;回测平台程序,用于量化策略的回测。
(5)可视化库首先总结了一些Matlab画图编程的技巧,并总结了一些常用函数,然后从形态类画图程序和功能类画图程序两大类出发分别介绍了一些图例。其中,形态类画图程序是指折线图、柱状图、饼状图等;功能类画图程序主要是为了实现某种研究目的而使用的画图程序,如对异常数据点的可视化、两个时间序列协整关系的观察等,这些画图程序可以广泛运用于研究报告、论文撰写及任何需要用到数据展示的应用场景中。
(6)报告和日常工作系统首先介绍了Matlab调用Word相关COM接口的技术,然后利用这些技术开发了一套自动化撰写量化研究报告的程序,最后介绍了量化团队的管理方法,并开发了一套量化研究员的管理考核系统。
(7)交易系统首先介绍了爬虫的基本知识和原理,然后利用这些知识以东方财富网的股票交易接口、期货交易接口、期权交易接口为例给出了开发案例,最后介绍了VNPY交易接口的下载、安装和基本功能。
本书特色
纵观全书,可发现本书特点鲜明,主要表现在以下几个方面。
(1)知识系统、全面、丰富:因为本书旨在为读者建立一个全面、系统的量化研究流程和框架,所以撰写本书所需的知识也必然相应地需要全面和系统。比如,在编程语言方面,本书既基于有着悠久数据分析编程历史的Matlab语言,也基于近年来被称为胶水语言的Python,这两门语言在数据分析领域被广泛使用,应该说本书迎合了当下数据分析的主流语言。另外,量化研究离不开数据,所以本书也用到了MySQL和MongoDB两门数据库语言,同时对于爬虫这门技术也做了深入讲解,为读者今后建立自己感兴趣想要抓取的特色的数据库打下坚实基础。
(2)教学与应用并重:本书不仅是一本传播知识的书,也是一本实战和应用的书。在每一章开头都给出了这一章所需要的必备知识,然后对所讲的知识进行一次实战运用,或者给出案例,或者直接做一个工程项目,力求学以致用,为读者建立一个“落地”的量化研究体系。
(3)解说翔实,图文并重:因为量化研究是数理化程度比较深的研究领域,所以对数学能力有一定的要求。以本书算法库中的“傅里叶变换”为例,本书首先在解说中给出了全面、严谨的数学推导过程,然后基于数学结论编写程序,并代入实证数据计算结果,最后对结果进行可视化展示和说明,帮助读者从数学推导和实证两个角度综合理解。
(4)案例实用:本书的案例和程序并不只作为知识讲解的示例使用,它还是量化研究中时常需要面对的问题的一个答案。在实际的量化研究工作中,本书所给出的程序可以真正解决问题,具有实战意义。
(5)系统可拓展:本书给出的是量化研究的一般性框架,读者可以通过学习本书,结合自身的研究需要,对本书的程序和框架进行拓展,最终形成一套适合自身研究需要的特色化、个性化的量化研究体系。
本书读者定位和阅读方法
本书的读者主要是教师、学生、专业人士及其他对量化研究技术感兴趣的人士。
致教师
本书系统地介绍了量化研究技术,可以作为数学、统计、金融等专业本科生或研究生的教材。书中的内容不仅系统,而且相对独立,教师可以根据课程的学时和专业方向,选择合适的内容进行课堂教学,其他内容则可以作为参考。授课时,建议先补充一定的计算机知识和编程知识,对于学术性较深的章节如算法库,建议先补充高等数学、概率论、线性代数等数学知识。在进行课程备课的过程中,如果需要书中的一些电子资料作为课件或授课支撑材料,可以直接给笔者发邮件(303984464@qq.com),笔者会根据具体情况,提供力所能及的帮助。
致学生
作为大数据时代的学生,量化研究是一项基本技能,尤其是对以后有志于做科研工作的学生来说更应掌握。在今后的大数据时代,量化分析技术将会像今天的Office办公软件技术一样,成为工作中必不可少的一部分,所以无论未来是否从事量化投资相关的工作,学习量化研究都将有助于今后的职业生涯。
致专业人士
对于从事量化研究的专业人士,尽可以关注整个量化研究体系,因为本书的知识体系应该是当前量化类书籍中相对完善的。此外,书中的算法案例和项目案例,也是本书的一个特色,值得借鉴。
配套资源
笔者在金融行业从业多年,有着丰富的业界积累。对于有资源需求的读者,欢迎关注伊园科技的官方知乎号、微信公众号、B站号。以下是三者的二维码。
勘误和支持
由于本书编写时间仓促,加之作者水平有限,书中错误和疏漏之处在所难免。在此,诚恳地期待广大读者批评指正。如果有建议,可以直接发送至邮箱303984464@qq.com。在技术之路上如能与大家互勉共进,我们倍感荣幸!对于书中出现的问题,欢迎读者通过杭州伊园科技有限公司的知乎号、微信公众号、B站号、邮箱等进行反馈。知乎号:李一邨-量化投资;微信公众号:return量化;B站号:李一邨;邮箱:2975056631@qq.com。
致谢
感谢MathWorks官方文档提供了全面、深入、准确的参考材料,强大的官方文档支持是其他资料无法企及的;同时,感谢Matlab中文论坛为本书提供的交流讨论专区;感谢伊园科技编委会的鼎力支持;感谢电子工业出版社李冰老师的支持和鼓励,感谢徐萍老师在文字编辑方面的辛勤工作,使我们顺利完成全部书稿。