多因子策略

作者:时到量化发布时间:2023-6-19

一、多因子策略及其原理
多因子策略使用多因子模型来从多个角度建模解释市场,给股价进行归因,从而帮助人们进行选股套利。多因子模型有很多种,如Fama-Fench三因子模型、Carhart四因子模型、Novy-Marx四因子模型等等,这里我们使用最经典也是最早提出Fama-Fench三因子模型来对A股市场进行建模。

Fama-Fench三因子模型:在多因子模型出现之前,CAPM模型被人们奉为真理,几乎所有定价均是按照CAPM模型计算的,然而后来学者们发现了各种异象,这些异象无法用CAPM模型解释。如Basu发现的盈利市值比效应和Banz发现的小市值效应。直到Fama-Fench三因子模型被法玛和法兰奇在1990年代初提出,模型认为资产的超额收益由市场收益、规模收益、价值收益三个部分组成,公式如下:

多因子策略
这里Ri为股票i的收益率,Rf为无风险收益率,RM为市场组合的收益率,SMB为规模因子,HML为价值因子。

根据上述公式对每支股票月线序列进行回归我们可以获得四个变量α、β、s、 h,其中α代表股票当前的超额收益,由于多因子模型是对价格的归因,当模型足够准确时α应该等于0。所以我们认为,股票的α长期来看均值等于0,即我们可以买入α为负数的股票,等到其回归0卖出实现套利。

二、策略量化的具体实现

根据上一节阐述的多因子策略的原理,我们实现了对A股市场的4000多支沪深的上市股票的Fama-Fench三因子模型归因分析,并构建了一套完整的选股策略。具体流程如下:
         1. 首先获取每支股票的所有历史数据,包括收盘价、流动市值、账面价值比。然后取这些数据每个月的第一个交易日为准,转化为月线数据,并计算出每个月的相比上月收益率。
         2. 统计每个月所有股票的流动市值,将其按照从高到低的顺序以1:1的比例划分为大市值组B和小市值组S。再统计每个月所有股票的账面价值比,将其按照从高到低的顺序以3:4:3的比例划分为高价值组H,中价值组M和低价值组L。
         3. 根据分组构建计算市场的规模因子SMB和价值因子HML。公式如下,其中SH代表同时归属S组与H组的所有股票的月收益率的市值加权平均。
多因子策略
        4. 对每支股票每个月取前4年(48个月)的数据进行线性回归,计算得出包括α在内的四个变量。
        5. 使用量化指标α构建策略寻找买入和卖出时机。

三、买入时机和卖出时机
上一小节,我们完成了Fama-Fench三因子模型的建模并对沪深股市的4000多支股票进行了完整的月线回归。并成功得出了每一支股票每个月的超额收益率指标α。那么如何利用α进行选股,以及选股之后的卖出择时又该如何选择呢。这一节我们将进行详细探讨。

    ①何时买入?
为了验证三因子模型确实在A股市场有效,即α确实能实现套利。我们分别将买入条件设置为每月买α最小的10支、买月买α最接近于0的10支和每月买α最大的10支来进行十年回测。回测时间为2013年-2023年,卖出条件统一为α超过0时卖出。以下是十年的策略收益率:

每月买α最小10

每月买α最接近010

每月买α最大10

426%

254%

15%

1

表1可知买α最小的股票并在α大于0时卖出能获得最高收益,而买α最大的股票在α低于0时卖出则获得最低的收益,收益率的差在5倍左右。因此Fama-Fench的三因子模型在A股市场依旧有效。

    ② 买几支?
知道了何时买入,那么我们每次买多少支呢?由于模型回归的股票多大4000多支,即每个月α小于0的股票可能存在数千支,那么我们选取α最小的多少只进行买入比较合理也是一个值得探讨的问题。以下我们分别对每月买10支、15支、20支、30支、50支、100支进行了回测,结果如下:

每月买10

每月买15

每月买20

每月买30

每月买50

每月买100

426%

473%

472%

462%

505%

464%

2

由表2我们可以看到买个月买10-100支的收益率相差并不大,在买10支时最小为426%,在买50支时最大为505%,但考虑到实际操作的难度问题,我们选择收益率排第二的每月买15支作为标准方案。

    ③ 何时卖?
