编辑推荐

适读人群:从事量化投资、数据分析等工作的专业人士;金融、经济、管理、统计学、计算机相关专业的学生和老师,以及希望学习Python语言进行量化投资的广大学者、科研人员。

指导读者:
迅速掌握用Python语言处理数据的方法;
灵活运用Python解决实际金融问题;
掌握量化投资所需的理论知识;
领会如何在Python语言中构建量化投资策略。

内容简介

量化投资:以Python为工具》主要讲解量化投资的思想和策略,并借助Python语言进行实战。《量化投资:以Python为工具》一共分为5部分,第1部分是Python入门,第2部分是统计学基础,第3部分是金融理论、投资组合与量化选股,第4部分是时间序列简介与配对交易,第5部分是技术指标与量化投资。《量化投资:以Python为工具》首先对Python编程语言进行介绍,通过学习,读者可以迅速掌握用Python语言处理数据的方法,并灵活运用Python解决实际金融问题;其次,向读者介绍量化投资的理论知识,主要讲解量化投资所需的数量基础和类型等方面;最后讲述如何在Python语言中构建量化投资策略。

作者简介

蔡立耑,美国伊利诺伊大学金融硕士,华盛顿大学经济学硕士、博士。在人工智能、大数据分析、金融创新、量化投资等领域有丰富的实战经验。

目录

第1部分Python入门1
第1章Python简介与安装使用2
1.1Python概述
1.2Python的安装
1.2.1下载安装Python执行文件
1.2.2下载安装Anaconda
1.2.3多种Python版本并存
1.3Python的简单使用
1.4交互对话环境IPython
1.4.1IPython的安装
1.4.2IPython的使用
1.4.3IPython功能介绍

第2章Python代码的编写与执行
2.1创建Python脚本文件
2.1.1记事本
2.1.2Python默认的IDLE环境
2.1.3专门的程序编辑器
2.2执行.py文件
2.2.1IDLE环境自动执行
2.2.2在控制台cmd中执行
2.2.3在AnnacondaPrompt中执行
2.3Python编程小技巧
2.3.1Python行
2.3.2Python缩进

第3章Python对象类型初探23
3.1Python对象
3.2变量命名规则
3.3数值类型
3.3.1整数
3.3.2浮点数
3.3.3布尔类型
3.3.4复数
3.4字符串
3.5列表
3.6可变与不可变
3.7元组
3.8字典
3.9集合

第4章Python集成开发环境:Spyder介绍36
4.1代码编辑器
4.2代码执行Console
4.3变量查看与编辑
4.4当前工作路径与文件管理
4.5帮助文档与在线帮助
4.6其他功能

第5章Python运算符与使用44
5.1常用运算符
5.1.1算术运算符
5.1.2赋值运算符
5.1.3比较运算符
5.1.4逻辑运算符
5.1.5身份运算符
5.1.6成员运算符
5.1.7运算符的优先级
5.2具有运算功能的内置函数

第6章Python常用语句55
6.1赋值语句
6.1.1赋值含义与简单赋值
6.1.2多重赋值
6.1.3多元赋值
6.1.4增强赋值
6.2条件语句
6.3循环语句
6.3.1for循环
6.3.2while循环
6.3.3嵌套循环
6.3.4break、continue等语句

第7章函数
7.1函数的定义与调用
7.2函数的参数
7.3匿名函数
7.4作用域

第8章面向对象
8.1类
8.2封装
8.3继承(Inheritance)

第9章Python标准库与数据操作
9.1模块、包和库
9.1.1模块
9.1.2包
9.1.3库
9.2Python标准库介绍
9.3Python内置数据类型与操作
9.3.1序列类型数据操作
9.3.1.1list类型与操作
9.3.1.2tuple类型与操作
9.3.1.3range类型与操作
9.3.1.4字符串操作
9.3.2字典类型操作
9.3.3集合操作

第10章常用第三方库:Numpy库与多维数组
10.1NumPy库
10.2创建数组
10.3数组元素索引与切片
10.4数组运算

第11章常用第三方库:Pandas与数据处理
11.1Series类型数据
11.1.1Series对象的创建
11.1.2Series对象的元素提取与切片
11.1.2.1调用方法提取元素
11.1.2.2利用位置或标签提取元素与切片
11.1.3时间序列
11.2DataFrame类型数据
11.2.1创建DataFrame对象
11.2.2查看DataFrame对象
11.2.3DataFrame对象的索引与切片
11.2.4DataFrame的操作
11.2.5DataFrame的运算
11.3数据规整化
11.3.1缺失值的处理
11.3.1.1缺失值的判断
11.3.1.2选出不是缺失值的数据
11.3.2缺失值的填充
11.3.3缺失值的选择删除
11.3.4删除重复数据

