2024年Factor Zoo专题报告

  • 来源:中信建投证券
  • 发布时间:2024/03/12
  • 浏览次数:573
  • 举报
相关深度报告REPORTS

Factor Zoo专题报告:“逐鹿”Alpha专题报告(十九).pdf

FactorZoo专题报告:“逐鹿”Alpha专题报告(十九)本文是FactorZoo系列报告的开篇之作。FactorZoo旨在深入剖析各类投资因子的表现特征,继承并扩展了我们先前ModelZoo系列的研究范畴。在这两大系列的研讨中,我们致力于对广泛的模型与因子进行细致的考察与大规模的检验,力求提炼出宝贵的经验规律,从而为未来因子与模型的创新发展奠定坚实的基础。框架为了与ModelZoo框架保持一致,确保后续模型运行的连贯性,FactorZoo底层框架同样基于QLIB实现,并进行了一系列的拓展,结合我们之前系列因子挖掘的算法,能够在单机上实现灵活高效的大批量因子挖掘以及...

一、简介

本文是 Factor Zoo 系列报告的开篇之作。Factor Zoo 旨在深入剖析各类投资因子的表现特征,继承并扩展了 我们先前 Model Zoo 系列的研究范畴。在这两大系列的研讨中,我们致力于对广泛的模型与因子进行细致的考 察与大规模的检验,力求提炼出宝贵的经验规律,从而为未来因子与模型的创新发展奠定坚实的基础。 在先前的报告系列中,我们已经探究了众多因子挖掘的技术与方法。这些包括但不限于基于枚举法的 OPENFE,以启发式算法为核心的 AlphaZero,以及将启发式与枚举法相结合、并融合领域知识的因子挖掘算法, 皆适用于多种类型因子挖掘的具体场景。 在 Factor Zoo 报告系列的首篇文章中,我们特别集中探讨日内量价因子的相关信息。通过构建并分析众多 日内量价因子,我们旨在揭示不同类型因子的表现差异,并归纳出日内量价因子的核心规律与显著特征。

二、框架

为了与 Model Zoo 框架保持一致,确保后续模型运行的连贯性,Factor Zoo 底层框架同样基于 QLIB 实现, 并进行了一系列的拓展,结合我们之前系列因子挖掘的算法,能够在单机上实现灵活高效的大批量因子挖掘以 及检验。

在 Factor Zoo 的数据层,我们主要关注财务数据和量价数据。量价数据进一步细分为日频量价、分钟量价 和高频 level2 数据。本文我们的研究重点放在基于分钟量价数据构建的因子上。 进入模型算法层,为了进一步提升因子计算的效率,在 Qlib 已有的高效计算基础上,我们实施了一系列拓 展: 1) Python/C++混合编程:虽然 Python 语言极富灵活性,但在计算效率方面相对较弱,尤其是在处理高频 因子时,其时间效率并不理想。针对一些计算效率不高的算子,我们采用 C++进行加速,大幅提升了 运算效率。在之前的高频 level2 因子测试中,通过 Python/C++混合编程方式,我们将单只股票因子的 单核计算效率从约 100 秒提升至约 1 秒。目前全市场股票 8 年分钟频因子的数据读取加计算平均在 25 秒左右。 2) 在线因子计算:为了在保障高效计算的同时,确保任一时间节点都可进行回测,我们采纳了在线因子 计算的策略。例如,假设我们要计算每 K 分钟线收盘价的平均值,传统计算方法为 Ek = sum(c1, c2, …, ck)/k,其计算效率为 O(n)。若所有时刻的因子值,则总计算效率为 O(nL)。在线计算采用递推式计算 Ek = Ek-1+ (ck-c0)/k,单次计算效率为 O(1),总计算效率为 O(L),与传统方法相比,效率提升了 n 倍, 且每个时刻的因子值均可用于回测。 3) CPU 与 GPU 的结合使用:对于通信开销较小、以矩阵计算为主的任务,GPU 相较于 CPU 能极大提升 运 算效率。我们根据因子计算的特点,巧妙选择使用 CPU 或 GPU。在日频因子的计算上,我们优选 GPU;而在分钟频因子的计算上,则倾向于使用 CPU。 4) 本地缓存(Local cache):在批量计算因子时,复合因子的子结构往往需要重复利用。若每次都重新计 算,则会造成大量计算资源的浪费。因此,我们在计算过程中对某些子结构进行缓存,避免数据重复 读取及计算,从而有效地提高了因子计算的效率。

