
Python与量化投资:从基础到实战
《Python与量化投资:从基础到实战》是一本图书,由电子工业出版社出版。
基本介绍
- 书名:Python与量化投资:从基础到实战
- 作者:王小川
- ISBN:978-7-121-33857-1
- 页数:424
- 定价:99
- 出版社:电子工业出版社
- 出版时间:2018-4
- 开本:16
图书信息
量化投资名师王小川主编、提供Python零基础入门及量化策略建模参考及实现、提供大型回测平台、代码直接实盘、可线上交流。
王小川 等 主编
ISBN 978-7-121-33857-1
2018年4月出版
定价:99.00元
424页
16开
编辑推荐
量化投资界精英王小川领衔撰写
Python基础与量化投资策略双管齐下
为不懂Python语言的读者提供零基础入门
为有Python基础的读者提供量化策略建模参考,为本书重点
提供大型回测平台及本书代码
可将本书代码直接实盘套用,进行投资。
内容提要
《Python与量化投资:从基础到实战》主要讲解如何利用Python进行量化投资,包括对数据的获取、整理、分析挖掘、信号构建、策略构建、回测、策略分析等。《Python与量化投资:从基础到实战》也是利用Python进行数据分析的指南,有大量的关于数据处理分析的套用,并将重点介绍如何高效地利用Python解决投资策略问题。本书分为Python基础篇和量化投资篇:Python基础篇主要讲解Python软体的基础、各个重要模组及如何解决常见的数据分析问题;量化投资篇在Python基础篇的基础上,讲解如何使用优矿(uqer.io)回测平台实现主流策略及高级定製策略等。
《Python与量化投资:从基础到实战》可作为专业金融从业者进行量化投资的工具书,也可作为金融领域的入门参考书。在本书中有大量的Python代码、Python量化策略的实现代码等,尤其是对于量化策略的实现代码,读者可直接自行修改并获得策略的历史回测结果,甚至可将代码直接实盘套用,进行投资。
目录
第1章 準备工作 1
1.1 Python的安装与设定 1
1.2 常见的Python库 2
第2章 Python基础介绍 7
2.1 Python学习準备 7
2.2 Python语法基础 11
2.2.1 常量与变数 11
2.2.2 数与字元串 11
2.2.3 数据类 15
2.2.4 标识符 18
2.2.5 对象 19
2.2.6 行与缩进 20
2.2.7 注释 22
2.3 Python运算符与表达式 22
2.3.1 算数运算符 22
2.3.2 比较运算符 24
2.3.3 逻辑运算符 25
2.3.4 Python中的优先权 27
2.4 Python中的控制流 27
2.4.1 控制流的功能 28
2.4.2 Python的三种控制流 29
2.4.3 认识分支结构if 30
2.4.4 认识循环结构for…in 32
2.4.5 认识循环结构while 33
2.4.6 break语句与continue语句 35
2.5 Python函式 39
2.5.1 认识函式 39
2.5.2 形参与实参 40
2.5.3 全局变数与局部变数 44
2.5.4 对函式的调用与返回值 45
2.5.5 文档字元串 46
2.6 Python模组 47
2.6.1 认识Python模组 47
2.6.2 from…import详解 49
2.6.3 认识__name__属性 50
2.6.4 自定义模组 50
2.6.5 dir()函式 51
2.7 Python异常处理与档案操作 52
2.7.1 Python异常处理 52
2.7.2 异常的发生 55
2.7.3 try…finally的使用 56
2.7.4 档案操作 57
第3章 Python进阶 59
3.1 NumPy的使用 59
3.1.1 多维数组ndarray 59
3.1.2 ndarray的数据类型 60
3.1.3 数组索引、切片和赋值 61
3.1.4 基本的数组运算 62
3.1.5 随机数 63
3.2 Pandas的使用 67
3.2.1 Pandas的数据结构 68
3.2.2 Pandas输出设定 70
3.2.3 Pandas数据读取与写入 70
3.2.4 数据集快速描述性统计分析 71
3.2.5 根据已有的列建立新列 72
3.2.6 DataFrame按多列排序 73
3.2.7 DataFrame去重 73
3.2.8 删除已有的列 74
3.2.9 Pandas替换数据 75
3.2.10 DataFrame重命名 75
3.2.11 DataFrame切片与筛选 76
3.2.12 连续型变数分组 78
3.2.13 Pandas分组技术 79
3.3 SciPy的初步使用 83
3.3.1 回归分析 84
3.3.2 插值 87
3.3.3 正态性检验 89
3.3.4 凸最佳化 93
3.4 Matplotlib的使用 97
3.5 Seaborn的使用 97
3.5.1 主题管理 98
3.5.2 调色板 101
3.5.3 分布图 102
3.5.4 回归图 104
3.5.5 矩阵图 106
3.5.6 结构格线图 108
3.6 Scikit-Learn的初步使用 109
3.6.1 Scikit-Learn学习準备 110
3.6.2 常见的机器学习模型 111
3.6.3 模型评价方法——metric模组 120
3.6.4 深度学习 124
3.7 SQLAlchemy与常用资料库的连线 124
3.7.1 连线资料库 125
3.7.2 读取数据 126
3.7.3 存储数据 126
第4章 常用数据的获取与整理 129
4.1 金融数据类型 129
4.2 金融数据的获取 131
4.3 数据整理 135
4.3.1 数据整合 135
4.3.2 数据过滤 137
4.3.3 数据探索与数据清洗 138
4.3.4 数据转化 140
第5章 通联数据回测平台介绍 143
5.1 回测平台函式与参数介绍 144
5.1.1 设定回测参数 144
5.1.2 accounts账户配置 154
5.1.3 initialize(策略初始化环境) 160
5.1.4 handle_data(策略运行逻辑) 160
5.1.5 context(策略运行环境) 160
5.2 股票模板实例 168
5.3 期货模板实例 173
5.4 策略回测详情 179
5.5 策略的风险评价指标 181
5.6 策略交易细节 184
第6章 常用的量化策略及其实现 187
6.1 量化投资概述 187
6.1.1 量化投资简介 187
6.1.2 量化投资策略的类型 188
6.1.3 量化研究的流程 189
6.2 行业轮动理论及其投资策略 192
6.2.1 行业轮动理论简介 192
6.2.2 行业轮动的原因 192
6.2.3 行业轮动投资策略 194
6.3 市场中性Alpha策略 199
6.3.1 市场中性Alpha策略介绍 199
6.3.2 市场中性Alpha策略的思想和方法 200
6.3.3 实例展示 201
6.4 大师策略 206
6.4.1 麦克·欧希金斯绩优成分股投资法 207
6.4.2 杰拉尔丁·维斯蓝筹股投资法 211
6.5 CTA策略 219
6.5.1 趋势跟随策略 219
6.5.2 均值回复策略 241
6.5.3 CTA策略表现分析 253
6.6 Smart Beta 258
6.6.1 基于权重最佳化的Smart Beta 258
6.6.2 基于风险因子的Smart Beta 268
6.7 技术指标类策略 281
6.7.1 AROON指标 281
6.7.2 BOLL指标 285
6.7.3 CCI指标 288
6.7.4 CMO指标 293
6.7.5 Chaikin Oscillator指标 295
6.7.6 DMI指标 299
6.7.7 优矿平台因子汇总 302
6.8 资产配置 317
6.8.1 有效边界 318
6.8.2 Black-Litterman模型 335
6.8.3 风险平价模型 349
6.9 时间序列分析 358
6.9.1 与时间序列分析相关的基础知识 358
6.9.2 自回归(AR)模型 365
6.9.3 滑动平均(MA)模型 372
6.9.4 自回归滑动平均(ARMA)模型 376
6.9.5 自回归差分滑动平均(ARIMA)模型 379
6.10 组合最佳化器的使用 384
6.10.1 最佳化器的概念 384
6.10.2 最佳化器的API接口 386
6.10.3 最佳化器实例 388
6.11 期权策略:Greeks和隐含波动率微笑计算 392
6.11.1 数据準备 392
6.11.2 Greeks和隐含波动率计算 394
6.11.3 隐含波动率微笑 401
第7章 量化投资十问十答 405
精彩节摘
推荐序一
很荣幸收到王小川博士的邀请,为其新书《Python与量化投资:从基础到实战》作序。王小川博士是华创证券研究所非常出色的分析师,在日常工作中非常乐于分享他的开发经验和心得。在本书出版之前,他已经出版了两本关于MATLAB的畅销书,我相信这一本介绍使用Python进行量化投资的新书,会推动相关领域的发展。
在过去的几年中,在很多领域内基于创新类算法的套用场景和相关产品不断涌现,IT的推动作用已经从自动化延展到了智慧型化。在开源的大氛围下,算法的更新叠代速度不断加快,并在各个领域渗透和融合,专业化程度越来越高。
在金融领域的量化投资、智慧型投顾、信用评级、新闻监控、舆情分析等多个方向上,目前已经大量使用了相关技术和算法,并且融合的程度在不断加深。与其他领域相比,金融领域的算法套用有其自身的特点:一是信息的来源多、部分数据非结构化;二是在不同的套用场景甚至策略之间,所适用算法的差异较大,例如投资交易的量化策略、智慧型投顾中的用户画像、新闻处理中的自然语言处理和大数据,都涉及了不同大类的算法;三是投资中各个影响因素之间的逻辑关係複杂化和模糊化;此外,很多金融问题不是单目标最佳化的,也不是封闭的信息集。
展望未来,在金融科技的落地方向上,量化投资、大数据的Quantamental、精準画像、自然语言处理等依然会是焦点,势必吸引越来越多的关注及资源。量化投资和Python这两个词是当下的焦点,王小川博士平时的工作正是其交汇点。正如书名《Python与量化投资:从基础到实战》所表达的,本书包含了王小川博士在工作中的宝贵经验;在案例中描述的示例,正是本研究所金融工程的很多重要研究方向,例如常用的行业轮动、市场中性策略、多因子策略、CTA策略、期权策略、时间序列等。所以,本书对于了解量化开发的运用现状及掌握必备的开发能力而言,是非常有益的。
考虑到众多读者可能没有Python基础,本书从零开始介绍Python语言,并且由浅入深、循序渐进。值得一提的是,与目前市场上的量化投资类图书不同,本书的最大特点是接地气、实用性强,并开源了全部的策略代码,读者可以自行运行和修改。
本书还设定了读者互动网站,对于广大投资者提出的关于本书的疑问,可以在第一时间做出解答。本书可以帮助大家更好地了解量化、掌握方法及提升量化投资的能力,非常值得大家细读。
华中炜
华创证券执委会委员、副总经理兼研究所所长
推荐序二
网际网路时代的量化投资:科技让量化投资和智慧型投资更普及
科技一直是推动投资行业变革的重要力量,它的发展和套用催生了量化投资的新模式。量化投资利用科学的方法认识市场波动,通过实证方法验证投资假设,通过组合最佳化生成Alpha交易,可有效地控制风险暴露,高效覆盖大量的投资机会,并提高投资的效率。
自量化投资的开山之作Beat the market:A Scientific Stock Market System出版以来,量化投资便在全球範围内快速发展,涌现出指数基金、对沖基金、SmartBeta和Fund of Funds(FOF)等量化创新产品。量化投资改变了全球资产管理格局,成为主流的投资方法,其管理规模也在快速增长。目前,全球最大的资产管理公司和对沖基金都是基于量化和指数投资的机构。
量化投资行业的蓬勃发展吸引了众多年轻人投入其中,但因其门槛高、专业性强,只有大型投资机构才有能力提供量化研究和投资平台,普通大众没有机会利用专业的量化平台进行研究和投资,也缺乏系统性的量化投资培训教材,这成为制约行业发展的主要问题。因此,在2015年,通联数据推出开放的量化投资平台——优矿,让普通大众也能够拥有华尔街专业机构的量化装备,让量化投资变得更加容易。藉助Python科学计算的能力和海量的金融大数据,在优矿平台上可以快速进行统计推断、因子分析、信号研究、资产定价、事件研究、机器学习、深度学习等量化研究工作。优矿已成长为大型的专业量化平台,为行业的发展培养了很多优秀人才。
优矿的部分特色如下。
海量的金融大数据:提供各类资产和财务数据、因子、主题、巨观行业特色大数据和量化场景PIT数据,保障在量化过程中不引入未来数据。
多资产回测框架:提供股票、期货、指数、场内外基金等多资产多策略回测和丰富的衍生工具,保证多因子策略、事件驱动等的快速实现。
优矿的风险模型:接轨国际化风险模型算法,採用优质原始数据,提供10种风格因子和28种行业因子,全面揭示市场行业风险。
量化因子库:提供400多种量化因子库,除了提供了传统的投资因子,还提供了特色Alpha因子如分析师评级、分析师赢利预测等。
《Python与量化投资:从基础到实战》是华创证券研究所量化团队联合通联数据优矿团队的力作,在很大程度上填补了量化投资培训教材的空白,在本书中循序渐进地讲解了量化投资的思想和策略,并藉助Python语言帮助读者从零开始进行量化投资实战。全书分为基础篇及进阶篇,基础篇是Python入门与进阶,进阶篇是量化投资实战。
本书适用于有一定数理及编程基础的人员阅读,如果读者能够静下心来,踏踏实实地学习和思考,去理解量化投资的本质和逻辑,就会发现本书蕴藏的宝贵价值。
展望未来,科技的发展也将推动量化投资升级换代。在传统的量化投资中,交易策略是被事先编程的静态模型,其局限性在于策略在一个时期内的效果非常好,但在市场环境发生变化之后就可能效果不佳。机器学习等人工智慧技术的套用推动了量化投资进入新时代,智慧型机器会在市场的发展和变化中观察到市场的异常,交易策略也会随着市场的变化而变化。
量化投资的另一个新趋势是与基本面投资相结合。我们可以用机器帮助我们学习、归纳和总结基本面投资的分析方法和经验,最后形成一套可重複的研究模型。这就是将量化和基本面结合起来,形成“量本投资”的新範式。在未来,无论是做量化还是基本面的投资者,都应该向中间地带去跨界,去探索。也希望本书的读者们都能够将投资知识和前沿科技融会贯通、学以致用,共同推动中国量化投资行业的发展。
王政
通联数据创始人兼执行长
作者简介
王小川,华创证券研究所金融工程高级分析师,国内知名MATLAB、Python培训专家,MATLABSKY创始人之一,人大经济论坛CDA课程Python金牌讲师。从事量化投资相关的工作,承担了部分高校的统计课程教学任务,长期研究机器学习在统计学中的套用,精通MATLAB、Python、SAS等统计软体,热衷于数据分析和数据挖掘工作,有着扎实的理论基础和丰富的实战经验。着有《MATLAB神经网路30个案例分析》和《MATLAB神经网路43个案例分析》。
陈杰,华创证券研究所金融工程团队负责人,拥有CFA、FRM资格。从2009年开始从事量化开发工作。在入职华创之前,曾担任申万宏源研究所金融工程首席分析师。
卢威,华创证券研究所金融工程分析师,前优矿网量化分析师,为优矿网资深用户,在优矿网分享过多篇高质量的量化研究报告,擅长使用Python进行量化投资研究。
刘昺轶,上海交通大学工学硕士,研究方向为断裂力学、流体力学,擅长Python编程、统计建模与Web开发,现为量化投资界新兵,正在快速成长。
秦玄晋,上海对外经贸大学会计学硕士,有两年量化投资经验,研究方向为公司金融。
苏博,上海财经大学金融信息工程硕士,主要研究方向为金融大数据分析。
徐晟刚,复旦大学西方经济学硕士,数理功底深厚,热爱编程与策略研究,精通Python、MATLAB等程式语言,有3年金融工程策略研究经验,擅长择时和事件类策略。
前言
为什幺写作本书
作为投资者,我们常听到的一句话是“不要把鸡蛋放入同一个篮子中”,可见分散投资可以降低风险,但如何选择不同的篮子、每个篮子放多少鸡蛋,便是见仁见智的事情了,量化投资就是解决这些问题的一种工具。
而Python在1991年诞生,目前已成为非常受欢迎的动态程式语言,由于拥有海量的库,所以Python在各个领域都有广泛套用,在量化投资界採用Python进行科学计算、量化投资的势头也越来越猛。目前各种线上策略编程平台都支持Python语言,例如优矿、米筐、聚宽等,这也是我们选择Python进行量化投资的原因。
目前市场上关于Python与量化投资的图书不少,但仔细研究后不难发现,很多图书都是顶着量化投资的噱头在讲Python的语言基础,其能提供的策略有限,并且大部分不提供回测平台,此类书籍中的策略往往为涨停股票可以买入、跌停股票可以卖出、停牌也可以交易,等等,这大大违背了A股市场的交易规则,难以获得準确的回测结果。
鑒于以上情形,为了更好地推动量化投资在中国的普及与发展,我们编写了《Python与量化投资:从基础到实战》一书,本书兼顾了Python语言与量化策略的编写,既可以为不懂Python语言的读者提供零基础入门,也可以为有Python基础的读者提供量化策略建模参考。细心的读者不难发现,本书量化投资策略部分的介绍篇幅远大于Python语言的介绍篇幅,这也可看出我们出版本书的初心。
如何使用本书
如果您从未接触过Python或者任何其他程式语言,则建议您从第1章开始看起,对Python基础编程稍做了解;如果您已经是Python的忠实用户,则可以从量化投资篇看起,直接使用优矿平台完成对策略的编写。关于Python基础篇的内容,您可自行安装、运行Python进行学习;关于量化投资篇的内容,您需要用到优矿线上量化平台,不安装Python也可以运行。
Python基础篇的示例代码的后缀名为.ipynb,是Jupyter Notebook档案,可以直接用Python打开运行;量化投资篇的示例代码的后缀名为.nb,需要上传到优矿的Notebook运行。
本书讲了什幺
本书分为两大篇,共有7章,前3章为Python基础篇,可以帮助读者快速上手Python;后4章为量化投资篇,藉助通联数据优矿平台进行数据处理与策略建立,将各种策略代码直接开源,并且对各种策略进行了介绍与点评,可谓本书的精华部分。
第1章为準备工作,主要介绍Python的安装与常用的库,尤其是在量化投资领域会使用到的数据分析库。
第2章介绍Python的基础操作,为后续讲解Python量化投资做準备,等于从零开始讲解,可在短时间内快速上手Python编程。
第3章讲解Python的进阶内容,在第2章的基础上详细介绍NumPy、Pandas、SciPy、Seaborn、Scikit-Learn、SQLAlchemy等经典库,是对前两章的升华和套用。
第4章讲解常用金融数据的获取与整理,包括数据整合、数据过滤、数据探索与清洗、数据转化,等等。
第5章介绍通联数据回测平台,内容涉及回测平台函式参数介绍、股票/期货模板实例讲解、回测结果分析、风险评价指标与回测细节的注意事项。
第6章讲解常见的量化策略及其实现,内容涉及行业轮动、市场中性Alpha、大师类策略、CTA策略、Smart Beta、技术指标类策略、资产配置、时间序列分析、组合最佳化器、期权策略等。代码全部公开,您可在短时间内使用我们的策略模板编写适合自己的策略。
第7章给出了10道自问自答题目,可便于您在短时间内更好地了解量化投资,希望对您做投资有所帮助。
转载请注明出处海之美文 » Python与量化投资:从基础到实战