第12章常用第三方库:Matplotlib库与数据可视化
12.1Matplotlib简介
12.2修改图像属性
12.2.1坐标
12.2.1.1更改坐标轴范围
12.2.1.2设定坐标标签与显示角度
12.2.2添加文本
12.2.2.1添加标题
12.2.2.2中文显示问题
12.2.2.3设定坐标轴标签
12.2.2.4增加图形背景grid
12.2.2.5增加图例
12.2.3多种线条属性
12.2.3.1线条的类型
12.2.3.2图形的颜色
12.2.3.3点的形状类型
12.2.3.4线条宽度
12.3常见图形的绘制
12.3.1柱状图(Barcharts)
12.3.2直方图
12.3.3饼图
12.3.4箱线图
12.4Figure、Axes对象与多图绘制
12.4.1Figure、Axes对象
12.4.2多图绘制
12.4.2.1多个子图绘制
12.4.2.2一个图中多条曲线绘制

第2部分统计学基础
第13章描述性统计
13.1数据类型
13.2图表
13.2.1频数分布表
13.2.2直方图
13.3数据的位置
13.4数据的离散度

第14章随机变量简介
14.1概率与概率分布
14.1.1离散型随机变量
14.1.2连续型随机变量
14.2期望值与方差
14.3二项分布
14.4正态分布
14.5其他连续分布
14.5.1卡方分布
14.5.2t分布
14.5.3F分布
14.6变量的关系
14.6.1联合概率分布
14.6.2变量的独立性
14.6.3变量的相关性
14.6.4上证综指与深证综指的相关性分析

第15章推断统计
15.1参数估计
15.1.1点估计
15.1.2区间估计
15.2案例分析
15.3假设检验
15.3.1两类错误
15.3.2显著性水平与p值
15.3.3确定小概率事件
15.4t检验
15.4.1单样本t检验
15.4.2独立样本t检验
15.4.3配对样本t统计量的构造

第16章方差分析
16.1方差分析之思想
16.2方差分析之原理
16.2.1离差平方和
16.2.2自由度
16.2.3显著性检验
16.3方差分析之Python实现
16.3.1单因素方差分析
16.3.2多因素方差分析
16.3.3析因方差分析

第17章回归分析
17.1一元线性回归模型
17.1.1一元线性回归模型
17.1.2最小平方法
17.2模型拟合度
17.3古典假设条件下^_、^_之统计性质
17.4显著性检验
17.5上证综指与深证成指的回归分析与Python实践
17.5.1Python拟合回归函数
17.5.2绘制回归诊断图
17.6多元线性回归模型
17.7多元线性回归案例分析
17.7.1价格水平对GDP的影响
17.7.2考量自变量共线性因素的新模型

第3部分金融理论、投资组合与量化选股
第18章资产收益率和风险
18.1单期与多期简单收益率
18.1.1单期简单收益率
18.1.2多期简单收益率
18.1.3Python函数计算简单收益率
18.1.4单期与多期简单收益率的关系
18.1.5年化收益率
18.1.6考虑股利分红的简单收益率
18.2连续复利收益率
18.2.1多期连续复利收益率
18.2.2单期与多期连续复利收益率的关系
18.3绘制收益图
18.4资产风险的来源
18.4.1市场风险
18.4.2利率风险
18.4.3汇率风险
18.4.4流动性风险
18.4.5信用风险
18.4.6通货膨胀风险
18.4.7营运风险
18.5资产风险的测度
18.5.1方差
18.5.2下行风险
18.5.3风险价值
18.5.4期望亏空
18.5.5最大回撤

第19章投资组合理论及其拓展
19.1投资组合的收益率与风险
19.2Markowitz均值-方差模型
19.3Markowitz模型之Python实现
19.4Black-Litterman模型

第20章资本资产定价模型(CAPM)
20.1资本资产定价模型的核心思想
20.2CAPM模型的应用
20.3Python计算单资产CAPM实例
20.4CAPM模型的评价

