量化选股 基于卡尔曼滤波的仓位预测选股策略 请务必阅读最后一页股票评级说明和免责声明1 2024年3月29日 金融工程研究 山证金工团队 分析师:姓名:黎鹏 执业登记编码:S0760523020001电话:18682093980 邮箱:lipeng@sxzq.com 投资要点: 卡尔曼滤波:过滤噪音,状态估计模型 简介:模型通过动态系统和测量信息的结合,能有效的过滤噪音影响,完成从不完整的测量数据中预估状态的任务。 优势:模型可以下沉到股票层面,其结果可以协助完成择股;模型可设定参数较多,灵活性较强,可以很好的完成特定任务。 胜率回测:通过对比模型净值与基金实际净值,发现模型净值误差处于稳定区间,说明模型效果稳定。 选股策略:两种情景,三种策略 两种情景:对于卡尔曼滤波所模拟结果,将股票在不分行业以及分行业两种情景下分别进行检验,形成当期的投资组合。 三种情景:在每种情景下,测算拟合数值策略,次数策略以及个数比例策略每期的收益和相对中证500指数的超额收益。 策略效果:策略在各类型基金的表现上并无明显的优劣,个数比例策略表现相对突出,其超额收益率上升趋势明显。 组合型基金:稳定α收益,平均超额收益率9.4% 从净值来看,组合型基金选取前10%的股票构成的投资组合回报相比单类型基金有了明显的提升;表现较好的策略,个数比例策略平均年化超额收益率为6.04%。 从市值分布来看,拟合数值策略的市值偏向中小盘;次数策略的市值偏向中大盘,个数比例策略的市值以小盘为主。 从换手率来看,次数策略的换手率最低,两种情景下在2.7左右;其他两种策略换手率不分伯仲,两种情景下换手率均在8左右 从分组系数选择来看,个数比例策略在选取前5%以及后5%的股票构成投资组合时,超额收益最高,其平均年化超额收益率为9.4%,其他系数的收益相比较之前并无明显优势。 风险提示:报告根据公开数据整理,结论基于各个基金的历史业绩,定期报告以及历史市场数据得出,并不代表市场将来表现,报告阅读者需审慎参考报告结论。 目录 1.研究背景:6 1.1综述6 1.2卡尔曼滤波介绍:6 2.利用卡尔曼滤波监测公募基金调仓:8 2.1模型搭建8 2.2模型胜率回测8 2.3模型的局限性以及拓展12 3.各类型基金策略展示13 3.1策略简述13 3.2普通股票型基金回测效果展示14 3.3偏股混合型基金回测效果展示18 3.4灵活配置型基金回测效果展示22 3.5指数型基金回测效果展示26 4.组合型基金策略展示27 4.1策略简述27 4.2组合型基金策略展示28 4.3策略选股分析31 4.4策略系数选择与分组34 5.其他尝试38 5.1使用贝叶斯函数对股票权重进行调整38 6.附录39 7.风险总结39 图表目录 图1:重仓股换仓幅度9 图2:重仓股重合度9 图3:基金定期报告换仓幅度汇总(基金个数)9 图4:普通股票型基金-净值收益率误差分布10 图5:偏股混合型基金-净值误差分布11 图6:灵活配置型基金-净值误差分布11 图7:被动指数型基金-净值误差分布12 图8:增强指数型基金-净值误差分布12 图9:普通股票型基金-策略单位净值14 图10:普通股票型基金-超额收益净值15 图11:普通股票型基金-年化收益表现16 图12:普通股票型基金-策略单位净值17 图13:普通股票型基金-超额收益净值17 图14:普通股票型基金-年化收益表现18 图15:偏股混合型基金-策略单位净值19 图16:偏股混合型基金-超额收益净值19 图17:偏股混合型基金-年化收益表现20 图18:偏股混合型基金-策略单位净值21 图19:偏股混合型基金-超额收益净值21 图20:偏股混合型基金-年化收益表现22 图21:灵活配置型基金-策略单位净值23 图22:灵活配置型基金-超额收益净值23 图23:灵活配置型基金-年化收益表现24 图24:灵活配置型基金-策略单位净值25 图25:灵活配置型基金-超额收益净值25 图26:灵活配置型基金-年化收益表现26 图27:指数型基金-年化收益表现27 图28:组合型基金-不分行业-单位净值28 图29:组合型基金-分行业-单位净值29 图30:组合型基金-不分行业-超额收益净值29 图31:组合型基金-分行业-超额收益净值30 图32:组合型基金-年化收益表现31 图33:拟合数值策略-不分行业-市值分布31 图34:拟合数值策略-分行业-市值分布31 图35:次数策略-不分行业-市值分布32 图36:次数策略-分行业-市值分布32 图37:个数比例策略-不分行业-市值分布33 图38:个数比例策略-分行业-市值分布33 图39:次数策略-不分行业-换手率33 图40:次数策略-分行业-换手率33 图41:拟合数值策略-不分行业-换手率34 图42:拟合数值策略-分行业-换手率34 图43:个数比例策略-不分行业-换手率34 图44:个数比例策略-分行业-换手率34 图45:组合型-超额收益净值35 图46:前后5%-年化收益表现35 图47:前30%-年化收益表现36 图48:中间30%-年化收益表现37 图49:最后30%-年化收益表现37 图50:贝叶斯函数-年化收益表现38 图51:个数比例策略股票组合39 表1:普通股票型基金-误差汇总11 表2:模型结果案例12 1.研究背景: 1.1综述 公募基金作为A股市场中重要的机构投资者,其持仓信息一直受到市场关注。公募基金的仓位变动情况不仅反映了市场投资情绪变化等关键信息,而且也常被其他投资者用来辅助自己的投资决策。然而,公募基金只有在每个季度末或者年度定期报告中才会对其资产配置情况进行披露,具有较大的滞后性。因此,寻找一种可以测算基金目前仓位的方法就成为了一项有意义的工作。 市场上目前流行的基金仓位测算方法是传统的指数模拟法,即利用基金净值数据作为因变量和指数点位数据作为自变量构建多元一次回归模型进行模拟。而由于普通的OLS模型对于样本的要求比较苛刻,无法很好的处理行业间的联动效应,因此,模型所构建的模型相对病态,难以得出有说服力的结果。 为了解决这个问题,在模拟过程中会引入正则化等方法对模型进行升级。比较常见的正则化方法,例如Lasso或者RidgeRegression,一定程度上提升了模型的准确度,而研究员会根据模拟出来的结果对基金的行业持仓信息进行解读以及由此给出行业配置的推荐。这种拟合方法的仅仅停留在行业层面,并未下沉到股票中,拟合的自变量也通常为一级行业指数。模拟出来的结果也并不能直接运用到个股选取当中,往往需要后续的加工处理。 在本次研究中,我们尝试运用卡尔曼滤波,以基金每季度披露的前十大重仓股的持仓信息作为因子,对基金日频收益率进行拟合,并且根据每个月各基金的模拟结果给出推荐的股票池。与Lasso等正则化模型的结果相比,卡尔曼滤波的模型更加合理;这是因为lasso等模型为了消除共线性的影响会将部分系数强制归零或者缩小,尽管这一做法很好的解决了多重共线性对模型的影响,但是在预测个股调仓的问题上并没有帮助。在研究的过程中,我们也发现使用卡尔曼滤波构建的股票模型比Lasso等方法构建的股票模型更加合理及稳定。 1.2卡尔曼滤波介绍: 卡尔曼滤波是一种高效率的递归滤波方法,能够根据系统中采集观测到的数据,从一系列存在测量噪声的数据中估计动态系统的状态。它能有效的完成过滤潜在的噪音以及从不完整的测量数据中提取准确的 信息的任务;通过结合系统动态模型和测量信息,迭代更新其预测方程,从而达到最大限度的减少总体估计误差的目的。 主动权益基金除了定期披露的股票持仓数据,每日净值的变化包含了基金持仓变化的信息,基于这些信息来监测基金持仓变化是卡尔曼滤波方法很好的应用场景。卡尔曼滤波包括了状态矢量和测量矢量两个变量。状态矢量可以简单的理解为我们所建立的模型预测出的数据,测量矢量是我们所观察到的真实数据。 首先,对基金的日均收益率Rt和其重仓股票的日收益率���进行建模,我们会得到状态矢量: �𝑡��=���⋅���+� 其中,��为基金在时刻t的全部重仓股的占基金总值比之和,σ为时刻t时的误差项,Wit为基金在时刻t的各个因子的暴露程度,是无法观测到的状态变化。 卡尔曼滤波的核心包括两个步骤:预测和更新。在预测步骤中,滤波会使用状态矢量的已有信息来估计测量矢量在下一个时间点的数值。因此根据状态矢量预测方程,由前一时期仓位估计最新仓位,我们可以得到基金仓位的估计: �˜�=�⋅�˜𝑡−1+�⋅� 接着在更新步骤中,滤波会使用观测到的测量矢量对状态矢量进行修改,对状态矢量系统中具有较低不确定性的部分给予更多的权重,从而确保滤波适应不断变化的条件,同时最大程度的减少误差。将预估的�˜�代入状态观测方程中,会发现基金的实际收益率与状态观测方程中得出的收益率存在误差,��−��⋅�˜𝑡。随后,卡尔曼滤波会根据此误差对模型进行更改: �˜�=�˜�+�𝑡(��−��⋅�˜𝑡) �𝑡,又称卡尔曼增益,是卡尔曼滤波的自适应参数之一。该参数会在更新步骤中根据预测状态和测量状 态的数值差异来决定最佳加权方法,有效的提高了卡尔曼滤波在状态估计过程中的稳健性和准确性。 在实际使用卡尔曼滤波进行建模时,相关系数的设定比较复杂;部分系数设定的好坏对模型的结果有着间接的影响。因此设定一个符合逻辑且能提升模型质量的系数比较困难,需要对基金经理的个人风格和市场环境进行深度研究,且其结果并不适用于其他基金,并无适用性。因此,我们在本篇报告中暂时选择使用的是符合逻辑的中性系数。 2.利用卡尔曼滤波监测公募基金调仓: 2.1模型搭建 本篇报告中,我们使用的数据的时间范围从2017年1月1日起至2024年2月29日,以季度为检测窗口,对全市场股票型基金的调仓情况进行检测,并对照基金每日净值来统计胜率。回测的基金样本需符合以下条件:截止各个季度初时,基金的成立时间需大于1年;基金的规模在2亿以上;投资对象的主体需是 股市的公募型基金。经过筛选后的基金样本在全部时间段共包含5382只基金,我们按照同花顺的分类将基金分为:普通股票型基金,偏股混合型基金,灵活配置型基金,被动以及增强指数型基金。 所用数据为基金定期报告中所披露的重仓股持股信息,基金日净值,基金每日收益率以及基金重仓股每日涨跌幅。因子选择上,选取基金最近的定期报告中披露的前10大重仓股作为因子,通过对比因子日收 益率和基金日涨跌幅估算基金调仓情况。此外,本篇报告中我们所使用的对比基准是同一时期的中证500 指数收益率。 2.2模型胜率回测 使用上述因子搭建的模型进行回测时,其胜率对比基准较难选择。通常情况下,研究员会通过对比模型估算出的重仓股因子的数值和定期报告中所披露的实际重仓股信息来判定模型胜率。但是,这种判定胜率的方法并不适用于我们的模型。仅使用定期报告中所披露的重仓股持仓信息作为因子搭建的模型具有一定的局限性,当基金新进配置某一行业使得基金的前十大重仓股发生变化时,在获得该季度定期报告并手动更新因子前,模型仍然会使用设定好的因子进行迭代升级。而多数基金季度间的换仓比较频繁,导致单 纯的对比模拟结果与真实数值的做法并不合理。 以普通股票型基金为例,截止2023年第四季度,该类型基金近5年的季度定期报告中所披露的前10大重仓股的平均重合度为58.94%,平均换仓幅度为41.06%。近年来,基金平均换仓幅度整体呈现下降趋势,但是基金本期定期报告中披露的重仓股与上一期相比,仍有36.31%的差异。 图1:重仓股换仓幅度图2:重仓股重合度 资料来源:同花顺,山西证券研究所资料来源:同花顺,山西证券研究所 从普通股票型基金定期报告中披露的重仓股重合度来看,截止2023年第四季度,44.34%的普通股票型基金的前十大重仓股重合度低于70%,18.45%的基金重仓股重合度低于50%。因此,尽管近3年来,各个普通股票型基金的重仓股换仓幅度