研报&论文

高频漫谈

由crisvalentine创建,最终由crisvalentine 被浏览 185 用户

导读


  • 近一年以来,许多公募中证500指数增强型基金的超额收益表现十分优异,其中部分表现优异的基金呈现出高换手的特征,这与采用高频因子的私募指数增强型基金的表现十分相似。许多基金业绩也证明,采用高换手取得高收益是可接受的,受此启发,我们认为高频因子是探寻基金业绩增长的一条可行路径。
  • 高频因子一般基于level2数据构造,显著的特点是IC半衰期小于低频因子,因此需要更频繁的换手以捕捉高频信息,获得不同于低频因子的高额收益。我们认为高频因子构造的思路在于寻求独立同分布变量中不变的统计特征,基于数据所含信息角度,我们提出了4种高频因子分类方法,希望在未来通过面向统计特征的机器学习方法自动化挖掘因子特征。
  • 基于高频因子IC衰减快的特点,我们提出适用于高频因子的因子有效性分析框架,即使用日频调仓方法,因子时序上通过加权平均与标准差平滑换手率,基于因子值暴露的全市场多空组合方法,考察包括因子组合时序相关性在内的一系列基于PnL与因子值的指标,来判断因子是否有效。
  • 最后,高频因子含有不同于Barra模型的独特风险,基于前文对因子时序相关性的理解,我们提出一种采用自上而下与自下而上混合的因子风险识别方法,期望识别出高频因子独有风险,并通过组合优化方法,对合意的风险进行主动暴露,对不合意的风险进行对冲,获取更高的风险收益比。

风险提示:模型结果基于历史数据的测算,在市场环境转变时模型存在失效的风险。


高频研究在私募和公募呈现两种境况

私募在这方面开展的如火如荼,而公募则呈现门庭若市的窘象。而今年以来,大部分公募中证500指数增强型基金的超额收益表现十分优异,其中部分表现优异的基金呈现出高换手的特征。我们猜测这些基金引入了高频数据,增强了基金风险收益表现,受此启发,我们希望建立适合于高频数据研究的因子框架,并将其与低频因子相结合,解析市场热点,以获取更高的风险调整后收益。

由于私募在这方面布局较多,作为高频的开篇,兴证金工团队就私募在高频的市场规模、高频因子的构造方法、高频因子的有效性和高频风险识别等领域展开介绍。

\

私募高频市场规模简介

引入股票高频数据的产品形式主要有两种:量化对冲和指数增强,实现方式可以通过高频因子、日内T0或者两者结合。由于监管限制,公募基金较少采用高频策略。根据Wind数据显示,截至2021Q3,公募量化对冲产品与指数增强产品规模分别为504.30亿和1558.10亿。公募量化基金规模合计3028.60亿。

{w:100}{w:100}在私募市场规模方面,根据中国证券投资基金业协会公布的数据显示,截至 2020Q4,私募共有量化/对冲策略基金 13465 只(含 FOF),规模合计 6999.87亿元,分别占自主发行类私募证券投资基金总只数和总规模的 26.2%和 18.9%,较 2019 年分别增长 26.2%和 66.5%。

{w:100}{w:100}以成熟的美股市场来看,2021年高频策略占美股市场交易结构约12%,国内高频策略发展仍然处于起步阶段,未来具有广阔前景。

{w:100}{w:100}

高频因子构造方法

高频因子特点

高频因子相比于低频因子其IC半衰期更短,需要更频繁地更新因子值以捕捉高频信息,带来的代价是换手率的增加。选取已实现收益率方差的10天平均作为高频因子,收益率10日方差作为低频因子,以日频调仓计算它们2014年8月30日到2021年8月31日的平均Rank IC。

{w:100}{w:100}rM,i,t表示某支股票表示第t天第i分钟的分钟收益率,rD,t表示某支股票第t天的日收益率。在两个因子原始IC相近的情况下,高频因子已实现收益率方差比低频因子收益率方差快10天到达IC一半的位置。在年化多空收益率方面,已实现收益率方差也比收益率方差衰减得更快。

{w:100}{w:100}许多基金业绩表明,即使高频因子换手率更高,但高频因子带来的信息增益在合适的方法控制下会大于高频因子带来的高换手率成本,因此,我们希望建立合适的组合优化模型,让投资者能更便利的用换手率换取高收益。

我们模型建立的第一步是构建适合于高频因子的因子有效分析体系框架。由于高频因子的IC半衰期更短,我们采取日频调仓的方式评估高频因子的收益率。高频因子构造方法分为两步:(1)遵循高频数据低频化的思想构造高频指标;(2)通过时序上操作将高频指标变成高频因子