选股策略的卖出时机也是一个十分重要的部分。我们选择了四种方案进行回归测试:买入后α超过0时卖出、买入后α不再排在最后N支时卖出、持有一年后卖出、持有至今。回测条件为每月买α最小的15支股票,结果如下表:

买入后α超过0时卖出

买入后α不再排在最后15支时卖出

买入后持有一年卖出

买入后持有至今

473%

165%

318%

455%

3

由表3我们可以看出买入后α不再排在最后15支就卖出的收益率最低,这是因为α回归到0的过程中我们一直在赚钱,而仅仅因为α变高了就卖出会失去后面很多获利的机会。而买入后α超过0时卖出收益率最高,这是因为一旦超过了0其就进入了超额收益阶段,随时有α回归0的风险。这一结果也完全符合Fama-Fench三因子模型的设想。


四、多因子策略回测结果分析

在上一节,我们研究并确立了多因子选股策略的买入和卖出方法条件,以下是具体的回测结果图。我们将展示我们最终确立下的方案:每月买入α最低的15支,直到α超过0时卖出。
多因子策略回测结果分析

1

图1中的红线就是多因子选股策略的收益曲线,十年累计收益率达473%。图中绿线的基准收益率,取的是沪深300的收益率,近十年沪深300指数从2520点左右涨到2023年初的3860点左右,累计约53%。可见Fama-Fench多因子模型在A股市场依旧有效,且在我们的买入卖出时机优化下可以取得比基准高10倍的可观收益率。我们进一步对图1进行各个市场状态下的分析,以便对策略有更深的理解。

牛市(2015上半年):多因子选股策略表现优秀,能够取得远超基准的收益。
熊市(2015下半年-2019年):多因子选股策略回撤很大,大于50%,超过了大盘基准和其它选股策略的回撤。
震荡市场(2016至今):多因子选股策略在震荡上涨中保持与大盘同步的走势,在震荡下跌中相比大盘较为抗跌,最终可以获取基准收益两倍左右的收益率。

由以上分析可知,这是一个牛市发力,熊市亏损,震荡市场较为稳定的策略。若用户有良好的市场状态判断能力,加之结合其它选股策略进行使用,如牛市使用多因子选股策略,熊市和震荡市场使用巴菲特选股策略,相信可以获得极其优秀的高额收益率。

五、多因子策略的一些研究

多因子选股策略相较于其它选股策略而言,是一个更为复杂的策略。我们需要获取数据、给股票分组、计算市场的因子、对股票进行大量线性回归计算、制定买入卖出时机等等一系列流程。因此调参过程也相对烦琐,这里作为参考我们将展示我们在一些参数选择方面的研究结果。并给有兴趣的用户指明几个优化策略的可能方向。

    ① 线性回归R方值的条件约束:
由于多因子模型需要对每支股票使用线性回归,任何模型都是一个对真实市场的近似,回归的结果无可避免的与真实价格数据存在或多或少的偏差。这里我们使用R方值来描述多元线性回归结果的可信度。一般的我们认为R方值大于0.7时线性回归较为可信,而R方值过小则数据不符合线性回归模型。因此我们对每月挑选的α最小的10支股票进行买入操作前先用R方值大于0.7过滤一次,仅挑选符合线性回归模型的股票进行买入。

结果十年收益率从473%下降至214%。且研究某月所有股票α的分布发现,取消R方值的约束条件分布更符合正态分布,而加上约束后则会正态分布产生很长的右偏。这很可能因为多因子模型并不是对现实的真实模拟,亦或是单纯在A股市场上模型发生的偏差较大。因此回归结果的score也会变低,但不影响α的可利用性。

    ② 线性回归年数的选择:
包括线性回归,任何回归都需要大量的数据,而这里线性回归的年数就决定了数据的多少。由于我们对月度数据进行回归一年则会有12个数据。为了验证数据量的影响。我们分别将回归年数设为1年和4年并进行了全部股票的十年全部月数的回归。最终结果发现1年回归的整体R方值低于4年回归,即α的可信度降低了。且进行回测后发现1年回归的十年策略回测收益率为300%也是远低于4年回归时的473%。

    ③ 市场因子的选择:
