股票多因子模型实战:Python核心代码解析
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.2.3 多因子模型的实践框架

多因子框架体系可以归结为“道”和“术”两个层面。在上面一小节中,我们简单介绍了多因子模型背后的底层原理,可以说是“道”的层面,简单理解即可;而在这一小节中,我们要讲解一下“术”的层面,也就是实际操作过程中是怎么将“道”这一层面的思想体现出来的。先看一下多因子模型框架结构图,如图1-2所示。

图1-2 多因子模型框架结构

多因子模型的具体构建分为3个子部分:单因子测试与筛选、因子合成和组合构建。在进入实盘之后,还应当增加“归因分析”的部分。本书由于篇幅有限,只讨论前面三个部分。

第一部分是单因子测试与筛选,如图1-3所示。

先构建自己的因子池,并通过测试模板和特定的指标不断地测试这些因子,把目前市场下可行、有效的因子纳入入选因子池,这个过程就叫作“因子筛选”,这一过程以因子池和因子测试为基础。

因子测试与筛选的详细内容将会在本书第4章介绍。

第二部分是因子合成。

图1-3 因子测试与筛选示意图

因子合成的过程很简单,就是对上一步筛选出来的因子进行加权求和变成一个合成因子,如图1-4所示。但其加权的过程有很多种方法,有传统的指标加权方法,也有比较复杂的机器学习和深度学习的加权方法,还可以完全不依赖于数量模型,单纯依靠投资者对当前市场的理解和经验进行加权,甚至可以将多种模型相结合。

图1-4 因子合成示意图

目前在整个股票多因子体系中,这一部分可研究、挖掘的点是最多的,而且也是主观投资者与量化投资者可以相互结合的环节。

第三部分是组合构建。

当我们通过一定的手段获得合成因子后,其实就获得了每一只股票的一个总的因子分值。我们可以按照从小到大的顺序给股票池中的股票排序,接下来根据合成因子的打分来计算哪只股票买多少比例,这就是股票组合的构建,如图1-5所示。

图1-5 组合构建示意图

股票组合的构建方法:最简单的方法是选出得分前20%的股票,然后等权买入;也可以采用复杂的数学方法,例如将优化算法结合马科维兹的组合理论进行组合优化,最终得到一个优化器计算出来的组合结果。

所谓的组合,简单来看其实就是每只股票的占比权重,如表1-2所示。

表1-2 股票组合表

上面我们分了三个部分静态介绍了多因子模型的操作框架,下面我们从时间维度,动态理解一下这一模型具体是如何进行股票调仓的。

假设现在是T时刻,而我们的调仓周期是t,那么依赖于现在可以获得的数据计算出T时刻的合成因子值,并通过组合构建方法计算出一个组合,记为PT,如表1-3所示。

表1-3 组合PT

调仓周期可以是数分钟也可以是数个交易日甚至是数个月。在一个调仓周期(t)后,我们可以依赖新的数据计算出T+t时刻的股票组合,即PT+t,如表1-4所示。

表1-4 组合PT+t

T+t时刻的新的组合可以与前一个组合进行轧差,在对比差异之后,进行调仓,确认需要买入和卖出的股票数量,如表1-5所示。如果调仓方向为负数,那么就是卖出特定比例的股票;如果为正数,那么就是买入特定比例的股票,最终使得组合PT变成PT+t

表1-5 组合轧差