高频指标构建

常见的高频数据,如level2行情数据包含个股分钟K线、盘口快照、委托队列、成交明细等,是高频指标能够利用的最原始数据。高频指标构建逻辑一般是低频化,如将tick数据重采样生成分钟数据,再把分钟数据聚合形成日频指标。

低频因子的构造逻辑往往是事前解释,但在高频数据领域,由于数据噪音大,自相关性高,指标对构造的统计量的数学性质要求比较严格,通过统计特征挖掘数据中的信息,然后再事后解释,效果与效率都会比较好。

大量挖掘量价因子常用的方法是遗传规划算法,但这种方法也面临两个问题:

第一,目标函数的选取。无论如何选取目标函数,总是有过拟合现象,定义挖掘有效性

{w:100}{w:100}遗传规划算法η最终会随着模型检验通过的因子数量Ftotal上升而下降,真实样本外有效的因子Feffective在这个过程中可能增加得并不多。

第二,潜在因子覆盖范围。我们希望找到固定时间区间内的所有因子,但遗传规划算法中算子的选取是有限的,并且很多算子只是截面或时序上的加减乘除,我们并不知道这些算子的组合在深度有限的情况下是否搜索到了足够广的因子范围。

Attilio Meucci在《Risk and Asset Allocation》中写到,应该面向市场中的不变量(Market invariants)进行建模。对于独立同分布的高频数据而言,我们认为它的不变量就是总体分布的统计特征,因此我们希望建立面向统计特征的机器学习方法挖掘高频量价因子。具体而言,不同的统计量构造方法能将总体分布的部分信息映射到实数层面上,只是不一定每个总体分布的信息都对股票价格有预测效果。根据总体分布的信息,我们将统计量构造方法分为4类,下面我们将一一介绍。

{w:100}{w:100} {w:100}{w:100}与传统的遗传规划算法不同,从信息角度出发搜索统计量这种构造方法不需要拟合参数,因此减少了过拟合现象。并且搜索范围从简单的加减乘除扩展到了任意能保证η处在一定水平的函数,扩大了潜在的因子覆盖范围,能够找到更多的因子。

生成高频因子

高频指标通过时序操作生成高频因子能够提升因子表现,增强可投资性。一般而言,时序上对指标进行操作以形成因子其实与构造低频因子方法相同,包括加权平均,求标准差,求偏度,时序回归等等。但高频因子因为在高频维度上的复杂性,一般在时序上的操作会比低频因子简单,常见的有两种做法:加权平均和标准差的方式。我们后续将一一介绍。

加权平均

我们先考察权重相等的加权平均—等权平均,再考察权重不等的加权平均(如IC加权等)。许多研究观察到对高频指标取等权平均会提高高频因子的表现。以高频因子已实现收益率方差为例,我们计算了2014年8月30日到2021年8月31日不同等权平均天数下的因子IC与年化因子多空收益率的变化。

{w:100}{w:100}可以看到,随着等权平均天数的增加,已实现收益率方差因子的多空收益率与IC先上升后下降,存在一个最优等权平均天数n,在图中n=20

{w:100}{w:100}括号里gTiRt+1可以看作是新的因子i的收益率,那么等权平均就等价于n个因子的等权组合,这也能够解释为什么高频指标的n日平均因子表现往往会好于单独使用1天的指标:因为多因子组合的效果往往好于单因子。

下面来说明这一点,若因子截面值g与收益率截面值R都服从标准正态分布,Haldane(1942)指出,它们的皮尔逊相关系数ρ(即IC),前两阶中心距可以被表示:

{w:100}{w:100} {w:100}{w:100}因此在很多情况下会存在一个最优等权平均天数n,使得因子表现最好。这个最优等权天数使得多增加一天平均减少的分子与增加的分母对组合的边际效应为0,即式(6)两侧取等号时取得。实际显式计算比较困难,我们采用一个近似算法,取两个时间段[0,n],[n,2n],分别计算这两个时间段对应的IC1, IC2,那么根据式(6)最优应满足如下公式

{w:100}{w:100}

由于单因子IC递减的规律性较强,这种最优加权方法得到的结果一般很稳定,不容易出现过拟合现象。

标准差

原则上,我们认为连续天数内的因子值服从同一分布,根据中心极限定理,采用平均值计算因子在时序上的取值更接近总体分布的均值。但在实际的计算中,不管是从IC衰减角度,还是从因子时序表现上,都很容易发现:因子值在时序上的分布是不同的。

