【重磅】AI Alphas(A股版)

alpha
alpha101
ai_alphas
alpha策略
stockranker
标签: #<Tag:0x00007f3293898c40> #<Tag:0x00007f3293898b00> #<Tag:0x00007f32938989c0> #<Tag:0x00007f3293898880> #<Tag:0x00007f3293898740>

(iQuant) #1

本篇报告详尽地介绍了基于人工智能的阿尔法策略框架,包括基于AI技术在策略研究上的阶段性的工作和成果,并提供完整代码,读者可克隆策略,复现效果和继续改进。
希望本文能帮助读者拓展研究思路,应用AI来做更好的量化策略研发,把人工智能的能力赋予更多的投资者 (Democratize AI to empower investors)。


摘要

  • 本篇报告构建了一个完整的可复用的 人工智能阿尔法策略框架

  • 本篇报告用AI对基本面、财务、交易型等 282个因子 做了单因子策略研究和多个维度上的绩效分析,并 发掘了在短、中、长周期上多个夏普比率超过1.5 、年化收益超过 30% 的因子

  • 本篇报告也对AI和传统方法的效果做了对比,相同因子下,AI的效果远超传统方法,收益有100%以上的提升,这主要得益于StockRanker非线性模型学习能力、大数据和强大计算资源等方面相较于传统人工的优势, 能最大限度的发掘因子的价值。


$$ 图:因子收益能力挖掘:AI比传统方法提升超过100% $$


$$目录$$

1、引言
2、阿尔法体系
 2.1 多因子模型的发展及基本理论
 2.2 传统阿尔法体系
 2.3 交易型阿尔法体系
 2.4 阿尔法体系模型的评价标准
 2.5 阿尔法体系预测的一致性问题
3、AI阿尔法体系
 3.1 AI阿尔法构建思路
 3.2 一些显著的因子举例
 3.3 AI阿尔法体系构建
4、AI策略构建
 4.1 AI策略开发流程
 4.2 AI Alphas研究设计
 4.3 策略参数设置
 4.4 分析结果
  4.4.1 总体概览
  4.4.2 按时间段划分
  4.4.3 按因子周期划分
  4.4.4 因子收益发掘能力对比
  4.4.5 风格因子暴露分析
  4.4.6 交易成本敏感性分析
5、总结与展望
6、参考文献
7、附录


1、引言

近年来,量化投资行业得到了迅速的发展,随着理论升级和技术更新,Barra风险结构模型逐步得到更广泛和更深度的应用。多因子模型为Barra风险结构模型的一个简化模型,其基本假设就是相似的资产会有相似的回报。由于某些特定的原因(因子),资产的收益也会表现出一致性,例如价量变化、行业、规模或者利率变化。多因子模型旨在发掘能够带来超额收益的阿尔法因子,并且确定收益率随因子变化的敏感程度。

传统多因子模型在 A 股过去若干年内也获得较为稳健的超额收益。然而,由于市值效应在 A 股市场的影响过于明显,导致传统多因子模型或多或少都受其影响。 尤其是自2016年11月以来,随着A股市场风格的急剧变化,策略稳定性受到了一定冲击。从目前市值因子的收益波动性而言,小市值因子超额收益的黄金时代可能已经过去。2017,券商研报构建了交易型阿尔法选股体系,旨在挖掘短期盈利机会,对原有传统阿尔法选股体系形成极大补充。

本篇报告将开创性地构建全新的多因子模型体系——人工智能阿尔法选股体系,这又将成为传统阿尔法选股体系和交易型阿尔法选股体系的极大补充,从而更深入地推进多因子模型体系的理论和实证研究。人工智能阿尔法选股体系简称AI阿尔法体系,是利用人工智能领域中的机器学习技术,将挖掘因子收益的潜力发挥极致。

本篇报告中,我们对基本面因子、财务因子、交易型因子共计282个因子在短期、中期、长期的因子收益进行了测试,因子一部分来自WorldQuant、券商研报,一部分来自于BigQuant因子库,因子数据都为个股日频数据。本文采取的是StockRanker AI策略,以2011.01.01-2015.12.31的数据作为训练集,以2016.01.01的数据作为测试集,并验证模型在测试集上回测的绩效结果。其中策略收益率最高的为持仓40天的总市值排序因子,2016.01.01到2017.01.01期间年化收益为108%,即使小市值因子在今年发生回撤,AI阿尔法体系下的StockRanker策略远远超过了传统阿尔法体系下的小市值策略。

AI阿尔法体系是对传统阿尔法体系和交易型阿尔法体系的补充,也是以机器学习为代表的人工智能技术在量化交易领域比较成熟的应用,是一种有全新思路、独立设计的交易体系。希望AI阿尔法体系的构建,能够展现人工智能技术在金融量化领域发挥真正威力。


2、阿尔法体系