在因子挖掘的过程中,我们采纳了多种方法,包括枚举法、OPENFE、遗传规划(GP)、AlphaZero、领域 知识生成以及强化学习等多元化方法。更多关于这些方法的详细信息,可以参考“逐鹿”系列的先前文章。 Factor Zoo 的宗旨在于提供高质量的输入,以辅助后续的因子构建和模型开发工作。因此,在设计因子时, 我们避免因子过于复杂化,从而可能导致因子缺乏可解释性。本文在构建因子的过程中,着重遵循逻辑性原则, 通过批量生成不同类型的因子,致力于揭示因子结构的内在规律与特性。 对于生成的因子需要进一步检验,单因子检验主要采用 ICIR,分组收益以及因子相关性进行筛选。最后再 通过 mlflow 进行前端展示。

三、算子

为了高效率地构建大量因子,本研究采取了算子化的策略。通过将算子与数据相结合,我们可以基于精细 化的逻辑来构建因子,从而提高了因子生成的自动化和灵活性。在这一过程中,算子充当了构建因子的基本构 件,它们将原始数据转换为具有意义的因子。

上述提到的所有算子被设计为滚动(Rolling)型算子,这些算子采取滚动计算的方法,能够连续地对数据 进行处理而不会改变原始数据的时间间隔。这种计算方式使得算子能够在保持时间序列数据结构不变的同时, 提取出关键的趋势和模式。 为了进一步提升因子计算的灵活性和适应性,我们引入了一系列元算子。这些元算子是更高层次的抽象,它们可以对基础算子进行组合和封装,从而创造出更加复杂和定制化的计算逻辑。 通过这些元算子,研究者可以利用算子组合构建出更加复杂、个性化的因子,这些因子可以更精确地描述 市场行为,增强投资策略的有效性和鲁棒性。此外,元算子的使用简化了构建过程,让研究者能够专注于策略 的逻辑和性能,而不是编程细节。

举例说明,假设要计算日内分钟线收盘价的平均值并将其降为日频,通过 DownResample,有以下三种方式 实现: 1) DownResample(Mean($close, 240), 240, ‘last’) 2) DownResample(Mean($close, 240), 240, 239) 3) DownResample($close, 240, ‘mean’) 上述因子中,$close 代表底层原始分钟线收盘价数据,240 代表目标降频频率为日频(240 分钟),‘last’ 与因子 2 中的 239 等价,均代表取 240 个值中的最后一个值。因子 3 直接取 240 个分钟线收盘价的均价。 显而易见,元算子的引入极大地提升了因子组合的灵活性和多样性。这种增强不仅限于简单的因子计算, 而且还扩展到了因子的时间维度和应用范围。通过这些元算子,我们不再受限于静态的分析框架或单一的时间 频率,反而能够灵活构建满足特定分析需求的因子。 例如,我们可以设计元算子来构建任意 N 分钟的频率因子或者取日内任意时刻的因子值,这意味着无论是 短期的交易策略还是长期的投资决策,因子都可以被精确地调整以适应不同的时间框架。使得时间序列分析更 加精细和及时,为捕捉市场机会提供了强有力的工具。

四、因子

因子计算采用 2016 年至 2023 年全市场 A 股分钟量价数据,所有因子均降频为日频,滚动计算周频 IC 均 值,IC 的 t 值,sign(IC)大于 0 占比,sign(IC)大于 0.04 占比,ICIR,分组收益率以及首尾组收益率差。在进行因子计算时,我们必须谨慎处理那些带有量纲的因子。因为这类因子很可能与股价或者成交量存在 强烈的相关性,这样的关联有时会误导我们,使我们陷入幸存者偏差的陷阱,或者引入了未来函数,从而破坏 了模型的预测能力和有效性。 为了规避这些问题,并且提升因子的可解释性,本文所有因子均进行了无量纲处理。这种处理方式确保了 因子值的可比性,无论是在跨时间还是跨资产的分析中,都能够公平地进行比较。 为了方便理解因子含义,我们将因子分为以下几类:振幅、标准差、高阶矩、成交占比、流动性、动量、 量价相关性、极值位置。

4.1 振幅