尽管因子在时序上的分布不同,但总有一些股票的因子值比另外一些在时序上更接近独立同分布。这时就需要因子时序标准差来衡量这种统计量服从独立同分布的程度,这种程度可能对股票在截面上的收益率有预测性。以动量因子为例,用分钟收益率的平均值来表示动量因子,那么第t天的动量因子值为

{w:100}{w:100}(11)式等于统计量μt 的标准误,标准误衡量统计量与总体分布的参数值是否接近,标准误越小,样本对整体分布的代表性越好。事实上,动量因子的标准差就是波动率因子,波动率因子衡量了动量因子在时序上的差异,这种差异来自于动量因子在时序上分布的差异。波动率越大,股票含有的风险可能越大,因此需要更高的预期收益来补偿,所以波动率因子对股票截面收益率有预测能力。

在这个例子中,动量因子的时序标准差也是个因子,如果只对高频指标进行加权平均操作,那么我们可能漏掉了这个有效的因子。

\

高频因子有效性分析

高频因子多空组合构造方法

低频因子常用的方法是构造多头前10%等权组合与空头后10%等权组合算出因子的超额收益。这样算出的因子收益率会偏高,但多头前10%组合与空头后10%组合的风险不一定完全匹配,因此这种多空组合的波动率与最大回撤都会比较大,更不能代表因子整体的表现(在低频领域,IC与分位数组合表现的差异某种意义上也可以认为反应了这种现象)。为了获取更纯粹的alpha收益,我们希望多空收益组合能够最大限度的实现风险匹配。若因子F 是某期因子截面值,我们考虑单期优化问题:找到一组权重w,使得按照w 配比股票能够获取最优的因子收益风险比,用λ表示因子单期收益率,即

{w:100}{w:100}σ(λ)是多期值,我们用σ(w)替代,因为权重分配得越集中,那么因子收益率的风险就会越大,因子收益率的波动率也会变大;相反,若权重分配得约平均,wi=1/NN表示截面上股票个数,那么因子收益率对冲的风险会越多,因子收益率的波动率也会降低。若因子值F与因子当期收益率是正相关(注意这是下面结论成立的假设),那么λ=wTF,最优wF。按照因子值中位数正负进行划分的F+F-,那么w 应满足

{w:100}{w:100}因此,我们在中位数划分多空后,使用全市场的因子值分配多空组合权重。

高频因子有效性指标

与低频因子类似,我们考察基于因子权重,因子组合收益率PnL的一系列指标来判断因子的有效性。

因子值截面多空分布

理论上因子值是对因子暴露的无偏估计,但由于因子暴露的分布未知,所以因子值的分布也未知。不过从上文我们知道,如果因子值服从正态分布,那么在计算因子组合收益率时会有许多好的性质,因此我们要求因子截面分布近似正态分布。衡量因子值是否是正态分布,有一个简单的办法是计算不同分位数内因子值的占比:例如,考察因子多头前10%的权重加和与因子空头后10%的权重的加和。若因子值服从正态分布,那么两边权重加和应该近似相等,更进一步,如果因子值服从标准正态分布,那么多头前10%权重加和应该等于22.09%。以中位数划分多空组合,那么因子截面值的空头分位数占比与多头分位数占比应如下表。

{w:100}{w:100}由于因子极值常常会偏离标准正态分布0.05(0.95)分位数,我们对因子极值占比放宽到标准正态分布的0.01(0.99)分位数,即-2.3263(2.3263),此时因子空头(多头)占比为29.29%。

PnL有效性指标

在因子多空组合的PnL内,我们定义如下指标及对应标准来判断因子有效性。

{w:100}{w:100}由于我们的多空组合方式是全市场多空组合,不是多头前10%组合与空头后10%组合,所以计算得到的年化多空收益率会稍低,因此我们判断的标准为年化多空收益率大于10%即可,但我们的夏普比率会稍高,因此要求夏普比率大于3,最大回撤会比较低,要求最大回撤小于10%。同时,为了增强组合的可投资性,我们要求高频因子日均换手率小于40%。

为了减少过拟合现象,我们还要求因子在样本内至少7年有效,样本外至少半年有效,并且样本内外表现差异不超过20%。

高频因子相关性

高频因子由于是日频调仓,因此在回测区间内有足够长的日收益率数据,能够较准确地计算因子时序相关性。在我们模型的构建中,时序相关性是评价因子特异性的最重要的指标,不过我们也会考虑因子截面相关性与因子交易相关性,把它们作为考察因子特异性的辅助指标。