在介绍AI阿尔法体系之前,我们有必要对阿尔法体系的发展及基本理论进行梳理。

2.1 多因子模型的发展及基本理论

  • 资本资产定价模型(CAPM)

资本资产定价模型(Capital Asset Pricing Model, CAPM)是现代金融市场价格理论的支柱,由美国学者威廉· 夏普(William Sharpe) 等人于1964年在资产组合理论的基础上发展起来。它开启了资产风险分类的研究进程。

$$E(r_i) = r_f + \beta_i * (E(r_m) - r_f)$$
其中,$r_i: \ \ 资产i的回报,$ $r_f:\ \ 无风险收益,$ $r_m: \ \ 市场收益率$

  • 套利定价理论(APT)

套利定价理论是一种均衡模型,用来研究证券价格是如何决定的。它假设证券的收益是由一系列产业方面和市场方面的因素确定的。当两种证券的收益受到某种或某些因素的影响时,两种证券收益之间就存在相关性。

套利定价理论模型为:

$$r_i=a_i+\sum_{j=1}^kb_{ij}F_j+\epsilon_i,i=1,2,…,N$$

  • 多因子模型(MFM)

现代金融理论认为,股票的预期收益是对股票持有者所承担风险的补偿,多因子模型正是对于风险——收益关系的定量表达。多因子模型定量刻画了股票预期收益率与股票在每个因子上的因子载荷(风险敞口),以及每个因子每单位因子载荷(风险敞口)的因子收益率之间的线性关系。 多因子模型(Multiple-Factor Model, MFM)正是基于 APT 模型的思想发展出来的完整的风险模型。

多因子模型的一般表达式:

$$r_i = \sum_{k=1}^KX_{ik}*f_k + \mu_i$$
其中,
$X_{ik}:\ \ 股票i在因子k上的因子暴露$ ,$f_k: \ \ 因子k的因子收益$,$\mu_i: \ \ 股票i的残差收益率 $

2.2 传统阿尔法体系

量化投资以策略绩效为目标导向,因此策略最后实现的收益风险特征是衡量阿尔法体系好坏的最终标准。但是,阿尔法体系的本质即是收益预测,因此在观察策略实际收益率之前,我们可以通过一些定量的方法,计算阿尔法体系的收益预测是否精确、是否显著,这样的判断将更有利于我们了解阿尔法体系的特性,提高投资成功的概率。

在选股型体系中,收益率分解是基本的假设前提。我们认为任意股票在同一时刻暴露于多种不同的风险因素下,它们之间的共同作用形成了股票价格的波动。因此,我们致力于寻找对绝大部分股票价格波动都有影响的共同因素,即风格因子,这部分收益则被称为风格收益。 而风格因子不可解释的部分,则被认为是个股自身特有的属性,即特质因子,这部分收益则被称为阿尔法收益。

即,股票收益率 = 风格收益 + 阿尔法收益。

阿尔法收益包含了模型之外的风格因子的收益,一旦将该因子加入模型,其目的为捕获该因子的阿尔法收益,因子传统阿尔法体系的很大一部分工作是挖掘新的有效阿尔法因子,使其阿尔法收益得到释放,因此该体系称为传统阿尔法体系 。

传统阿尔法体系最基本的假设是:具有类似“属性”的股票,即因子类似,在市场上应该有相似的收益率。这些类似的属性可以是相同的行业、相似的交易属性(比如交易价格、交易量、市值大小、波动率等)、相似的财务属性(来自于三张财务报表的各种比例或者增长率等)、相似的估值属性(PB、PE、PS、PCF 等)。

假设一个投资组合由N个股票组成,它们在组合中的权重分别为$h_{P1},h_{P2},…,h_{PN}$,则组合的收益率为:

$$r_P = \sum_{k=1}^KX_{Pk} * f_k+\sum_{i=1}^N h_{Pi}* \mu_i$$

其中,$X_{Pk}=\sum_{i=1}^Nh_{Pi}* X_{ik}$

2.3 交易型阿尔法体系

传统阿尔法体系的收益来源,往往集中于财务数据的挖掘、分析师一致预期数据的挖掘,而只有一小部分是中低频价量特征的数据。而在 A 股,市场交易行为具有很强的随机性,机构投资者的交易效率较之成熟市场亦不十分有效,加之 T+0、融券卖空等交易机制的缺乏,导致在短周期由于交易行为所产生的定价非有效十分常见。只要是投资者交易产生的价格序列,就一定不是随机序列,而这一特征在 A 股更为明显。

