Python与量化投资:从基础到实战
  • 推荐4
  • 收藏12
  • 浏览7.8K

Python与量化投资:从基础到实战

王小川 (作者) 

  • 书  号:978-7-121-33857-1
  • 出版日期:2018-04-01
  • 页  数:424
  • 开  本:16(185*235)
  • 出版状态:上市销售
  • 维护人:张国霞
电子书 ¥59.00
购买电子书
纸质版 ¥99.00
本书主要讲解如何利用Python进行量化投资,包括对数据的获取、整理、分析挖掘、信号构建、策略构建、回测、策略分析等。本书也是利用Python进行数据分析的指南,有大量的关于数据处理分析的应用,并将重点介绍如何高效地利用Python解决投资策略问题。本书分为Python基础篇和量化投资篇:Python基础篇主要讲解Python软件的基础、各个重要模块及如何解决常见的数据分析问题;量化投资篇在Python基础篇的基础上,讲解如何使用优矿(uqer.io)回测平台实现主流策略及高级定制策略等。
本书可作为专业金融从业者进行量化投资的工具书,也可作为金融领域的入门参考书。在本书中有大量的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也可以运行。
本书的配套代码可以在http://books.hcquant.com下载。
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道自问自答题目,可便于您在短时间内更好地了解量化投资,希望对您做投资有所帮助。
读者支持及反馈
本书提供了在线“有问必答”服务,可以扫描下面的二维码填写相关信息,成为本书的认证读者,在优矿社区中发帖提问,我们会安排专门人员进行答疑,在第一时间解决关于本书的一切问题。

我们随时欢迎您反馈信息,请告诉我们您对本书的评价,以及您喜欢本书的地方和不喜欢本书的地方。您的反馈对我们来说非常重要,这会帮助我们在后续的修订中完善现有的内容。请将您的反馈意见通过邮件service@hcquant.com发送给我们,并在邮件的标题中注明“读者反馈”字样。同时,您可以在优矿社区进行反馈(https://uqer.io/community/)。
感谢
本书在写作过程中得到了华创证券与通联数据优矿团队的大力支持,同时感谢陈杰、卢威、刘昺轶、秦玄晋、苏博、徐晟刚、王镇平、符哲君、彭亮在写作中的大力支持,我们将与您砥砺前行,共同见证中国量化投资的成长。
勘误
虽然我们已经尽力确保本书内容的准确性,但是错误仍可能出现,如果您发现本书的任何错误(文字或者代码错误),则请及时告知我们,我们将非常感激,并在修订时列出您的名字以表示感谢。您可以通过以下三种途径将本书中的错误告知我们。
◎ 在books.hcquant.com网站上发布本书勘误。
◎ 在优矿社区中直接发帖。
◎ 发送邮件至service@hcquant.com。
互联网上的盗版著作权侵害是在所有媒体中持续存在的问题,如果您在互联网上发现了对我们的著作有任何形式的非法复制,则请立刻告诉我们其地址或者网站的名字,以便我们进行补救。请通过service@hcquant.com联系我们,我们将非常感谢您的帮助。


轻松注册成为博文视点社区用户(www.broadview.com.cn),扫码直达本书页面。
◎ 下载资源:本书如提供示例代码及资源文件,均可在 下载资源 处下载。
◎ 提交勘误:您对书中内容的修改意见可在 提交勘误 处提交,若被采纳,将获赠博文视点社区积分(在您购买电子书时,积分可用来抵扣相应金额)。
◎ 交流互动:在页面下方 读者评论 处留下您的疑问或观点,与我们和其他读者一同学习交流。
页面入口:http://www.broadview.com.cn/33857

目录

第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

读者评论

  • 请问怎么在优矿中导入下载好的后缀为nb的notebook文件?

    大傻瓜发表于 2019/6/16 18:47:12
    • 在优矿“新建”下找到“上传Notebook”,若还是不行,请联系本编辑微信zgx228

      张国霞发表于 2019/6/17 10:08:51
  • 请问第三章下载的”closeprice.csv”文件应该解押到那个文件夹中?为什么一运行就显示不存在?

    每天五小时发表于 2018/11/4 13:41:58
    • 同问

      joeyyyyy发表于 2019/9/20 15:47:47
    • @joeyyyyy 要把路劲加上去

      杨超越发表于 2019/12/9 12:20:20
    • @杨超越 请问第三章的数据在哪里下载

      lxq发表于 2022/2/24 14:57:41
  • 为什么会报这个错误,怎么修改“ File b’data2.csv’ does not exist”

    ivy发表于 2018/7/8 15:27:10
    • 作者回复:确保数据模块里面有这个数据

      张国霞发表于 2018/9/30 11:39:31
  • 我购买了《python和量化投资》,第六章的大师策略里用到了OS模块,优矿平台不能使用要怎么办呢?
    python和量化投资 大师策略里面用到这个模块,优矿上用不了怎么办呢?import os cal = Calendar(‘China.SSE’)
    请回邮箱724582045@qq.com 谢谢

    heshi发表于 2018/6/15 17:20:24
    • 作者回复:哪个大师用到了呀,应该来说用不到,去掉就可以了

      张国霞发表于 2018/9/30 11:38:09

电子书版本

  • Epub

相关博文

  • 量化投资:用Python实现金融数据的获取与整理

    量化投资:用Python实现金融数据的获取与整理

    管理员账号 2018-05-18

    小编说:数据可以说是量化投资的根本,一切投资策略都是建立在数据基础上的。本文以优矿网为例,带领大家用Python实现金融数据的获取与整理。本文选自《Python与量化投资:从基础到实战》一书。 作为投资者,我们常听到的一句话是“不...

    管理员账号 2018-05-18
    2296 0 2 0

相关图书

看漫画学Python:有趣、有料、好玩、好用(全彩修订版)

关东升 赵大羽 (作者)

ython是一门既简单又强大的编程语言,被广泛应用于数据分析、大数据、网络爬虫、自动化运维、科学计算和人工智能等领域。Python也越来越重要,成为国家计算机等...

 

看漫画学Python 2:有趣、有料、好玩、好用(全彩进阶版)

关东升 ,赵大羽 (作者)

本书是《看漫画学Python》的进阶版本,继续秉承有趣、有料、好玩、好用的理念,并继续采用《看漫画学Python》一书中3个不同的漫画人物角色,通过这3个角色之...

 

趣玩Python:自动化办公真简单(双色+视频版)

本书以数据收集→数据清洗→数据分析→数据可视化→根据数据可视化结果(即图表)做决策为脉络,介绍Python在实际工作场景中的应用,侧重于用Python解决工作中...

 

软件交付通识

董越 (作者)

软件交付过程是指在编程序改代码之后,直到将软件发布给用户使用之前的一系列活动,如提交、集成、构建、部署、测试等。本书作为通识类图书,对软件交付过程的各个方面进行...

¥89.00

分布式系统与一致性

陈东明 (作者)

一致性是非常重要的分布式技术。众所周知,分布式系统有很多特性,如可用性、可靠性等,这些特性多多少少会与一致性产生关系,受到一致性的影响。要全面研究、掌握分布式技...

¥79.00

人人都是产品经理(案例版):淘宝十年产品事

陶英琪 (作者)

做产品经理需要不断成长。然而回顾漫长的产品发展史,我们总会发现:有太多犯过的错误在反复出现,每一次都会有人掉入同样的“坑”。大量看似充满新意的点子、“前无古人”...

¥69.00