时序相关性

我们定义时序相关性为

{w:100}{w:100}RF_i, RF_j 表示因子Fi, Fj的多空收益率PnL向量。一般来说,常用的判断因子特异性的指标是因子截面相关性,因子在截面上进行对冲后(一般是回归取残差),就默认两个因子间不存在相关性。但其实截面相关性不等于时序相关性,可能存在因子截面上相关性很低,但时序上相关性很高的情况。

{w:100}{w:100}时序相关性能够判断因子收益是否来自于同一种风险,使用时序相关性低的因子构造投资组合能够更好的分散风险。我们认为时序相关性在0.3以下是不同的因子;时序相关性在0.3到0.5之间,因子描述了共有风险的某部分特征,需要进一步分类处理。时序相关性在0.5以上,这些因子是同一种因子。

因子截面相关性

我们考察两种基于因子截面值构造出的相关性指标。第一种是因子截面相关性。因子截面相关性衡量因子间的相似程度,因子Fi, Fj第t天的截面相关性被定义为

{w:100}{w:100} {w:100}{w:100}

截面相关性与时序相关性思考

在3.3小节,我们考察了不同的因子相关性,它们是截面相关性和时序相关性。在我们的模型中,我们更看重时序相关性,因为时序相关性反应了因子资产组合的风险来源,传统的截面对冲其实只是消除了因子的截面相关性,没有完全消除因子时序相关性。

我们以下面的例子来说明这个现象。若因子F对动量因子MOM进行对冲,那么

{w:100}{w:100} {w:100}{w:100} {w:100}{w:100} {w:100}{w:100}

总体来说,高的截面相关性代表了高的时序相关性,截面对冲会降低因子时序相关性。但是在高截面相关性的情况下,截面对冲会对时序相关性的影响降低。

因此,在进行截面对冲时不能任意选择对冲因子,不然因子仍然会在时序上暴露风险。基于目前的线性对冲方法,我们认为:(1)对冲的因子应该是风险因子,此时RMOM 的取值相对较小,所以对原因子收益率的扭曲越小。(2)选取因子进行对冲操作时,应考虑截面相关性大小,选取截面相关性适中的两个因子进行对冲,这样可以使得因子时序相关性更接近0。

风险识别与组合优化

我们模型的第二步是建立风险模型。一般来说,在计算投资组合风险暴露时,Barra模型是最为常用的选择。通过Barra模型识别投资组合的风险,我们可以在组合优化中增加限制条件来减少不想承担的风险。但高频因子具有特异性的收益特征与风险特征。高频因子暴露的高频风险可能没有在Barra模型中被很好的定义出来,因此在高频因子中使用Barra模型可能会出现风险模型与收益模型的错配。许多研究发现错配的风险会导致组合收益率的风险被低估,影响组合优化结果。为了解决这个问题,我们采用事后识别的方式,对高频因子的风险进行识别。

风险、风险因子、因子概念区分

由于市场上许多投资者对风险、风险因子、因子这些概念认知混淆,在识别风险之前,我们先对它们作区分。以λ表示因子时序收益率,λ由提供收益的λ_p与提供波动率的λ_r组成,E[λp]>0, E[λr]=0, D[λp]<D[λr]

{w:100}{w:100}只看因子收益率E[λ]=E[λp],是发现不了因子内的λr,但是考察因子波动率D[λ]=D[λp]+D[λr]+2cov(λp,λr)可以发现λr为因子提供了额外的波动率,导致因子λ的风险收益比降低,如果能找到一种方法从因子λ中去掉λr,那么因子λ表现会变好。在这个分析中,风险指D[λ],若在多因子组合中分配w给因子λ,D[λ]∝w2,E[λ]∝w,那么承担越大的风险,能获得越高的收益。风险因子指λr,即不提供收益率,而提供因子时序波动率的因子,去掉这一部分的风险能提高投资组合的风险收益比。

高频因子风险识别方法

高频因子风险识别的难点在于如何定义风险因子,有两种思路可以供大家参考。

自上而下的风险识别

这种方法认为风险类别在高频、低频中是相同的,区别只是在于风险构造的数据源不同,如果用高频数据重构Barra风险因子,那么可能识别出高频因子内的共性风险。