交易型阿尔法体系关注的特征主要是价格和成交量。对价量特征进行因子化处理的最大优势在于,避免了利用单一模式在时间序列上进行买点和卖点的选择,因为这牵涉到开平仓参数的敏感性问题等,会带来很大的不确定性和参数过拟合的问题。交易型阿尔法体系精髓在于,以当前市场的运行特征,寻找价格运行的规律。如果说传统阿尔法体系更加重视因子背后的价值投资逻辑,那么交易型阿尔法体系则更加重视交易行为背后的规律显著性,从某种意义上而言,这恰恰是最为直白朴素的投资逻辑。

2.4 阿尔法体系的评价标准

在介绍AI阿尔法新体系之前,我们有必要对阿尔法体系的评价标准再做些许的梳理,而这样的标准既适用于传统阿尔法体系和交易型阿尔法体系。因为AI阿尔法体系不同之处在于更能充分挖掘因子收益,因此基于IC值的评价标准同样也适用于AI阿尔法体系。

阿尔法体系的目标应是针对阿尔法收益的预测,而不是针对股票整体收益率的预测。而评价阿尔法体系的标准也应是计算其对阿尔法收益的预测是否可靠,而业界衡量这一可靠性最常用的指标就是因子IC值。

因子的 IC 值一般是指个股第t期在因子上的暴露度与t+1期的收益率的相关系数。因子 IC 值反映的是个股下期收益率和本期因子暴露度的线性相关程度,表现出使用该因子进行收益率预测的稳健性;而回归法中计算出的因子收益率本质上是一个斜率,反映的是从该因子可能获得的收益的大小,这并不能代表任何关于稳健性的信息。当得到各因子 IC 值序列后,我们可以进行计算:

  1. IC 值序列的均值及绝对值均值:判断因子有效性;

  2. IC 值序列的标准差:判断因子稳定性;

  3. IC 值序列大于零(或小于零)的占比:判断因子效果的一致性。

如上分析可视为对一个阿尔法体系的定量评价,那么对于若干不同的阿尔法体系就可以有严格的好坏区分。并且,从经验上而言, 预测能力较强的阿尔法体系,其所对应的实际组合获取超额收益的概率也越高。

传统阿尔法体系和交易型阿尔法体系都是对因子阿尔法收益进行线性模型的挖掘。其一,其预测能力在剔除市值因子的效用之后究竟有多强的显著性,值得深思。其二,因子阿尔法收益的挖掘,目前行业内同质化策略严重,未来是否还能取得稳定超额收益率还待观察。其三,随着以机器学习、深度学习为代表的人工智能技术的快速发展,对阿尔法收益的挖掘的潜力进一步提高,传统的阿尔法体系和交易型阿尔法体系为因子收益率和因子暴露的线性模型,可挖掘的因子阿尔法收益有限,而AI阿尔法体系更多是非线性模型,对因子阿尔法收益的挖掘能力更强。

2.5 阿尔法体系预测的一致性问题

至今为止,没有任何一个投资模型可以解释市场运行的一切变化规律。在整个阿尔法体系中,策略的构建分为选股和组合两个步骤。选股即为预测阿尔法收益,组合则为实现阿尔法收益,两者互相独立却又一脉相承。

所谓阿尔法模型预测的一致性问题,指的是阿尔法因子的预测目标与组合实现的收益目标相一致。也就是说,阿尔法模型的预测过程与组合构造的实现过程需要有共同的目标。阿尔法体系的定量评估和一致性问题是我们因子模型的理念基础,在此基础上,我们下面将介绍具体的AI阿尔法新体系。

无论是传统阿尔法体系,还是交易型阿尔法体系,都尽可能做到在因子检验、收益预测的过程中,剔除所有风格因素的影响,而在组合构建过程中,保持所有大类风格的中性化处理,最大程度的体现阿尔法模型的预测作用。但AI阿尔法体系有所不同,因为并非传统的线性模型,深度学习、机器学习相关的收益预测模型又大多是非线性模型,因此其模型的直观解释力不如线性模型,但是这并不影响阿尔法体系的预测一致性问题,从本文4.4.5也可以看出,风格因子暴露分析也能够佐证AI阿尔法体系的预测一致性。AI阿尔法体系本质上也是因子模型,与传统阿尔法体系和交易型阿尔法体系同属阿尔法体系框架,都是基于因子预测获取超额收益率的阿尔法体系。


3、AI阿尔法体系

3.1 AI阿尔法构建思路

传统阿尔法体系的收益来源,往往集中于财务数据、基本面数据的挖掘,而只有一小部分是中低频价量特征的数据。交易型阿尔法体系由于因子主要为价量相关的行情因子,因子体现出短周期的交易行为,所以从超额收益来源、因子有效周期、策略交易频率、组合换手率、受市场风格影响等方面有很大不同。AI阿尔法体系不仅仅局限在财务数据、基本面数据和交易行情数据,只要是可能影响股票收益率的任何数据,都是AI阿尔法体系的研究范畴。

3.2 一些显著的因子举例

