第二讲:量化投资是什么?

目录

  1. 传统投资与量化投资
  2. 量化投资与有效市场假说
  3. 再谈量化投资概念
  4. 一种简单的量化模型:现代资产组合理论(MPT)
  5. 进一步的量化模型:资本资产定价模型(CAPM)
  6. 更强大的量化模型:单因子模型和多因子模型(Factor Model)
  7. 再讲一个量化模型:套利与套利定价模型(APT)

传统投资与量化投资

其实感觉标题这么起也不是很恰当,因为传统投资指的是什么方法也没有一个很明确的定义,投资的方法一直都在发展,姑且认为“传统”的就是非量化的其他投资方法吧。从名称上来说,量化投资中的“量化”指的就是数量化,就是需要定量的数据。个人总结,量化投资=数据+模型,它包括量化择时选股套利资产组合风险管理算法交易等。

传统投资主要基于个人的逻辑分析和判断。举个例子来说,如果有一天你看了苹果的iPhone X 发布会,觉得这个产品很牛,肯定大卖。产品大卖肯定会给公司带来可观的利润,紧接着你就去买了苹果公司的股票(NASDAQ: AAPL),等着产品大卖之后股票涨价,卖出股票赚得差价。再或者你觉得楼下彭阿姨买的煎饼果子味道独特,一直有很多回头客来购买,在未来的一两年内煎饼果子摊能扩大生产规模和盈利能力,于是你就去买了彭阿姨煎饼果子摊的股票(NASDAQ: JBGZ,误),以期获取收益。这样的投资方法主要靠投资者个人的推理和判断,并不经过太多的数值计算,我们称之为传统投资方法。大家都很熟悉的巴菲特(Warren Edward Buffett)就更多地采取这样的方法,其投资决定的形成当然也会基于一定的数据和调研,但是最后的决定主要还是由其个人的主观判断形成。当然,比较厉害的就在于其个人判断十分准确,因此取得了很好的投资业绩。不过并不是人人都有巴菲特的这样一个大脑,因此,这种方法可能会非常成功,但是不可复制。

而量化投资主要是基于数据和模型。举例来说,你观察了彭阿姨煎饼果子摊,通过煎饼果子摊资产定价模型,结合你调查到的该公司营业数据,算得该公司价值10w,该公司发行了1w股股票,平均每股价值10元/股,但是目前该公司股价只有5元/股,因此你觉得该公司股票有很大的上涨空间,因此去投资了该公司股票。指出一下,量化投资并不都像这样通过估计股票价值这样来预测股票未来的走势,也有其他的方式。在此领域成功的代表就是西蒙斯(James Harris Simons),如果按盈利能力来算,西蒙斯所管理的大奖章基金的年化收益率可能是巴菲特的两到三倍,并且在数次金融危机中都屹立不倒。其本人就是一名颇有建树的数学家,在转行做金融之后,也是建立了复杂的数学模型来进行量化投资。在赚了很多钱之后,还养了一帮数学家、物理学家做研究,毕竟物理学家好像也不是很贵(自嘲)。我们学校就有西蒙斯本人捐的一栋楼——陈-赛蒙斯楼,现在被用作外国专家楼。

借用看来的一个比喻,说传统投资方法就像是中医,讲求的是望、闻、问、切,通过医生自己的经验和判断来给患者开方治疗;量化投资就像是西医,需要通过化验、拍片来确定患者的病灶,然后根据一套生理学的理论来给出治疗的方法。西医需要做的抽血化验、拍片检查就好像量化投资里面的数据,数据越准确,越可能得到更好的结论;西医中的生理学理论就好像量化投资中搭建的模型,根据化验检查的结果进行分析得到结论。所以我们常常看到,有很多老中医医术高超,但这种医术并不是刻意轻易学得来的,需要通过一带一的学徒制来传授。而西医讲究的是系统性的方法,可以通过在医学院的学习把这样的方法复制。

总结一下,传统投资方法就好比中医,通过较为主观的分析和判断来进行投资,可复制性较差;量化投资方法好比西医,关键在于数据和模型,通过数值计算来得到投资决策,具有较强可复制性。

量化投资与有效市场假说