从构造方法上:首先用因子建立若干个投资组合,由于特异性风险因子在构建投资组合时会被相互抵消,只需要找出这若干个投资组合中的共性风险。找出共性风险的办法是构建基于高频因子的Barra模型,举例来说,用高频数据构建Barra模型中的量价风险因子,如波动率风险子、流动性风险因子、动量风险因子等等。

不过若高频因子中存在独立于Barra定义的风险类别之外的大类风险,那么这种自上而下的风险识别方法就无能为力了。

自下而上的风险识别

另一种风险识别方式是自下而上,从单个因子存在的特异性风险出发来识别风险。在这个方法依赖于一个现象:含有相同风险因子的高频因子时序相关性会很高。

{w:100}{w:100}可以证明含有风险因子λr时,计算因子λ1,λ2+λr的时序相关性约等于因子λ1,λ2相关性与因子λ1,λr的加权和。其中权重w与因子收益率的标准差正相关,一般而言,风险因子标准差大于因子标准差,所以风险因子对组合时序相关性影响较大。

从构造方法上:当某几个高频因子里含有共性的风险因子λr,它们会出现时序相关性聚集现象。通过对因子库内时序相关性进行聚类,能够识别出共性的风险因子,然后在组内进行因子间的线性变换,构造出收益率较低,但波动性大,并且与组内所有因子相关性高的因子,这个因子就是风险因子。

自下而上的风险识别依赖于因子库的大小,若因子库较大,识别出的风险会比较全面;但如果某一类风险只存在几个因子,那么这类风险可能识别不出。

我们采用的方法是上述两种方法的结合:

第一步,根据已有知识构建适合于高频因子的大类风险因子,如高换手率水平下的动量因子,波动率因子,流动性因子。构造出的风险因子应该具有这样的特征:收益率水平较低,能够解释尽可能的解释其他因子的时序波动率,与大部分因子时序相关性高。

第二步,将所有因子按照其与大类风险因子的时序相关性进行聚类与风险对冲。如果因子库内仍有未识别风险的因子。按照风险因子的定义,具有同类型的风险的因子之间时序相关性会出现聚集现象,因此使用时间序列聚类方法对剩余因子进行分解。返回第一步,直到绝大部分因子都识别出其所属的风险类别,因子库内因子平均相关性下降到合适水平。

第三步,将所有属于同一大类的因子进行组间比较,以组内表现最好的因子作为主因子,将组内其余因子与主因子进行线性组合,组成底层因子库。

底层因子库应该有如下特点:1)组间因子时序相关性接近于0。2)组内因子时序相关性出现聚集现象。3)因子表现远好于单个因子。

识别出风险后,我们可以利用风险因子做如下的事情:

  1. 估计投资组合的协方差矩阵,这是组合优化的重要参数。

    精准地估计收益模型的协方差矩阵能够让多因子规避更多的风险,从而表现更好。

  2. 降低因子间相关性。

    随着因子库的不断扩大,因子相关性也逐渐上升,有时候两个相关性高的因子并不是真正的相似,而是因为它们含有共同的风险,应该对风险对冲,而不是收益。

    使用风险因子就可以降低因子间相关性,并且识别出真正有差异的因子。

  3. 提升因子表现。

    单因子表现往往混杂了许多微小的风险进来,由于风险因子只贡献了因子时序上的波动率,而没有风险,识别出因子中含有的风险后,对风险进行对冲会提高单因子表现。

组合优化模型

我们的模型最后一步是构造组合优化模型。传统的组合优化模型以均值方差框架为主,在模型中加入约束条件,以获得满意的目标函数。以MVO优化模型为例,大量研究发现MVO优化结果对样本均值与协方差矩阵十分敏感,参数估计的一点点扰动对最优权重的影响十分明显。我们希望借鉴机器学习中的Bootstrapping思想,构建一套面向随机变量优化的机器学习模型,为投资者提供便利的权衡工具,输入个性化的限制方法,能够给出超过经典模型的效果。

\

总结

我们希望系统化地研究高频数据,并最终将高频因子与低频因子组合成投资组合。在此基础上,我们提出了高频指标分类方法,希望从信息角度对因子进行系统性地挖掘。其次,根据高频数据高换手的特点,我们对高频因子的有效性分析做出了特异性的改变,用日频换仓代替常见的周频与月频。最后,基于第3节的因子相关性分析,我们提出识别高频因子风险的方法:采用自上而下与自下而上方法的结合,希望能在控制换手率的情况下,获得更高的风险收益比。

参考文献

[1] Meucci A. Risk and Asset Allocation[J]. springer finance, 2005.

标签

高频交易高频因子