哪些因子具有阿尔法收益?有经验的专业投资者很容易回答这个问题,这是机器学习中特征选择问题。特征选择非常关键,只有把握关键特征才能对数据达到重要性认识,选择好的因子,才能获取超额收益率。

Fama和French 1992年对美国股票市场决定不同股票回报率差异因素的研究发现,股票市场的beta值不能解释不同股票回报率的差异,而上市公司的市值、账面市值比、市盈率可以解释股票回报率的差异。 因此市值、账面市值比、市盈率就是风格因子。随着理论和实践地进一步发展,已经挖掘出来的风格因子有:估值因子、成长因子、财务质量因子、盈利能力因子、杠杆因子、规模因子、动量因子、换手率因子等。

WorldQuant在2015年发布文章《101 Formulaic Alphas》,通过具体因子公式公开了101个价量因子,这可以看作交易型阿尔法体系的重要里程碑。2017年6月发布的券商研报文章《基于短周期价量特征的多因子选股体系》,文章构建了191个短周期价量因子,更是将交易型阿尔法体系的研究向前推了重大一步。比如,价量背离、开盘缺口、异常成交量等。

阿尔法体系本质上就是挖掘因子阿尔法收益的过程,其目标是不断构造出新的因子。AI阿尔法体系借助于机器学习、深度学习的最新技术能够将挖掘因子的任务完成得更加高效。

3.3 AI 阿尔法体系构建

本篇报告构建的阿尔法体系中,总共构建了282个因子,其中数据维度均为日频率交易数据。本节中,我们对因子的构建给出了详细的定义方式,因子明细详见附录。

$$ 表1 \ 因子明细预览(部分)$$

  注:包含282个因子的完整因子明细表请查看附录,在这282个因子中,部分因子来自于WorldQuant,例如‘wq_41’对应的即为《101 Formulaic Alphas 》第41个因子,同理,'gtja_9‘则为券商研报《基于短周期价量特征的多因子选股体系》第9个因子,以此类推。

4、AI策略构建

BigQuant 提供了众多量化投资AI算法 (后续将发布各算法benchmark报告),本文主要使用其中的 StockRanker 算法。StockRanker 是 BigQuant 为选股量化而设计,核心算法主要是排序学习和梯度提升树

StockRanker = 选股 + 排序学习 + 梯度提升树

StockRanker有如下特点:

  1. 选股:股票市场和图像识别、机器翻译等机器学习场景有很大不同。StockRanker充分考虑股票市场的特殊性,可以同时对全市场3000只股票的数据进行学习,并预测出股票排序
  2. 排序学习 (Learning to Rank):排序学习是一种广泛使用的监督学习方法 (Supervised Learning),比如推荐系统的候选产品、用户排序,搜索引擎的文档排序,机器翻译中的候选结果排序等等。StockRanker 开创性的将排序学习和选股结合,并取得显著的效果 (具体见即将发布的benchmark报告)。
  3. 梯度提升树 (GBDT):有多种算法可以用来完成排序学习任务,比如SVM、逻辑回归、概率模型等等。StockRanker使用了GBDT,GBDT是一种集成学习算法,在行业里使用广泛。

StockRanker的领先效果还得益于优秀的工程实现,我们在学习速度、学习能力和泛化性等方面,都做了大量的优化,并且提供了参数配置,让用户可以进一步根据需要调优。

4.1 AI策略开发流程

如下是一个AI策略主要流程的示意图:

$$图1 \ \ AI策略开发流程图$$
相对于传统策略开发的复杂流程和调参等大量重复工作,AI策略开发更简单,将我们的脑力从重复工作上解放出来,专注在更有创造性的地方。

BigQuant 对AI策略开发做了抽象,设计了如下开发流程 (以 StockRanker 算法为例,也可以使用其他算法):

  1. 目标:首先定义机器学习目标并标注数据。很多机器学习场景,需要人来做数据标注,例如标注图片里的是猫或者狗。对于股票,我们关注的风险和收益是可以明确定义并自动计算出来的。所以,我们一般使用未来N天的收益或者收益风险比作为标注分数。本文使用未来给定天数的收益作为标注
  2. 数据:我们需要训练数据集来训练模型,已经评估数据集来评估效果。在模型参数研究中,我们一般还需要一个测试集用来观察调参效果
  3. 特征(因子):特征是量化研究的核心之一,在AI策略上,特征直接影响了模型的学习效果。这也是本文的目的之一,通过AI找出在A股有效的因子,并最大化的挖掘出他们的效果
  4. 算法模型:本文使用StockRanker算法,使用 M.stock_ranker_train.v3 来训练模型,使用 M.stock_ranker_predict 来做出预测
  5. 回测:使用回测引擎来根据预测做股票交易,并得到策略收益报告和风险分析,并以此来评估策略的最终效果

4.2 AI alphas研究设计