振幅类因子一的核心在于计算不同交易频率下,以及在各个特定时点上的最高价与最低价之间的比值。经 过比较分析,我们可以明显观察到日内振幅与未来收益之间存在一种显著的负向相关性。在一天的不同时间段 中,上午时段测得的因子有效性显著优于下午时段,而在开盘与收盘时段得出的因子效力亦明显优于午间时段。 值得特别指出的是,随着频率的逐步降低,即时间间隔的增加,因子的信息系数(IC)绝对值呈逐渐增长 之势。当频率降至 240 分钟,即转换为日频时,因子的信息系数(IC)绝对值达到其最大值,数值为-0.0706。 这一结果揭示了在更长的时间尺度上,振幅与未来收益的负相关性更加显著,因此,该因子在日频层面上可能 为市场参与者提供了更强的预测信号。 振幅类因子二包括三类因子,分别是日内价格的中位数/平均绝对偏差与收盘价的比值,或者日内最后一个 价格在全天的排序值。其中表现最好的因子为最高价平均绝对偏差与收盘价的比值。

4.2 标准差

标准差类因子主要是指日内收益率的标准差,通过计算不同频率收益率的标准差/上行标准差/下行标准差得 到。 通过详细的对比分析,我们可以观察到,在三种标准差计算方法中,上行标准差的整体有效性优于传统标 准差,而传统标准差又优于下行标准差。这表明标准差的计算方式对因子的性能有显著影响。 特别值得注意的是,上行和下行标准差的极值点通常出现在三分钟收益率的标准差因子上,这揭示了在短 期内收益率的波动对因子有效性的重要性,而传统标准差因子的极值点大致出现在八分钟的收益率附近。 当我们深入探讨信息系数(IC)变化趋势时,可以发现三类因子都呈现了一个类似的模式:起初经历一个 下降趋势,随后又逐渐上升。在这三种因子中,传统标准差因子在上升阶段的幅度相对较为平缓,这或许表明 它能够提供一种相对稳定的预测性表现。 从这些发现中,我们可以得出结论:不同的波动率计算方法对因子有效性的影响是差异化的,而且每种方 法都有其在特定时间尺度上的优势。因此,在构建预测模型时,选择适当的波动率计算方法对于增强因子的预 测能力和稳定性至关重要。

4.3 高阶矩

高阶矩因子着重于计算各种频率下收益率的偏度与峰度。在对这些因子的信息系数(IC)进行细致对比之 后,我们发现峰度类因子的 IC 显著优越于偏度类因子。而且峰度因子在频率变化过程中显示出一种先降后升的 有效性变化趋势,其 IC 值的极致表现出现在以 4 分钟为周期计算的收益率峰度上。

4.4 成交占比

成交占比因子反映了日内不同时间段内的成交笔数、成交量或成交金额占全日总量的比重。 通过对成交笔数占比的分析观察,我们可以发现,在 30 分钟和 5 分钟的测量频率下,该因子都展现出倒 U 型的结构特征,即在中午时段,成交占比与未来收益之间呈现出显著的正相关性。然而,在 30 分钟频率下测得 的因子中,尾盘时段的成交占比并未显示出明显的预测效力;而在 5 分钟频率下,尾盘成交占比因子与未来收 益率之间却表现出了明显的负相关性。 成交量占比因子在表现上与成交笔数占比因子类似,同样呈现倒 U 型结构,但在 30 分钟和 5 分钟的频率下, 尾盘成交占比的表现出现了明显的差异。与成交笔数占比因子的不同之处在于,成交量占比因子在 5 分钟频率 下的对称性较好,但总体而言,其有效性不如成交笔数占比因子。 至于成交金额占比因子,其表现趋势与成交量占比因子相似,这进一步验证了在不同时间段内市场成交特性 的一致性。 这些发现对于理解市场日内交易活动的动态变化以及预测未来市场走势具有重要的意义。它们能够为交易者 提供在何时加入或退出市场的参考信息,并为量化交易模型的构建提供实证依据,进而在金融市场中把握更精 准的投资时机。

4.5 流动性因子

