![股票多因子模型实战: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=1739405640-7wS2sa1plG5XwS68ra1gOyXGj4FhWq98-0-8bf78ad9ac16beafe558d94a097f38a3)
图1-2 多因子模型框架结构
多因子模型的具体构建分为3个子部分:单因子测试与筛选、因子合成和组合构建。在进入实盘之后,还应当增加“归因分析”的部分。本书由于篇幅有限,只讨论前面三个部分。
第一部分是单因子测试与筛选,如图1-3所示。
先构建自己的因子池,并通过测试模板和特定的指标不断地测试这些因子,把目前市场下可行、有效的因子纳入入选因子池,这个过程就叫作“因子筛选”,这一过程以因子池和因子测试为基础。
因子测试与筛选的详细内容将会在本书第4章介绍。
第二部分是因子合成。
![](https://epubservercos.yuewen.com/34B52E/26763701701331606/epubprivate/OEBPS/Images/40875_20_1.jpg?sign=1739405640-e4ZTZk07vQUHZOhiH36Smkh6GvD4ruey-0-03b796c0f5fce6d5b64363865f0fe06e)
图1-3 因子测试与筛选示意图
因子合成的过程很简单,就是对上一步筛选出来的因子进行加权求和变成一个合成因子,如图1-4所示。但其加权的过程有很多种方法,有传统的指标加权方法,也有比较复杂的机器学习和深度学习的加权方法,还可以完全不依赖于数量模型,单纯依靠投资者对当前市场的理解和经验进行加权,甚至可以将多种模型相结合。
![](https://epubservercos.yuewen.com/34B52E/26763701701331606/epubprivate/OEBPS/Images/40875_20_2.jpg?sign=1739405640-K1cgiXEW75Bkda81kbfolqlkI77PfMPy-0-d410ef5dbebe3a82b000e5277e5dcbf5)
图1-4 因子合成示意图
目前在整个股票多因子体系中,这一部分可研究、挖掘的点是最多的,而且也是主观投资者与量化投资者可以相互结合的环节。
第三部分是组合构建。
当我们通过一定的手段获得合成因子后,其实就获得了每一只股票的一个总的因子分值。我们可以按照从小到大的顺序给股票池中的股票排序,接下来根据合成因子的打分来计算哪只股票买多少比例,这就是股票组合的构建,如图1-5所示。
![](https://epubservercos.yuewen.com/34B52E/26763701701331606/epubprivate/OEBPS/Images/40875_21_1.jpg?sign=1739405640-Mqr8rHGUNKyQoq7PJ9NVfb0LWCjTDmhg-0-9d4f8fe37e67c4525b06d0451d35c333)
图1-5 组合构建示意图
股票组合的构建方法:最简单的方法是选出得分前20%的股票,然后等权买入;也可以采用复杂的数学方法,例如将优化算法结合马科维兹的组合理论进行组合优化,最终得到一个优化器计算出来的组合结果。
所谓的组合,简单来看其实就是每只股票的占比权重,如表1-2所示。
表1-2 股票组合表
![](https://epubservercos.yuewen.com/34B52E/26763701701331606/epubprivate/OEBPS/Images/40875_21_2.jpg?sign=1739405640-JTU1xOSTXXg5KDWmb6xM8xtvfY2P4I0Z-0-ab1dcabe485c2c45c6edbc61f8281379)
上面我们分了三个部分静态介绍了多因子模型的操作框架,下面我们从时间维度,动态理解一下这一模型具体是如何进行股票调仓的。
假设现在是T时刻,而我们的调仓周期是t,那么依赖于现在可以获得的数据计算出T时刻的合成因子值,并通过组合构建方法计算出一个组合,记为PT,如表1-3所示。
表1-3 组合PT
![](https://epubservercos.yuewen.com/34B52E/26763701701331606/epubprivate/OEBPS/Images/40875_22_1.jpg?sign=1739405640-wM7fDx2mkWwqPRzPE0NshsxGJaE7eFi0-0-ebe963317495b59c46b3ff4297805e95)
调仓周期可以是数分钟也可以是数个交易日甚至是数个月。在一个调仓周期(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=1739405640-9WQSAGPBlVLMoWx7TsUjnhjXCnNnQ0LU-0-94b31086b9f0a7b14f682827fa1691b7)
T+t时刻的新的组合可以与前一个组合进行轧差,在对比差异之后,进行调仓,确认需要买入和卖出的股票数量,如表1-5所示。如果调仓方向为负数,那么就是卖出特定比例的股票;如果为正数,那么就是买入特定比例的股票,最终使得组合PT变成PT+t。
表1-5 组合轧差
![](https://epubservercos.yuewen.com/34B52E/26763701701331606/epubprivate/OEBPS/Images/40875_22_3.jpg?sign=1739405640-BwQ6HVreHxubXrqPgXdXgDvA2VIJYyHP-0-7da96e00b9642b13adcd32aa986511fa)