田大伟:我眼中的A股量化二十年
A股市场有量化公募基金到现在也就是20年,我觉得这20年间已经经历了三个阶段,初期的量化投资是基于规则的投资,中期是系统化投资,现在是算法交易和机器学习。
早期的量化投资,其实就是基于规则的投资,期待成功的经验在未来市场能够复现。量化投资会通过编程对大量历史数据做更完备的检验。
举例来说,量化投资会在每月初把所有股票按PB高低分组,月末看低PB组合的收益是否大于高PB组合。如果过去十年每个月都这样做,低PB组合能够持续稳定地战胜高PB组合,那么在实践中就可以购买低PB组合来获取超越市场平均水平的收益。
在实际操作中,我们会尽可能地细分到合适的组数,并在不同的板块、不同的指数、不同的时间等尽可能多的维度对因子进行测试。好的量化因子会在各个组别里都呈现出规律性,这样的量化因子称之为阿尔法因子。
估值这个因子,确实有它的优势。市场跌的时候,可能会跌得少些,但还是会亏钱的。
一般单因子很难表现出色,所以量化投资也引入了因子组合的概念。如PB低于1,ROE大于10%组合,将低PB和高ROE进行组合。在组合方法上,早期的量化投资将各因子进行线性组合,等权买入,或者把高低因子组合收益差作为权重构建组合。
没有经验来自于未来,所以在回测时不能使用未来数据。同样,也有很多方法来规范回测流程。例如,假设现在是N年,我们可以用N-10年到N-3年的数据来确定各因子组合的权重等参数,用N-2和N-1年的数据来检验这些参数是否仍然有效,如果检验和验证时间段的结果比较一致,那么模型参数是稳健的,用到第N年的投资就会更加放心。
多年实践下来,我觉得因子只是一棵“树”,量化投资需要的是一片“森林”。成功的量化投资策略需要具有强大的自生力,可以不断繁衍。
这个“森林”就是量化体系。在这个量化体系中,因子开发所用的原始数据需要统一,因子计算通用函数需要统一,因子回测模块需要统一,但因子的组合可以千变万化。有了这样的量化体系,可以在很短的时间内对新的因子做一次全场景的回测,而不用担心是否使用了错误数据和方法,回测结果是否可比等问题。
有了这个量化体系后,很多流程都模块化、标准化了,量化投研人员就可以站在“巨人”的肩膀上,集中精力进行新因子核心逻辑的研发,就可以腾出时间来做更加精细的研究,来获得更好的投资效果。
还是以PB因子为例,PB低的组合除了PB低之外,还会有其他特征,例如银行股占比高等等,而我们需要的是低PB本身能带来收益,因此需要构建纯PB因子组合。纯因子组合是通过数学优化方法,最大化暴露于某一特定因子,同时最小化其他因子的影响。在实际的因子研发流程中,就会有一个模块,对因子进行行业、市值等其他因子的中性化处理,尽可能剔除其他影响因素。纯因子之间进行组合时,才能形成1+1>2的效果。
纯因子组合的研究思路就是量化投资获取超额收益的方法。
以中证500指数增强量化基金为例。中证500指数是一个由500只股票组合的股票组合。中证500指数增强策略要构建一个新的股票组合来战胜指数成分股组成的股票组合。这个新的组合就是相对中证500成分股的纯阿尔法因子组合,新组合在阿尔法因子上的得分要跟中证500指数的成分股拉开差距,其他特征一致。如果我们的阿尔法因子越强越稳定,那么我们构建的新组合相对指数的超额收益就会越多越稳定。
另外,如果你选择增强的基准比较强,叠加上阿尔法收益,产品也会具有绝对收益的特征。同时,市场上也有量化产品可以不针对任何基准,只是最大化阿尔法因子得分。
所以对于量化投资来说,第一步就是寻找好的阿尔法因子,第二步是构建各种策略组合。在实践中,量化系统可以同时研究和跟踪非常多的因子,各类因子与各类基准进行组合生成不同的产品策略。此时的量化投资就进入了系统化投资阶段。不断丰富量化因子武器库和策略库,投资机构可以应对不断变化的市场,满足客户的需要。
目前我们的量化系统定期跟踪1000多个因子,逐日跟踪500多个因子,用于构造超额收益策略的基准有30多个。在我们的系统中,每个阿尔法因子和每个基准都会组合产生一个超额收益策略。换句话说,每个基准都有上百个超额收益策略每日计算和跟踪。
因为每家量化投资机构因子入库的标准不同。有些机器挖出的因子我们是不作为阿尔法因子看待的,效果不好的因子我们也不会跟踪。所以相对于因子的数量,我更建议关注因子的质量和评价体系,例如如何将一个差因子一步一步研发成好因子,并把这个过程流程化,用于其他因子研发。
为了维护产品超额收益的稳定性,也为了应对产品规模的增长,会根据实际情况选择不同的策略进行交易。策略多了,交易的股票也就多了。所以量化产品调仓时通常都会同时买卖上百只股票,这时就需要算法交易来帮助我们了。
随着量化产品规模的增加,算法交易的重要性更加明显。在算法交易和嵌入算法交易的交易系统的加持下,量化投资才能释放出更大的能力,这也是现阶段量化投资的一个重要特征。
而且,除了精准和节约,算法交易还可以进一步利用“逐笔成交数据”来进一步挖掘因子。我们普通投资者每天接触的,大多是日频数据,也就是每天的情况。但下单的数据是逐笔委托数据,但单子可能会被不同的对手盘单子吃掉,每次撮合成交的数据就是逐笔成交数据。这种数据交易所也是最近几年才完整提供的,称之为L2数据。
L2数据可以说包含了大量详实的量价信息。如果市场上5000多只股票每天的逐笔成交和逐笔委托等L2数据都获得并存放成CSV文件,那么每天有几十G的量,这些数据是量化投资寻找阿尔法因子的宝库。
有了L2数据,我们可以构建每天特定时间段的因子,例如收盘前30分钟的因子,也可以从L2数据中筛选出“大额”资金成交或者委托的信息,或者是主动买入、卖出等信息等,这样构建的因子信息是非常丰富的。
算法交易、机器学习,感觉现在的量化投资方法越来越复杂,财务数据之外,量化方法还会使用很多其他数据。数据多但与股票涨跌无关也是无用的,方法越复杂也越难以有效把控。
财务数据、事件数据、一致预期数据、简单的日频量价数据都是量化研究的重点,机器学习等方法我们也在不断学习,融入到整个量化体系当中,以提高我们因子库的质量,提高策略业绩和产品业绩的稳定性。量化投资就是团队成员彼此分工构建和迭代生产策略的流水线。
未来的量化投资方法已经在孕育中了,只是目前还没有特别好的成果。例如强化学习方法就像在虚拟的市场环境中进行“交易”,根据交易结果的好坏得到“奖励”或者“惩罚”来修正交易过程,直接给出“最优”的买卖信号。那时可能就步入了人工智能和金融工业化阶段。
总体而言,股票市场是个复杂市场,量化投资还很年轻,主动量化产品的总规模和单个产品规模都相对较小,量化产品的业绩波动也很大,需要更长时间的检验。