根据投资的目的来分类的话,仅仅希望能够跟随市场平均水平的投资方式叫做被动投资,如果希望投资组合的收益能够超过市场表现,那么这种投资方式叫做主动投资。对于做主动投资的人来说,有效市场假说就好像洪水猛兽,因为它直接认定没有办法通过历史数据来获得超额收益。有效市场假说(efficient-market hypothesis)是由Eugene Fama于1970年提出的。他另外一个很有名的工作是Fama-French三因子模型,据说他拿这个模型赚了十多年钱,赚完了才把它公布出来,结果又得了个诺贝尔经济学奖。好了,我们回来讲一下这个有效市场假说。这个假说通过一些假设,推出了市场的定价一直处于一个有效的状态下,即市场上的定价已经综合反映了各方面的信息。既然市场定价已经综合反映了市面上的各种信息,那么我们再根据这些信息和历史规律来试图找到一个更为有效的定价就是徒劳的。有效市场假说直接否定了主动投资的可行性。

有效市场假说的想法是说假设股票有效价格的改变是由各种消息驱动的,好消息和坏消息的的到来是随机的。市场的参与者都是独立、理性并且追求利润的,因此当消息传播到市场上之后,这些参与者的投机行为就能够使得价格迅速恢复到新消息下的有效价位上。因此,在这个调节机制下,价格会保持合理,市场会持续有效。根据市场有效的程度,该假说还可以分为论断强弱不同的若干版本。在市场是弱式效率(weak form efficiency)时,我们无法从历史的价量中找到帮助我们盈利的规律;在半强式效率(semi-strong form efficiency)时,从公开渠道获得的所有信息都是无助于我们找到有用规律的;在强式效率(strong form efficiency)时,假说断定从任何渠道获得的信息都无法帮助我们盈利。

这样的假说听起来还挺令人沮丧的。但是个人认为有效市场假说中本身就肯定了理性市场参与者对于信息进行加工处理然后反作用于市场的作用,亦即正是由于这一部分人通过加工利用这些信息赚到了钱,才把价格拉回到了有效的位置上。如果我们能比其他市场参与者更加迅速地对于市面上的信息做出反应,就能获取相应的利润。从实证的角度上来说,股票市场确实会常常出现“不有效”的定价。A股市场的不有效现象更为明显,其主要原因还是参与者的成熟度离美股市场还有一定的差距,亦即我国股市的定价偏离的机会仍然较多,这也给量化投资以更多的机会。

回头看一下前面把量化投资比作西医的比喻还挺恰当的。量化投资所做的事情就是要找到市场的病灶,即市场定价不合理之处,然后通过投资并且盈利来纠正这样的不合理定价。

再谈量化投资概念

有好多名词大家常常和量化投资一起见到,比如说基本面分析、技术面分析、程序化交易等等,它们和量化交易又怎样的关系呢?

首先来讲讲基本面分析(fundamental analysis)和技术面分析(technical analysis)。

基本面分析主要依靠公司财务数据和宏观经济数据,比较常见的公司财务数据有原始数据有公司的总资产、总负债、每股收益等,比较常见的宏观经济数据有GDP增速、国家外汇和黄金储备、货币供应量等。不过就基本面的定义而说,基本面还包括市面上的新闻、公告和舆情信息。而技术面分析主要依靠股票市场历史上的交易价格和成交量,虽然其原始数据比较单调,但在技术面分析中却发展出了大量的分析手段,从价量数据中衍生出相当多的技术指标。

那么基本面分析和技术面分析和量化投资是什么样的关系呢?很多人认为量化投资主要是做技术面分析,其实确实如此,在量化投资领域所用到的技术面信息更多一些。在所利用的基本面信息中,也是更多的用到数量化的公司财务数据和指数化的宏观经济数据,而新闻、公告、舆情等信息的利用相对来讲不是十分充分。究其原因,相比于传统的量化而言,量化投资所需要的数据更倾向于数量化的数据,甚至是结构化的数据;另外,在传统量化中,由于主要靠人工来进行分析,希望数据量尽可能少而精,但与此相反,在量化投资中,我们更倾向于找寻数据中的规律,因此希望有更多的数据。基本面分析中所用到的新闻、公告、舆情信息不便于进行结构化和数量化,因此在目前的量化投资中用到的不多;基本面分析中所用到的财务数据由于其更新频率通常为季度甚至是年度数据,导致其数据量较少,也给其在量化投资中的应用带来了一定的困难。

