![股票多因子模型实战:Python核心代码解析](https://wfqqreader-1252317822.image.myqcloud.com/cover/260/47379260/b_47379260.jpg)
1.2.3 多因子模型的实践框架
多因子框架体系可以归结为“道”和“术”两个层面。在上面一小节中,我们简单介绍了多因子模型背后的底层原理,可以说是“道”的层面,简单理解即可;而在这一小节中,我们要讲解一下“术”的层面,也就是实际操作过程中是怎么将“道”这一层面的思想体现出来的。先看一下多因子模型框架结构图,如图1-2所示。
![](https://epubservercos.yuewen.com/34B52E/26763701701331606/epubprivate/OEBPS/Images/40875_19_1.jpg?sign=1739515283-w3WYaPE9vsWxo4TKfA0zQY8ZNLCVXDq7-0-e04c9d387c7b1d2b45d9f8a9af0cb3e7)
图1-2 多因子模型框架结构
多因子模型的具体构建分为3个子部分:单因子测试与筛选、因子合成和组合构建。在进入实盘之后,还应当增加“归因分析”的部分。本书由于篇幅有限,只讨论前面三个部分。
第一部分是单因子测试与筛选,如图1-3所示。
先构建自己的因子池,并通过测试模板和特定的指标不断地测试这些因子,把目前市场下可行、有效的因子纳入入选因子池,这个过程就叫作“因子筛选”,这一过程以因子池和因子测试为基础。
因子测试与筛选的详细内容将会在本书第4章介绍。
第二部分是因子合成。
![](https://epubservercos.yuewen.com/34B52E/26763701701331606/epubprivate/OEBPS/Images/40875_20_1.jpg?sign=1739515283-mF3mtK7ruxALeoJI4al5j7AslC2CNyx7-0-94c873749e9c474bd65f5b3a18195774)
图1-3 因子测试与筛选示意图
因子合成的过程很简单,就是对上一步筛选出来的因子进行加权求和变成一个合成因子,如图1-4所示。但其加权的过程有很多种方法,有传统的指标加权方法,也有比较复杂的机器学习和深度学习的加权方法,还可以完全不依赖于数量模型,单纯依靠投资者对当前市场的理解和经验进行加权,甚至可以将多种模型相结合。
![](https://epubservercos.yuewen.com/34B52E/26763701701331606/epubprivate/OEBPS/Images/40875_20_2.jpg?sign=1739515283-AXhS9Gq13tOSUaieis1MxUutO2T7Gakp-0-852a2b82f7e10595da2b62e55cb1f72a)
图1-4 因子合成示意图
目前在整个股票多因子体系中,这一部分可研究、挖掘的点是最多的,而且也是主观投资者与量化投资者可以相互结合的环节。
第三部分是组合构建。
当我们通过一定的手段获得合成因子后,其实就获得了每一只股票的一个总的因子分值。我们可以按照从小到大的顺序给股票池中的股票排序,接下来根据合成因子的打分来计算哪只股票买多少比例,这就是股票组合的构建,如图1-5所示。
![](https://epubservercos.yuewen.com/34B52E/26763701701331606/epubprivate/OEBPS/Images/40875_21_1.jpg?sign=1739515283-dGRtKeFpmb91lKRuvFjvX6MKzLlGFbfq-0-4ec8e89fb9e471b18e7ecc77d879712b)
图1-5 组合构建示意图
股票组合的构建方法:最简单的方法是选出得分前20%的股票,然后等权买入;也可以采用复杂的数学方法,例如将优化算法结合马科维兹的组合理论进行组合优化,最终得到一个优化器计算出来的组合结果。
所谓的组合,简单来看其实就是每只股票的占比权重,如表1-2所示。
表1-2 股票组合表
![](https://epubservercos.yuewen.com/34B52E/26763701701331606/epubprivate/OEBPS/Images/40875_21_2.jpg?sign=1739515283-m8e9YnT96Omb8ZVGzkZejMEC7A2aTzgi-0-102fbbae9a2b52caabdb8159b5699e02)
上面我们分了三个部分静态介绍了多因子模型的操作框架,下面我们从时间维度,动态理解一下这一模型具体是如何进行股票调仓的。
假设现在是T时刻,而我们的调仓周期是t,那么依赖于现在可以获得的数据计算出T时刻的合成因子值,并通过组合构建方法计算出一个组合,记为PT,如表1-3所示。
表1-3 组合PT
![](https://epubservercos.yuewen.com/34B52E/26763701701331606/epubprivate/OEBPS/Images/40875_22_1.jpg?sign=1739515283-NgjKReTd9bbuA9cdM4LFy11Cs7BEw0EF-0-9120f45aa6da081b3ccf730a7d5533c3)
调仓周期可以是数分钟也可以是数个交易日甚至是数个月。在一个调仓周期(t)后,我们可以依赖新的数据计算出T+t时刻的股票组合,即PT+t,如表1-4所示。
表1-4 组合PT+t
![](https://epubservercos.yuewen.com/34B52E/26763701701331606/epubprivate/OEBPS/Images/40875_22_2.jpg?sign=1739515283-GwS6pnKCgCzMhWDYXqLF8jyWlHHvLdBd-0-829ee4daa5d8951c1471d20f9b3e4085)
T+t时刻的新的组合可以与前一个组合进行轧差,在对比差异之后,进行调仓,确认需要买入和卖出的股票数量,如表1-5所示。如果调仓方向为负数,那么就是卖出特定比例的股票;如果为正数,那么就是买入特定比例的股票,最终使得组合PT变成PT+t。
表1-5 组合轧差
![](https://epubservercos.yuewen.com/34B52E/26763701701331606/epubprivate/OEBPS/Images/40875_22_3.jpg?sign=1739515283-QAT9iL9iNz74NfvHr4R1Rmtw3zDhDRSl-0-bd1be9dfa350890b931d7736b48a30c1)