本文的目的是用AI找出在A股有效的因子,实验设计如下:

  • AI策略框架:StockRanker AI(见 4.1) 单因子策略。根据本文的目的,这里只做了单个因子情况。策略和模型参数,使用 BigQuant 人工智能量化策略模板默认参数。
  • 因子来源:本文研究了技术面、财务、基本面等282个因子,来自常见因子、World Quant研究、券商研报等等
  • 交易周期:本文研究了因子在短期、中期、长期等不同交易周期下的表现
  • 目标标注:未来N天的区间收益,N和交易周期相关
  • 训练数据:2011-01-01到2016-01-01期间的所有A股
  • 测试数据:2016-01-01到2017-07-18期间的所有A股
  • 评估指标:使用策略绝对收益来作为评估指标

4.3 策略交易参数设置

本节,我们将对AI阿尔法体系进行实证回测分析,其中StockRanker AI策略相关参数设置如下:

  • 股票池:所有A股
  • 交易成本:买入万分之3、卖出千分之1.3,不足5元按5元收取
  • 买入规则:每天买入全市场所有股票中排序靠前的5只股票
  • 卖出规则:每天卖出持仓股票中排序靠后的股票
  • 资金管理:每个交易日进行交易,每个交易日等资金配置
  • 股票权重:股票权重与股票排序结果成正比
  • 回测中的模拟成交剔除停牌、涨跌停等异常情况

4.4 分析结果

我们一共对282个财务因子、基本面因子、交易型因子做了因子有效性测试,验证其在2016年1月1日至2017年7月18日的策略表现。我们会从关键几个指标对这282个因子做总体描述性介绍,然后通过按时间段划分和按因子周期划分,分析夏普比率靠前的20个因子。接下来,我们选取若干有效因子进行因子收益挖掘能力对比,检查AI阿尔法体系较之于传统阿尔法体系而言,是否在因子收益挖掘方面具有明显优势。然后,我们对持仓组合进行因子风格暴露分析,验证其因子收益预测一致性。最后,我们按因子周期分类,分别对各个周期上表现最好的因子进行交易成本敏感性统计。

4.4.1 总体概览

夏普比率、年化收益率、最大回撤、策略波动率是衡量一个策略的最主要的几个关键指标。我们从这四个维度来对本文全部282个因子进行分析,从整体上把握所有因子的表现。

$$ 表2 \ \ 所有因子在短期、中期、长期的因子测试汇总表$$

$$图2 \ \ 夏普比率分布图$$

$$图3 \ \ 年化收益率分布图$$

$$图4 \ \ 最大回撤分布图$$

$$图5 \ \ 收益波动率分布图$$

4.4.2 按时间段划分

策略收益率在不同的时间段会受市场环境有明显的影响,不同的年份策略表现也会有显著差异,表7到表10是以夏普比率排序,罗列出的不同时间段表现优异的因子。

4.4.3 按因子周期划分

因子可以分为短期因子、中期因子和长期因子,因子周期的差异也会影响策略收益率,表10到表12为不同长度周期中表现优异的因子。

4.4.4 因子收益发掘能力对比

和传统阿尔法体系及交易型阿尔法体系一样,AI阿尔法体系也是对于因子收益的挖掘,其根本目的是通过因子筛选出优异股票,从而获得超额收益。本文以2016年表现优异的市值因子和2017年表现的市净率因子为例,简单地对比了传统阿尔法体系和AI阿尔法体系对于因子收益挖掘能力,发现AI阿尔法体系对于因子收益的挖掘能力更强。

为保证策略的可比性,我们需要拟定比较基准,除了运用的策略算法不一样,其他条件应保持完全一致。因此,为比较AI阿尔法体系和传统阿尔法体系在因子挖掘能力的差异,我们的策略算法都采取相同的平均持有天数,以及相同的持仓股票数量。

  • 2016.01-2017.07 市值因子对比

  • 2016.01-2017.07 市净率因子对比

具体策略指标,请看表13。
$$表13: \ \ 对比结果汇总$$

image
可以看出,就小市值而言,StockRanker AI策略和传统阿尔法策略一样,2016年表现优异,但是2017年风格突变,两策略纷纷失效,符合市场基本状况。从年化收益、夏普比率、最大回撤、收益波动率这几项指标都可以看出,StockRanker AI策略在两个阶段都比传统阿尔法策略好。就市净率因子而言,该因子在2016年和2017年表现都不错,从几项策略指标而言,其效果也比传统阿尔法策略好。

在2016年小市值因子表现优异,2017年市净率因子表现优异。接下来,将各个时间段上表现优异的因子单独拎出来进行对比。

  • 2016年市值因子对比

蓝线是StockRanker AI策略的收益率曲线,黑线是传统小市值策略的收益率曲线,可以看出在2016年,AI阿尔法体系下的Atockranker AI策略较传统小市值策略而言,因子收益挖掘能力大概是两倍以上,两者走势相关性很高。

  • 2017年市净率因子对比