总结一下,在量化投资中确实更倾向于利用技术面分析中的一些数据,但量化投资也会使用基本面分析中带给我们的数据;目前基本面分析中的信息利用的较少,是由于其使用上的困难,但个人认为将基本面分析中的信息放进量化投资框架中进行研究肯定是量化投资未来的发展方向之一。

那么量化投资是不是一定是程序化交易呢?

答案是不一定。量化投资讲的是一种投资分析的方法。完全可以通过量化投资得到一个结果,然后手动下单交易,并且目前在业界很多中低频交易策略(按星期或者月频率调仓)中,就是通过量化投资方法生成相应的交易方案之后,通过交易员来手动下单操作的。不过如果做出来的量化投资策略就是一个高频的交易,比如日内的择时,甚至是以秒为时间计量的高频交易,这样的策略如果靠人工操作就无法保证其对于量化策略的执行力,因此这样的策略最后一定是靠程序化交易的。

一种最简单的量化模型:现代资产组合理论(MPT)

下面进入这一讲的重点,我们将要介绍一些最简单的量化模型。

现代资产组合理论(modern portfolio theory,MPT),是由Harry Markowitz在1952年提出的,他本人也是在38年之后获得了诺贝尔经济学奖。不过,在讲这个模型之前,我们先来讲一下风险。

我们常常说一个理性的投资人是追求利润并且厌恶风险的,所以理性的投资人一直在做的事情就是最大化利润,并且最小化风险。但是我们怎样来衡量风险呢?我们熟知的余额宝就属于风险比较低的理财产品,而股票市场就属于风险比较高的投资。但这样的认识是我们凭感觉得来的,我们能不能用什么办法具体地来计算相应的风险呢?答案是我们可以使用收益率序列的方差来表征风险。(还有其他表征风险的方式,方差是一种最基本的方法,风险价值(VaR)是否是有史以来最蠢的衡量指标?)

举个例子,我们可以查看一下余额宝(天弘基金)和平安银行股票(000001.SZ)近期的每日收益率(这里只是举例子,计算可能不科学,因为余额宝在非交易日也会有收益)

In [1]:
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
In [2]:
idx = pd.DatetimeIndex(['2018-01-24', '2018-01-25', '2018-01-26', '2018-01-29', '2018-01-30', '2018-01-31', '2018-02-01', '2018-02-02', '2018-02-05'])
s_yuebao = pd.Series([1.0592, 1.0451, 1.0454, 1.0531, 1.0601, 1.0758, 1.0690, 1.0761, 1.0788], index = idx)
s_pingan = pd.Series([-6.8259, -300.5464, -105.6338, -220.6406, -65.5022, 293.0403, -14.2349, 14.2552, 355.8719], index=idx)
In [3]:
s_yuebao
Out[3]:
2018-01-24    1.0592
2018-01-25    1.0451
2018-01-26    1.0454
2018-01-29    1.0531
2018-01-30    1.0601
2018-01-31    1.0758
2018-02-01    1.0690
2018-02-02    1.0761
2018-02-05    1.0788
dtype: float64
In [4]:
s_pingan
Out[4]:
2018-01-24     -6.8259
2018-01-25   -300.5464
2018-01-26   -105.6338
2018-01-29   -220.6406
2018-01-30    -65.5022
2018-01-31    293.0403
2018-02-01    -14.2349
2018-02-02     14.2552
2018-02-05    355.8719
dtype: float64
In [5]:
s_yuebao.plot.barh()
Out[5]:
<matplotlib.axes._subplots.AxesSubplot at 0x1e8fae55608>
In [6]:
s_pingan.plot.barh()
Out[6]:
<matplotlib.axes._subplots.AxesSubplot at 0x1e88de8d788>
In [7]:
sigma_yuebao = s_yuebao.std()
sigma_yuebao
Out[7]:
0.013086103740652203
In [8]:
sigma_pingan = s_pingan.std()
sigma_pingan
Out[8]:
214.22801113904316