第21章Fama-French三因子模型
21.1Fama-French三因子模型的基本思想
21.2三因子模型之Python实现
21.3三因子模型的评价
第4部分时间序列简介与配对交易317

第22章时间序列基本概念318
22.1认识时间序列
22.2Python中的时间序列数据
22.3选取特定日期的时间序列数据
22.4时间序列数据描述性统计

第23章时间序列的基本性质326
23.1自相关性
23.1.1自协方差
23.1.2自相关系数
23.1.3偏自相关系数
23.1.4acf()函数与pacf()函数
23.1.5上证综指的收益率指数的自相关性判断
23.2平稳性
23.2.1强平稳
23.2.2弱平稳
23.2.3强平稳与弱平稳的区别
23.3上证综指的平稳性检验
23.3.1观察时间序列图
23.3.2观察序列的自相关图和偏自相关图
23.3.3单位根检验
23.4白噪声
23.4.1白噪声
23.4.2白噪声检验――Ljung-Box检验
23.4.3上证综合指数的白噪声检验

第24章时间序列预测
24.1移动平均预测
24.1.1简单移动平均
24.1.2加权移动平均
24.1.3指数加权移动平均
24.2ARMA模型预测
24.2.1自回归模型
24.2.2移动平均模型
24.3自回归移动平均模型
24.4ARMA模型的建模过程
24.5CPI数据的ARMA短期预测
24.5.1序列识别
24.5.2模型识别与估计
24.5.3模型诊断
24.5.4运用模型进行预测
24.6股票收益率的平稳时间序列建模

第25章GARCH模型
25.1资产收益率的波动率与ARCH效应
25.2ARCH模型和GARCH模型
25.2.1ARCH模型
25.2.2GARCH模型
25.3ARCH效应检验
25.4GARCH模型构建

第26章配对交易策略
26.1什么是配对交易
26.2配对交易的思想
26.3配对交易的步骤
26.3.1股票对的选择
26.3.2配对交易策略的制定
26.4构建PairTrading类
26.5Python实测配对交易交易策略

第5部分技术指标与量化投资
第27章K线图
27.1K线图简介
27.2Python绘制上证综指K线图
27.3Python捕捉K线图的形态
27.3.1Python捕捉“早晨之星”
27.3.2Python语言捕捉“乌云盖顶”形态

第28章动量交易策略
28.1动量概念介绍
28.2动量效应产生的原因
28.3价格动量的计算公式
28.3.1作差法求动量值
28.3.2做除法求动量值
28.4编写动量函数momentum()
28.5万科股票2015年走势及35日动量线
28.6动量交易策略的一般思路

第29章RSI相对强弱指标
29.1RSI基本概念
29.2Python计算RSI值
29.3Python编写rsi()函数
29.4RSI天数的差异
29.5RSI指标判断股票超买和超卖状态
29.6RSI的“黄金交叉”与“死亡交叉”
29.7交通银行股票RSI指标交易实测
29.7.1RSI捕捉交通银行股票买卖点
29.7.2RSI交易策略执行及回测

第30章均线系统策略
30.1简单移动平均
30.1.1简单移动平均数
30.1.2简单移动平均函数
30.1.3期数选择
30.2加权移动平均
30.2.1加权移动平均数
30.2.2加权移动平均函数
30.3指数加权移动平均
30.3.1指数加权移动平均数
30.4创建movingAverage模组
30.5常用平均方法的比较
30.6中国银行股价数据与均线分析
30.7均线时间跨度
30.8中国银行股票均线系统交易
30.8.1简单移动平均线制定中国银行股票的买卖点
30.8.2双均线交叉捕捉中国银行股票的买卖点
30.9异同移动平均线(MACD)
30.9.1MACD的求值过程
30.9.2异同均线(MACD)捕捉中国银行股票的买卖点
30.10多种均线指标综合运用模拟实测

第31章通道突破策略
31.1通道突破简介
31.2唐奇安通道
31.2.1唐奇安通道刻画
31.2.2Python捕捉唐奇安通道突破
31.3布林带通道
31.4布林带通道与市场风险
31.5通道突破交易策略的制定
31.5.1一般布林带上下通道突破策略
31.5.2特殊布林带通道突破策略

