Python量化投资指南:基础、数据与实战
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

前言

随着Python的应用在业界已经排名第一,其统计分析的功能越来越丰富,量化投资工具箱也日渐成熟。与此同时,以Python量化投资为主题的图书也像雨后春笋般出现。虽然有大量的量化图书资料可供学习和参考,但仍存在以下两点不足。

第一,大篇幅Python知识性的介绍,忽视了量化投资才是主题。例如,大量图书重点描述了Pandas、Numpy和MatPlotLib库等模块与对应各种函数的用法,或者重点阐述量化投资过程中使用的某种特定平台或库,这些内容占据了图书50%的内容甚至更多,关于量化投资的内容却相对欠缺。

量化投资图书不仅应该围绕量化主题,而且应该围绕这些主题探讨解决之道。例如,在获取量化数据过程中,经常涉及某个源的数据是否准确的疑问。此时解决之道应该是如何从统计的角度判断数据的可靠性、大致有哪些统计方法、如何运用Python编程实现等。

第二,碎片化的量化投资知识,缺乏切实可行的系统性操作指南。虽然大量图书中介绍了一些可供操作的策略(如双均线择时策略、海龟交易策略和因子选股策略等),或者某些原理(如资本资产定价原理和套利定价原理等),但在实现过程中要么一带而过,要么完全依赖上述提到的特定平台或库。

对于量化投资者而言,不仅不需要依赖任何特定平台或库的知识,还需要系统性的量化方法与技巧,具体包括量化投资全过程,即数据源、数据的描述性统计和模型分析、基本面选股方法、技术面选股择时方法与投资组合构建等各方面的内容。

为弥补上述遗憾,笔者从自身近10年的量化投资经历出发,在已出版的《量化投资基础、方法与策略——R语言实战指南》一书基础上,把R语言升级到Python篇。之所以称为“升级”,不是单纯地把R语言用Python代替,而是随着笔者量化投资阅历不断丰富、教学经验总结和读者的反馈,进行了以下完善和优化。

第一,做相应的保留和删除,优化了章节内容。首先,根据读者的反馈,本书把好的内容保留,并用Python来实现,如第2章软件基础知识,大部分内容保持不变,只是运用了Python进行实现;在第3章,个股和行业板块相关性分析、通达信行业板块排行和均线策略等内容,读者反馈具有较强的实践性,因此保留。其次,删除了与量化投资相关性不是很高的内容,如数据转换等。

第二,增加了大量实用性和可操作性的内容,使逻辑结构更加系统化。如在第1章,大幅度增加了基本面、技术面和投资绩效等量化投资所需的基础知识;在第3章,增加了大篇幅金融数据爬虫的内容,从而解决了量化数据源之苦;在第4章量化分析与实战部分,在原先技术性投资基础上,大幅度增加了基本面财务指标分析及选股方法。通过一系列的内容补充,图书的系统性更强。

本书结构

本书共分为5章。

第1章为量化投资基础。主要在探讨基本面和技术面等知识的基础上,阐述了量化投资的基本概念、回测过程和实盘软件及其优劣,并对Python软件、Python开发环境的基本安装和配置进行了介绍。

第2章为Python统计分析基础。主要以量化投资过程中遇到的数据读取、数据整理、数据分析为中心,讲述了Python的基本操作,避免了纯粹的Python编程介绍,同时增强了读者的数据处理能力。

第3章为网络爬虫与金融数据获取。本章主要介绍利用Python进行金融数据收集,具体包括利用BS4和Selenium等库系统性获取股票K线数据、股票财务数据和其他证券数据的过程,特别是利用Selenium抓取弹出框、菜单栏和下拉页面等不同形式的金融网页数据。

第4章为量化分析与实战。阐述使用Python进行描述性统计分析、构建技术面和基本面的选股方法,以及金融统计模型的应用。具体通过案例的形式,深入浅出阐述如何利用现有的数据源进行量化处理和分析。

第5章为回测框架及策略分析。在对大量量化投资回测框架比较的基础上,选择了最实用的Backtesting、Backtrader和微软的Qlib三大库进行阐述,介绍了如何使用这些库进行系统性的策略构建和投资组合优化分析。

本书特色

第一,围绕量化投资,循序渐进地介绍了需要掌握的技能。量化投资“打怪升级”路径为:基础知识→获取金融数据→构建系统性策略→策略绩效分析和优化。这对应本书的各个章节,均为笔者量化投资研究和实践的经验总结。

第二,以问题为导向,阐述了如何用Python进行分析。在量化投资过程中,投资者同样可能会遇到各种问题,例如,量化投资数据从哪里找?基本面大量的财务指标中哪些更重要?均线策略能不能赚钱,如何对策略进行修正和完善?大盘下跌5个点,后续会如何走?本书围绕这些问题,阐述了如何用Python编程进行定量分析,并提出了解决方案。经过多年的教学和实践,笔者发现这也是快速掌握知识和技能的方法之一。

第三,知识汇。这部分作为量化投资和Python等系统性知识的介绍,在每个章节中穿插了实际案例,例如,西蒙斯、巴菲特等人物及经营公司的绩效、Python工具包Pandas、Backtesting库的功能、外汇平台等各方面及Python和投资相关知识的介绍。

本书适用群体

本书适用群体比较广泛,主要适用于以下三类人群。

第一,适用于入门量化投资和普通投资者,同时可作为金融机构及对投资感兴趣读者的实用指南。

第二,可作为Python统计分析入门和提高的指导书。

第三,适用于专业课程教材和参考书。本书是笔者讲授的“统计计算与应用软件”“量化投资学”“商务数据挖掘”和“金融数据挖掘实战”等课程自编教程总结,除上述几门课程,还可以作为“金融工程”“时间序列分析”和“证券投资分析”等统计与金融相关课程的辅助参考资料。

致谢

笔者深知,个人只是代码和方法的搬运工,在学习Python语言过程中,感激为Python做出贡献的团队和个人开发者,同时也感谢Stack Overflow和GitHub等网站,正是他们,我们对Python才有了更多的了解,并对我们深入研究特定问题给出了建设性参考意见。

同时还要感谢感谢景德镇陶瓷大学刘冰峰博士、宋俊杰老师、杨健仁博士、童敏慧博士、李小永博士和许剑雄老师的大力支持;感谢广西财经学院中国—东盟统计学院的鼎力支持,以及蒋瑜、彭红彩和谭丽东等同学帮忙修改问题语句和错别字,才使本书顺利出版。

当然还要感谢电子工业出版社的李冰和张梦菲等编辑,正是他们的认真付出,才使本书更加完善。

最后,希望本书能给读者带来实质性的启发与思考,在快乐中学习量化投资和编程。毫无疑问,本书编写过程中疏漏难免,恳请读者批评和指正。本书内容探讨、代码下载和运行等相关问题,请加QQ交流群:778545108或邮箱:fwushi815@163.com,和笔者一起探讨,共同进步。

付志刚