当我们要来评价相应的风险的时候就可以计算出两者实际的“风险”究竟是多少。余额宝收益率序列标准差为 $σ=0.0123$,平安银行股票收益率序列标准差为σ=221.8064。(风险一般用方差 var 来表示,由于这个例子中其方差差距太大,因此就只写标准差)有了这样的数字我们就可以对于其“风险”进行比较了。

下面来讲一下 MPT 是什么。MPT中的 ortfolio 中文叫做资产组合,资产组合是什么呢?

假设市面上有 $n$ 个可以进行投资的标的,一个资产组合可以表示为一个 $n$ 维的向量 $P=(w_1,w_1, \cdots ,w_n)$,向量的每一维代表该投资组合投资到相应标的的金额比例,且满足 $\sum_{i=1}^{n}w_i=1$。

每个标的收益 $r_i$ 都是一个随机变量,资产组合的收益 $r_p$ 也是一个随机变量,并且可以表示为 $r_p = \sum_{i=1}^{n}w_ir_i$。

刚刚我们说了,每个标的风险可以写成 $var(r_i) = cov(r_i, r_i$,资产组合的风险也可以写出来 $var(r_p) = \sum_{i}\sum_{j}cov(r_i,r_j)$。

MPT 这个理论要做的就是在达到期望收益的情况下,最小化投资风险。因此,对于一个理性的投资者来说,就是要解如下的一个优化问题。

$$\min_{i,j} var(r_p) = \sum_{i=1}^{n} \sum_{j=1}^{n} cov(r_i, r_j) ~~~~~~ s.t. E(r_p) = \sum_{i=1}^{n} w_iE(r_i) \geq \mu, \sum_{i=1}^{n}w_i=1$$

其中 $\mu$ 就是预期收益率。我们可以看出,给定一个预期的收益率 $\mu$,我们可以解出一个可以最小化风险的资产组合,并且可以得到该资产组合的风险。相应地,我们可以画出在 MPT 框架下的收益-风险曲线。这条曲线就是下图中的蓝线,也称作有效前沿(efficient frontier)或者马科维兹子弹(Markowitz bullet)。

图中的红点为代表无风险利率,我们可以看到它的风险为0,收益为一个特定的值rf,可以简单地把它理解为银行存款利率。蓝线上绿色的点是这条线上夏普比率最高的点,这一点对应的资产组合称作市场组合(market portfolio)。夏普比率定义为相比于无风险投资的超额收益相对于所承受风险的比值

$$sharp ~~ ratio = \frac{E(r_p) - r_f}{\sigma_p}$$

其中,$E(r_p)$:投资组合预期报酬率;$r_f$:无风险利率;$\sigma_p$:投资组合超额报酬率的标准差。

其实夏普比率的目的是计算投资组合每承受一单位总风险,会产生多少的超额报酬。比率越高投资组合越佳。

举例而言,假如国债的回报是3%,而您的投资组合预期回报是15%,您的投资组合的标准偏差是6%,那么用15%-3%,可以得出12%(代表您超出无风险投资的回报),再用12%/6%=2,代表投资者风险每增长1%,换来的是2%的多余收益。

注意问题

夏普比率在运用中应该注意的问题夏普比率在计算上尽管非常简单,但在具体运用中仍需要对夏普比率的适用性加以注意:

  1. 用标准差对收益进行风险调整,其隐含的假设就是所考察的组合构成了投资者投资的全部。因此只有在考虑在众多的基金中选择购买某一只基金时,夏普比率才能够作为一项重要的依据;
  2. 使用标准差作为风险指标也被人们认为不很合适的。
$$sharp ~~ ratio = \frac{E(r_p) - r_f}{var(r_p)}$$
  1. 夏普比率的有效性还依赖于可以以相同的无风险利率借贷的假设;
  2. 夏普比率没有基准点,因此其大小本身没有意义,只有在与其他组合的比较中才有价值;
  3. 夏普比率是线性的,但在有效前沿上,风险与收益之间的变换并不是线性的。因此,夏普指数在对标准差较大的基金的绩效衡量上存在偏误;
  4. 夏普比率未考虑组合之间的相关性,因此纯粹依据夏普值的大小构建组合存在很大问题;
  5. 夏普比率与其他很多指标一样,衡量的是基金的历史表现,因此并不能简单地依据基金的历史表现进行未来操作。
  6. 计算上,夏普指数同样存在一个稳定性问题:夏普指数的计算结果与时间跨度和收益计算的时间间隔的选取有关。

可以简单地这样理解,有效前沿上的资产组合是都是相应给定收益下风险最小的资产组合,而市场组合是有效前沿上投资收益-风险比(即投资效率)最高的资产组合。注意到,市场组合中不包括无风险资产。如果资产组合能够包括无风险资产,那么还可以组合出橙线以下区域的收益-风险配置,这条橙色的线我们称之为资本市场线(capital market line)。为什么这条线上的点可以通过加入无风险资产构建出来呢?简单来说,比如资本市场线上红点和绿点之间的线段,可以通过购买 $\alpha$ 比例的无风险资产再加上 $1-\alpha$ 比例的市场组合来得到。当 c 时,全部购买无风险资产,在红点处;当 $\alpha=0$ 时,就为市场组合,在绿点处。其实 $\alpha$ 还可以为负数,这时候相当于以无风险利率从市场借钱,然后购买更多的市场组合,对应的点就在绿点上方的射线上了。

敲黑板

  1. 我们使用方差来衡量风险
  2. 通过资产组合的配置可以降低风险,中和收益
  3. 有效前沿是在诸多有风险资产上配置资产组合能达到的最好情况,市场组合是其中投资效率最高的一个资产组合
  4. 资本市场线是加入无风险资产资产之后能够配置出来收益-风险特征的边界

进一步的量化模型:资本资产定价模型(CAPM)

资本资产定价模型(Capital Asset Pricing Model,CAPM)是由Jack Treynor, William F. Sharpe, John Lintner和Jan Mossin等人在 MPT 基础上独立提出的,CAPM是可以由 MPT 推导出来的,但这里不做推导了,我们直接写公式。

CAPM表述的是任何一种风险资产的收益率相对于市场组合收益率之间的关系

$$E(r_s) = r_f + \beta_s (E(r_M) - r_f)$$

其中,$r_s$ 表示某种风险资产的收益率,可以理解为某只股票的收益率;$r_f$ 是无风险收益率;$r_M$ 是市场组合收益率;$\beta_s$ 表示该风险资产相对于市场的敏感性,其计算公式为 $\beta_s = cov(r_s,r_M)$,它反映的事该风险资产收益随着市场组合收益波动的关联性大小。

在牛市期间,如果买入 $\beta_s>1$ 的股票,可能赚钱比市场平均收益更多的收益;在熊市期间,如果持有 $\beta_s<1$ 的股票能够避免过多的损失,甚至如果某风险资产的 \beta_s<0$,则该风险资产能帮助你在熊市期间赚钱(比如股票的空头)。

我们来看一下 $\beta_s$ 的计算公式

贝塔系数(Beta Coefficient)是一种评估证券系统性风险的工具,用以度量一种证券或一个投资证券组合相对总体市场的波动性。贝塔系数利用回归的方法计算。贝塔系数为1即证券的价格与市场一同变动。贝塔系数高于1即证券价格比总体市场更波动。贝塔系数低于1(大于0)即证券价格的波动性比市场为低。

$$\beta_s = \frac{cov(r_s,r_M)}{var(r_M)}$$

其中,分母计算方法为 $var(r_M) = \sum_{i=1}^{n}\sum_{j=1}^{n}w_iw_jcov(r_i,r_j)$,分子部分计算方法为 $cov(r_s,r_M) = \sum_{i=1}^{n} cov(r_s, r_i)$。

通常来讲,市场组合中的证券数目是相当大的。举例来说,A 股市场的股票数目现在有三千多只,如果再加上期货、基金可能会有上万中投资标的。相应的分母部分需要计算$N^2$ 量级个的协方差,运算量非常大。我们之后介绍的因子模型可以解决这样的问题。

总结一下,资本资产定价模型主要说的就是,在投资者都是风险厌恶的情况下,如果某个投资标的具有更大的风险,投资人会期望该投资标的能够带来更大的收益;反过来,如果某投资标的有更多的收益,那么它会承担更多的风险。收益和风险满足公式所描述的线性关系。