同上,蓝线是StockRanker AI策略的收益率曲线,黑线是传统市净率选股策略的收益率曲线,在2017年上半年,AI阿尔法体系下的Atockranker AI策略较传统市净率选股策略而言,因子收益挖掘能力大概是两倍以上,并且策略稳定性更强,回撤也较小,收益曲线更加平滑。

4.4.5 风格因子暴露分析

风格因子暴露分析属于风险分析的一部分,与收益分析、组合优化共同组成了Barra风险结构模型的主体框架。风险分析也可以用来作为检验因子策略一致性的重要依据。比如在挖掘因子有效性的时候,发现该因子越小,收益越高,那么基于该因子开发的策略。不管是传统阿尔法体系策略、交易型阿尔法体系策略还是AI阿尔法体系,持仓组合在该因子上的充分暴露将是因子潜力得到充分挖掘的重要佐证。

  • 短期因子

因子定义:20日成交量标准差
因子来源:券商研报第100个因子

$$图6 \ \ 短期因子区间风险暴露$$
可以看出,该策略选出的股票在股东因子上数值较大,在规模因子上数值较小。这与20日成交量标准差这一因子有直接关系。

  • 中期因子

因子定义:总市值升序排名
因子来源:基本面因子

$$图7 \ \ 中期因子区间风险暴露$$

因为因子本身就是总市值相关的因子,因此持仓组合在规模因子上风险暴露值很小也很好理解,策略倾向于选择小市值股票。这与传统小市值策略是完全一致的,只是AI阿尔法体系对其收益的挖掘更加充分。

  • 长期因子

因子定义:市净率升序排名
因子来源:财务因子

$$图8 \ \ 长期因子区间风险暴露$$

市净率为每股股价与每股净资产的比率,属于价值因子,因此市净率因子对于股票的选择应该聚集在价值型公司股票中。从风险暴露来看,持仓组合在规模因子上数值很大,即倾向于规模很大的股票,一般而言,价值型公司确实是这类股票。同时,该持仓组合在市场因子和流动性因子上风险暴露数值很小,这是因为价值型大市值公司的市场因子(贝塔值)很小。由于在 BigQuant 平台上,流动性因子类别有两个子因子:换手率和当日成交额占总市值的百分比,这样就很好理解为什么市净率因子策略选出的股票在流动性因子上暴露很小。

4.4.6 交易成本敏感性分析

本节,我们将考虑交易成本的敏感性问题,以检验策略可承受的交易成本(包括冲击成本)的理论极限空间 。我们按长期因子、中期因子和短期因子进行分类分析,并以各个周期内夏普比率最高的因子作为代表因子,分析其对交易成本的敏感性,其中,短期因子以‘grja_100’为例,中期以‘rank_market_cap_0为例’,长期以‘rank_pb_lf_0’为例。

  • 长期因子

$$图9 \ \ 长期因子策略累计超额收益$$

注:数字1-8表示交易成本逐渐增加,具体见表格14,买入费用和卖出费用都是成交金额的百分比,以下同理。

不同交易成本设定下长期因子策略绩效统计:

$$表14 \ \ 长期因子策略绩效统计$$

  • 中期因子

$$图10 \ \ 中期因子策略累计超额收益$$
不同交易成本设定下中期因子策略绩效统计:
$$表15 \ \ 中期因子策略绩效统计$$

  • 短期因子

$$图11 \ \ 短期因子策略累计超额收益$$
不同交易成本设定下短期因子策略绩效统计:
$$表16 \ \ 短期因子策略绩效统计$$

从结论来看,随着设定的交易成本不断增加,策略的夏普比率、年化收益率在逐渐下降。由于因子周期越短,调仓频率越高,策略对交易成本越敏感。对于持仓较短,调仓较为频繁的短期因子,其受交易成本影响非常明显,交易成本的改变会使得一个完全盈利的策略变成亏损的策略,尤其是在市场下跌的时间段。


5、总结与展望

本篇报告创造性地将机器学习这项人工智能技术应用在金融量化交易领域,构建出了能够挖掘因子非线性阿尔法收益的AI阿尔法体系。其中,较之于传统阿尔法体系选股策略和交易型阿尔法体系选股策略,我们的超额收益不仅来源于更为复杂的StockRanker AI算法,同时来自于基本面因子、财务因子、交易型因子的更丰富地组合构造。

本篇报告对282个因子进行了验证测试,发现了一部分能够到来超额收益率的因子,比如在2016年的总市值排序因子和2017年的市净率排序因子,他们对于收益率的挖掘比传统阿尔法体系的选股策略更加充分。此外,还捕获了一些收益不错的短周期因子,比如券商研报的第100因子(20日成交量标准差),该因子带来了65%的年化收益。通过不同类型因子、不同周期因子的组合,相信能够获得一个资金曲线更为平滑、同质性极低的策略组合。此外,本文还发现,除了短周期因子对交易成本比较敏感之外,中长期因子对交易成本并不敏感。