成交占比因子仅揭示了个股日内的成交分布特征,而未能充分考虑到不同股票之间流动性的差异。为了弥 补这一缺陷,我们在成交占比因子的基础上构建了日内流动性因子,该因子专门分析了各个时间段内的自由流 通换手率。具体的构建方法是将日内成交量占比因子与当日股票的自由流通换手率相结合。 从分析结果来看,流动性因子在性能上显著超越了仅考虑成交占比的因子,其增量信息主要源自于自由流 通换手率因子本身,这一因子的信息系数(IC)均值达到了-0.0854。在日内的多个流动性因子中,尾盘流动性 因子的表现尤其突出,其效果超过了原有的成交占比因子。 此项研究为我们提供了更为深入的洞见,即在考察股票日内交易特性时,引入流动性维度是至关重要的。 流动性因子的引入不仅丰富了我们对市场交易行为的认识,而且为投资决策提供了更为精确的指导,特别是在 涉及到预测市场短期走势和制定日内交易策略时。

4.6 动量

日内动量的构建方式有两种:一是通过不同时间区间内股价变动的回归斜率来计算;二是依据不同时间频 率收益率的最大及最小值来计算。 对于不同时间频率下的斜率因子的信息系数(IC)分布进行分析发现,除了在尾盘阶段外,全天其他时间 段的斜率因子均未显示出显著的预测能力。然而,在尾盘时段,斜率因子与未来收益率呈现出明确的负相关性。 值得注意的是,随着测量频率的降低,该预测效应逐渐减弱。 就收益率极值因子的表现而言,我们观察到收益率的最大值与未来收益率之间存在负相关关系,而收益率 的最小值则与未来收益率呈现正相关性。在比较两种极值因子的信息系数时,收益率最小值因子的整体表现优 于收益率最大值因子。具体的 IC 分布分析显示,收益率最大值因子的信息系数极值出现在 4 分钟收益率上,而 收益率最小值因子的信息系数极值则出现在约 7 分钟的收益率上。

4.7 量价相关性

量价相关性因子专门分析了在不同时间段内,股价与成交量的同步相关性以及它们之间的领先或滞后相关 性。在考察此类因子时,需特别注意尾盘集合竞价期间会出现的成交量为零的情况,这一现象可能对量价因子 的精确度及最终分析结果带来显著影响。鉴于此,我们在计算量价相关性因子时,统一排除了最后 3 分钟的数 据,以提高因子的准确性。 在同步量价相关性因子的分析中,我们发现,以全天 237 根分钟 K 线构建的因子,其表现优于其他任何特 定时间段内量价相关性的表现。此外,量价相关性因子也显示出比单纯股价相关性因子更为出色的效能。在各 量价相关性因子中,最高价与成交量的相关性因子展现了最佳的表现。在不同时间段划分的量价相关性因子中, 开盘与尾盘的相关性因子在预测能力上胜过了其他时间段的相关性因子。 对于领先滞后量价相关性因子的研究表明,滞后一期的因子总体上优于其他时间单位的因子。具体来说, 滞后价格相关性因子的效果超过了滞后成交量相关性因子。在所有考察的因子中,滞后一期的最高价与成交量 相关性因子的表现最为突出,超越了同步最高价与成交量的相关性因子。

4.8 极值位置

极值位置因子包括日内最高点,最低点的位置因子以及日内股价峰值的个数。 通过对比可以看出,在极值位置因子中,股价最大值,最小值的位置并没有显著的预测能力,日内极值点 的个数与未来收益存在明显的正相关性。

五、因子收益率及相关性分析

通过以上的因子分析,我们筛选出以下几个各类中表现最好的因子,因子 IC 绝对值从 0.04 到 0.09 不等, 通过因子间的 spearman 相关性和他们与传统 Barra 风格因子的相关性分析可以看出,不同类型因子间相关性较 低,且与传统的 Barra 风格因子没有明显相关性。

六、总结

本文是 Factor Zoo 系列报告的开篇之作。主要批量构建了振幅、标准差、高阶矩、成交占比、流动性、动 量、量价相关性、极值位置等几大类上千个日内因子,通过优化因子框架,能够高效灵活的挖掘以及检验因子, 最终在各大类因子中筛选出八个表现较好的因子,对其进行进一步分析表明,整体因子间相关性较低,且与传 统的 Barra 风格因子也不存在明显相关性。

编辑:火腿肠
  • 相关标签
  • 相关专题
  • 热门文档
  • 热门文章
  • 本年热门
  • 本季热门
  • 本月热门
  • 本年热门
  • 本季热门
  • 本月热门
分享至