市场因子是为了将股价归因到市场风险上,那么市场基准的选择也会带来结果的差异。我们选择了沪深300指数与上证指数做对比,结果沪深300指数作为市场因子取得了仅500%的收益而上证指数作为市场因子仅获得了294%的收益。可能由于我们的选股池涵盖了沪深两市,所以作为市场因子,上证指数偏差更大。但更好地市场因子是用选股池全部的数千支股票进行每月价格的平均,这里我们并没有进行进一步研究,仅提供思路给有兴趣的用户。

六、多因子策略风险控制
毫无疑问,一个策略当中,最重要的莫过于风险控制部分,风控是基础,在此基础上,再去考察该策略的收益。我们通常用波动率来描述风险,降低您交易系统的波动率,便可以降低风险(降低非系统性风险),比如一支跌幅50%的股票比跌幅20%的波动率要大,风险也更大。对于普通投资者来说,降低交易系统的波动率最简单可行的办法,我们认为比较可行的是分散投资和固定跌幅止损这两种使用较为普遍的方案。

分散投资,两层含义,一是持股要分散,比如持有10-30支均等仓位的股票。从统计学上来讲,随机抽样持有10支能拟合70%的A股走势,持有30支能拟合90%的A股走势,这个结论的证明过程我们不在此展开,我们直接使用结论。二是持仓股相关性要尽量小,比如不建议持有的股票全是同一个行业,比如全部持仓股都是新能源板块,或者全部持仓股都是医疗板块。因为如果持有同一板块或者相关性很强的板块,会导致涨跌同步,账户净值波动剧烈,很难降低风险。同理,我们也不建议集中持有相关性很高的上下游行业,这类行业相关性比较强,同涨同跌,如果持仓股集中在这类行业,账户净值同样会有较大波动,风险较大。

固定跌幅止损,也是一个常用的止损方式,因人而异,能承担较大波动的投资者,可以把止损位定在-15%--- -20%,即本金损失15%即开始止损。这样即便买的所有股票都跌20%,账户整体净值最大跌幅也只有20%。注意这里是本金损失15%即开始止损,而并非资金回撤15%开始止损,这两者有本质区别。

巴菲特有句名言:投资股市第一条准则是保住本金,第二条是保住本金,第三条是记住前两条。在投资过程中,要尽量控制风险,避免损失本金。俗话说,留得青山在,不怕没柴烧,巴菲特深知其中的道理。只要保住了本金,那么,随着时间的增长,对投资领域理解逐渐深入,可以认为赚钱的概率会越来越大,赚钱只是时间早晚而已。

没有风险控制的交易系统,犹如开汽车没有刹车,出事故是个大概率事件,可能有极少数人能平安降落,但那并不代表大多数的情况。所以,我们会在每个策略里面反复强调风险控制的重要性,如果您要在实盘中测试我们提供的策略,请您务必首先做好风险控制,避免本金发生大的回撤,请您对自己的测试行为负责,盈亏自负。

七、多因子策略总结
我们用Fama-Fench三因子模型对A股市场股票进行了归因分析,结果证明了多因子模型依然有一定的归因效果。在这个基础上,我们研究了多种方案进行相应的买入卖出择时操作,通过对近十年的数据进行回测,证明了以多因子模型为基础的多因子选股策略有远超基准的不错表现。各方案策略收益率均大幅跑赢沪深300指数的收益率。

当我们选择使用沪深300指数作为市场因子,并且用4年月线数据进行多元线性回归后,每月买入α最小的15支股票,在α超过0时卖出时(见图1)可以获得较为高额的十年473%收益率。然而我们也发现该策略仅在牛市有优秀的表现,而在熊市回撤幅度远远大于基准,达到50%以上,震荡市场则表现稳定。

时到量化提供包括多因子选股策略在内的多种选股策略供用户使用。用户可以根据市场状态的不同而选用不同的选股策略,同时可以将选出的股票再次应用技术类择时策略进行二次买卖筛选,以提高收益率。但请注意在实际操作中,需要根据具体情况进行权衡和筛选。同时,建议用户对市场环境、公司股票情况等进行分析和研究,以获得更全面的股票投资决策。

最后,尽管我们努力想把自己能做到最好的分析呈现给大家,希望能帮助您的投资更为有效,但难免会有疏漏之处,我们诚恳接受大家合理的建议,我们会持续快速优化迭代相关策略,您的支持是我们持续努力最大的动力。