虽然本文得出不少成果,但依然存在改进空间。例如,本文未对因子进行相关性检验以及并没有测试AI阿尔法体系对多因子收益的挖掘效果,本文未进行风险中性行业中性地调整,这将成为我们下一期报告分析的重点。不仅如此,在下一期报告,我们还将测试AI阿尔法体系尤其是短期因子的策略容量以及构建多因子阿尔法体系。

6、参考文献

  1. 101 Formulaic Alphas
  2. Risk Model Handbook
  3. 主动投资组合管理
  4. 多因子体系初探
  5. 基于短周期价量特征的多因子选股体系
  6. 深度学习算法掘金ALPHA因子
  7. 人工智能选股框架及其经典算法简介

7、附录

  1. 本文使用的因子收益测试AI策略代码
  2. 本文测试的282个因子完整列表

本文由BigQuant宽客学院推出,版权归BigQuant所有,转载请注明出处。


  • 加入 人工智能量化投资交流群
     
    请扫描如下二维码 (或者微信搜索 bigq100),添加微信群管理员微信,附上 姓名、所在机构、部门和职位,审核后管理员会邀请您入群。
     
    image

  • 关注 BigQuant微信公众号
     
    扫描如下二维码(或者微信搜索 BigQuant),关注 BigQuant微信公众号,获取更多人工智能、机器学习、量化投资相关文章。
     
    image



[AI Alphas(A股版)] 因子测试AI策略代码示例
282个因子快速定义的秘密:表达式引擎
[AI Alphas(A股版)] 因子测试AI策略代码示例
AI随缘选股 - 策略英雄榜 - BigQuant
[AI Alphas(A股版)] 因子测试AI策略代码示例
“过去20日振幅”因子的表达式无法通过系统识别?
BigQuant策略技巧分享之参数调节
(smthkoer) #2

很有意义的研究


(matrixreloaded) #3

很好的东西,期待后续!

  1. 看实验做的交易成本是万三加千一卖出,后面短期成本分析用的是千十五开始的,是不是说短期交易成本如果不是特别大的话对交易本身没有太大影响?
  2. 282个因子能不能把这篇文章引用的都放到因字库里面去,起个别名,这样就不用再重新输入这些表达式了,方便很多。
  3. 风险分析是不是已经有源码或者对应函数了?这个要是放到 标准函数确实方便很多了。
  4. 不太理解的是风险模型如何定义这些风险因子的?我的意思是它如何反映到风险归因上面的?比如这个国泰君安100因子我能从概念上理解它和股东风险有关系,但是是如何反映到这个度量标准上的呢??有具体定义函数嘛?

  5. (非常重要)对于回溯性的分析很重要,但是有没有一套方法可以指导我们知道因子已经失效了。这个问题非常关系,因为回溯性的分析在实战中意义不大,原因是如果我们不能有效的切换有效的因子,我们就无法得到正收益。比如这个总市值因子,2016年有效,那么2017年一开始如果知道这厮就卧倒不灵了?难道每年的前3个月卧倒不交易吗?等着数据出来再看情况?这肯定不行的,因为如果是第4个月风格又变了呢?不可能风格总是在每年第一个月就定下来吧?我很想知道这里面的一些方法论,指导因子的挖掘。否则就是问题转成了另一个不可知问题,用一个未知问题回答了另一个未知问题,用不可知的因子切换情况问题回答了股票收益不可预测的问题。如果是这样的,等于未来做股票投资的最后祈祷的问题是:
    1. 祈祷以前股票起作用的因子未来还接着起作用,而且不是像2016到2017年的画风突变。
    2. 祈祷转变过程都在一年开始。
    3. 祈祷因子转换的过程足够缓慢和线性。

我觉得这第六个问题是所有问题的核心,有没有一些可以作为实战的方法论是迫切想知道的东西,至少有一些指导性的分析可以作为参考,这将是非常有意义的,非常希望大家共同讨论,如果能有人发个牛贴解释清楚,就不胜感激了!跪谢~~

感谢宽客学院这个牛贴~~鼓掌~


(iQuant) #4