第32章随机指标交易策略
32.1什么是随机指标(KDJ)
32.2随机指标的原理
32.3KDJ指标的计算公式
32.3.1未成熟随机指标RSV
32.3.2K、D指标计算
32.3.3J指标计算
32.3.4KDJ指标简要分析
32.4KDJ指标的交易策略
32.5KDJ指标交易实测
32.5.1KD指标交易策略
32.5.2KDJ指标交易策略
32.5.3K线、D线“金叉”与“死叉”

第33章量价关系分析
33.1量价关系概述
33.2量价关系分析
33.2.1价涨量增
33.2.2价涨量平
33.2.3价涨量缩
33.2.4价平量增
33.2.5价平量缩
33.2.6价跌量增
33.2.7价跌量平
33.2.8价跌量缩
33.3不同价格段位的成交量
33.4成交量与均线思想结合制定交易策略

第34章OBV指标交易策略524
34.1OBV指标概念
34.2OBV指标计算方法
34.3OBV指标的理论依据
34.4OBV指标的交易策略制定
34.5OBV指标交易策略的Python实测
34.6OBV指标的应用原则

前言/序言

  过去十年,一股“量化投资”的热潮在中国悄然掀起。最近这两年,投资人对量化的关注更是到达了前所未有的地步。除了业界到处寻找量化团队以外,各种量化基金如雨后春笋般出现,各个大学校园也开始举办一场又一场的量化讲座、研讨会等。量化投资一时蔚为风行,产官学共襄盛举。
  这么受人瞩目的议题,到底它的内涵是什么呢?为了了解量化投资这个概念,我们先回顾一下投资分析与决策过程。在投资分析与实战中,虽然个中滋味如人饮水,个中细节一言难尽,但“投资”大致上会有如下几个阶段:首先,投资人利用各种工具与分析方法,建构模型(系统)来验证买卖标的、时点、价位等有效性;第二阶段则筛选经过分析与验证得到的结论,实际应用于交易;一个严谨的投资人,通常还会有第三阶段,即在实际投资的过程中,不断地修正与完善自已的模型(系统)。
  在资讯工具不发达的年代,这些过程往往以质化为主。例如,基金经理人会研究上巿公司财务报表,拜访公司高层,以经验判断技术指标的趋势与形态,做出投资的买卖决策。这种做法带有很大的主观性,因此又被称为“主观交易”。主观交易的流弊,在于决策基础多源于“大胆假设”而缺乏科学方法“小心求证”的过程。更甚者,行为金融学指出,投资人的行为往往易受各种心理认知谬误的影响而伤害投资绩效。除此之外,在瞬息万变的金融巿场中,主观交易者若要处变不惊地坚守操作纪律,同时眼明手快地捕捉稍纵即逝的机会,也常有“力不从心”之叹。
  相较于主观交易所遭遇的问题,量化投资则在上述投资的各个阶段,利用数学、统计、计算机等分析工具来建立模型,据以客观地分析数据,按事先设定好的投资逻辑来进行投资决策,在理想状况下自动化执行下单。正因为如此,量化投资拥有可验证性、纪律性与即时性等许多主观交易不可企及的优势。若再善用计算机技术,量化交易者可以处理的资讯量更让主观交易者望尘莫及。如此说来,采用量化技术岂非在投资上立于不败之地?
  读者只要稍加思考即可发现,量化投资的模型很容易因建模者的能力不同而良莠不齐。此外,绝大多数模型的核心思想在于“以史为鍳”;在对历史数据依赖度高的前提下,一旦遇到新兴的金融巿场或历史不曾出现的事件,量化投资者也只能徒呼负负。既然主观交易有诸多限制,量化交易又并非万能,那么,对投资绩效念兹在兹的投资者,究竟该何去何从呢?我们要提醒读者的是,编程语言、统计、金融、技术指标等量化投资常用的知识只是工具,它们就像武侠小说中的宝剑与武功秘籍,虽然很重要,却不是笑傲江湖的保证。宝剑锋从磨砺出,只有勤练武艺,在实战中积累经验,才能审时度势,百战不殆。
  《量化投资:以Python为工具》旨在对量化投资做广泛与初步的介绍,希望能引领读者进入这个引人入胜的学术与实务领域。囿于笔者的学养见识,书中内容或有疏漏谬误之处,尚祈先进专家能不吝指正。最后,谨以此书表达对热血投资大众的献曝之忱。若读者需要书中的习题解答、代码、数据、勘误补充及量化相关资讯,可发邮件至service@baoquant.com索取,来信请在邮件标题中写明书名:《量化投资:以Python为工具》。

其他推荐