谢谢您的认可。

  1. 是的,对交易成本不太敏感。因为股票本来已经是T+1,交易频率低

  2. 这个建议很好,我们来支持

  3. 风险分析:BigQuant已经上线了一部分因子风险暴露分析,具体见如下示例代码的 risk_analyze()

    # 调用交易引擎
    m6 = M.trade.v1(
        instruments=None,
        start_date=conf.split_date,
        end_date=conf.end_date,
        prepare=prepare,
        initialize=initialize,
        handle_data=handle_data,
        order_price_field_buy='open',       # 表示 开盘 时买入
        order_price_field_sell='close',     # 表示 收盘 前卖出
        capital_base=100000,               # 初始资金10万
        benchmark='000300.SHA',             # 比较基准,不影响回测结果
        # 通过 options 参数传递预测数据和参数给回测引擎
        options={'hold_days': conf.hold_days, 'model_id': m5.model_id}
    )
    
    # 调用风险分析
    m6.risk_analyze()
  4. 本篇研报是尝试用AI模型分析因子和收益/风险非线性的关系

  5. 单个因子的有效性不可能一直好,总是有波动和回撤,否则就是无风险收益,会被套利交易者吃掉。想要拿到单个因子的收益,就必须承担相应的风险。
     
    实战的解决一个方案是分散化,比如多因子。不同因子之间的波动和回撤不是同时发生,相关性比较低,这样多个因子之间的波动会相互抵消,使得多因子组合的风险和回撤显著降低,风险收益比提高。关键点是组合里的有效因子/策略足够多,足够分散化,保证不会同时回撤。


(matrixreloaded) #5

想知道类似这个图是如何对应到这些因子上的。这个有没有具体的函数呢?或者是代码之类的。我的意思是比如风险模型中的股东因子具体是怎样定义的?如果有源码是最好的了。。如果没有讲清楚也可以,因为这样我才知道那么多因子里面为什么要20日的成交量标准差有可能会导致股东因子暴露的原因是合理的。


(iQuant) #6

这部分内容属于风格因子分析的内容。举个例子,假设一个组合全部是小市值股票,那么该组合在市值风格因子上的具体数值就非常小,因此风险暴露图中,柱状图的数值就非常小,可能为负数。

BigQuant的风险分析一共涉及十几类大类风格因子,为保证因子的客观性和准确性,每个大类因子又是通过各个小因子等权组合构建而成。具体小因子的定义、公式、代码暂时还没有发布,因为收益分析、组合优化等模块还未完善。如果对此感兴趣可以参考下列文献:


(matrixreloaded) #7

大概明白了。多谢资料!


(matrixreloaded) #8

还想请教一下有没有多因子相关性的一些研究可以参考,比如判别几个因子之间的相关性变化的情况?那如果一些因子的变化有一定线性下降,那就可以暂时终止?


(fornewday) #9

非常具有开创性的一篇文章。感谢作者。


(hanzi) #11

写的很好,能按表1给一份282个“因子明细预览”说明表吗,附件里没有说明字段,看起来很痛苦,在因子库里也找不到这282个因子,万分感谢!


(iQuant) #12

您好。附件2有因子完整列表。

按构建方式,里面有四类因子:

  • 因子库因子,例如:“rank_pe_lyr_0” 参考文档为:因子库

  • 来自于国外研报的因子,例如"wq_101" 参考链接为:101 Formulaic Alphas

  • 来自于国内券商研报的因子,例如“jtja_9” 参考链接为:基于短周期价量特征的多因子选股体系

  • 因子组合,例如“(high_1-close_1)/close_0” ,这些因子是来自于因子库的因子进行组合构建好的新的因子。

第二、第三点事来自于研报的因子,两个研报内容里都有因子的具体解释以及怎样计算因子,wq_101和gtja_9后缀的数字“101” 和 “9”都有特别的含义,与研报里因子顺序一一对应,比如wq_101对应的是WorldQuant里面第101个因子。

希望对你有所帮助!


(eason3146) #13

您好,很优秀的报告,关于市净率单因子比较,能够解释具体是用哪个因子作为输入数据呢?


(iQuant) #14

就是市净率排序因子,具体为“rank_pb_lf_0”,可在因子库中查询到。


(eason3146) #15

传统和AI的区别是在于个股排序的变化还是个股权重的变化?


(iQuant) #16

区别在于模型算法。
AI策略是用的机器学习算法,传统的策略是线性模型。


(soft05jun) #17

值得收藏的贴,干活满满。


(chaoskey) #18

不错,学习了。


(ghw) #19

抱歉没懂啊,
同个因子比如市净率难道AI选出的前5名和传统选出的前5名会不一样?
可以通俗的讲解一下吗?


(小Q) #20

算法不一样,选出来的股票是不一样的


(ghw) #21

能通俗的说一说吗?
我是小白哦
刚才看了下券商研报,提到:
"训练阶段,根据历史的因子值X和收益r,训练监督学习模型r=g(X, f),得到模型自由参数的估计量f"
是不是关键在这个"自由参数的估计量f"上?因为这个F,所以,不再仅仅根据因子值rank?

那这个f和传统的线性回归残差值之间,有什么联系呢?

我是小白啊,来这里的好多小白啊,请通俗的讲解一下吧