北上资金净流入的估算方案 | 开源金工
市场投研资讯
(来源:建榕量化研究)
报告发布日期:2025-03-20
自2014年11月17日沪股通开通以来,北上资金开始逐渐取代QFII资金成为国内资本市场观察外资交易行为的重要窗口。在前十年间,受益于港交所对北上资金持仓明细动向的持续披露,市场上不同类型的投资者对外资的调仓动向能够做到及时掌握,进而调整自己的交易策略。北上资金的持仓明细数据日益成为大家投研过程中不可或缺的参考,相关研究可参见开源金融工程团队早期研究报告《陆股通解析:寻找真正的“北境之王”》、《北上资金攻守兼顾因子的构造—定价权与协同效应的融合》等。但随着2024年8月16日交易所对相关数据披露政策的调整,蕴含丰富信息的北上持仓明细数据自此便不再可见。
本篇报告,我们尝试回答如何在既有披露信息的情况下,做到尽可能精准地跟踪北上资金的调仓动向。全文主要分为三个部分。第一部分,我们简要回顾北上资金在过去十年间的净流入情况以及监管机构相关政策的变迁过程。第二部分,在港交所停止披露北上资金每日持仓信息后,我们尝试通过剩余可获取的披露信息对北上资金每日持仓明细进行拟合,进而估算出每日净流入水平。与此同时,我们从两个不同的维度讨论了持仓拟合过程中模型设定的合理性。最后,我们根据拟合的持仓信息分析了2025年以来北上资金在市场、风格、行业和个股层面的净流入情况,以供投资者参考。
01
北上资金的十年变迁
按照以自然年为单位进行统计,自沪深港通开通以来,北上资金保持了连续十年的净流入,最高峰时累计净流入金额超过两万亿元,成为A股市场重要的做多力量。但在面临百年未有大变局之下,国内股票市场过去两年面临较大下行压力,海外资本开始从持续流入转变为阶段性流出。
根据图1北上资金净流入走势图,2023年下半年以后,北上资金的流入趋势开始有拐头迹象。2024年以来,截至8月16日,即每日净流入数据停止披露的那一天,北上资金当年累计净流出68亿元。
按照时间先后顺序,我们梳理了沪深港通主要的政策变迁历程。在过去十年间,监管机构和交易所在逐渐优化完善相关政策制度安排,但也存在少数政策潜在降低了信息透明度。
2024年4月12日,上海证券交易所、深圳证券交易所及香港交易及结算所有限公司分别对沪深港通交易信息披露机制进行调整。2024年5月13日起,北上资金实时净流入金额不再披露。调整后,沪深股通方面,港交所调整了交易信息实时披露安排,不再披露沪深股通实时买入交易金额、卖出交易金额和交易总额;沪深股通当日额度余额大于或等于30%时,显示“额度充足”;小于30%时,实时公布额度余额。
2024年8月16日起,北上资金单只证券的托管机构持仓数量亦停止按日披露。沪深港交易所将盘后披露安排调整为:每日收市后披露沪深股通成交总额及总笔数、ETF成交总额、当日前十大成交活跃证券名单及其成交总额,并按月度、年度公布前述数据的汇总情况。每季度第5个沪深股通交易日公布上季度末单只证券沪深股通投资者合计持有数量。
上述政策的调整对投资者了解北上资金的动向造成了一定的困扰。那么是否还有其他的方案来对北上资金的调仓行为进行大致的监测?
02
北上资金的数据披露现状
根据所查阅资料,目前港交所官方公布的可用信息包括两个维度,分别是季末第5个交易日披露的详细持仓数据和每日披露的部分融券个股的可卖空数量数据。
图3 是港交所每个季度结束后披露的北上资金在陆股通标的上的整体持仓数量。虽然港交所依然披露不同托管机构的持仓明细数据,但在后文进行北上资金个股持仓数量拟合的过程中,我们并没有办法落实到不同托管机构维度。因此,在实际建模过程中,我们仅针对北上资金整体的持仓情况进行拟合估算。
虽然港交所不再披露每只陆股通合格个股每个交易日的具体持仓明细,但是其会在每个交易日对融券个股的可卖空数量数据进行披露。根据可卖空数量规则,当前交易日融券个股的可卖空数量是上个交易日北上资金持有该个股真实数量的约1%。鉴于此,我们可以根据该融券个股的前后两个交易日可卖空数量估算出最新的净流入金额,这为我们估算整个北上资金当日净流入金额提供了较大的辅助作用。但遗憾在于,可融券数据的披露在2024年8月16日新规实施后,也相应做了一次调整。从披露全部融券个股的可卖空数量到仅披露融券数量在30万股以下个股的可卖空数量情况。
以上便是我们能够从港交所获取到的关于北上资金持仓的所有已知信息。聪明的读者可能会意识到,我们能够用少部分披露可卖空数量的个股的持仓变动来代表北上资金整体的资金流动趋势吗?很遗憾,答案是不能。
03
融券个股可卖空信息的局限性
我们统计了2024年1月1日以来,每个交易日北上资金持仓个股中融券个股可卖空数量的披露情况。通过图5可以看到卖空信息披露的样本数量在2024年8月16日新规实施后发生过一次明显的下跌。与此同时,北上资金每个交易日完整的持仓数量信息也不再可见。以新规实施前后为分割点,新规实施前,可卖空数量信息已知的个股在陆股通合格标的中占比约71%,新规实施后,卖空信息披露比例下滑到约54%。
我们将融券标的分为两组,一组包含所有融券个股,另一组仅包含可卖空数量在30万股以下的融券个股。在新规实施前,所有融券个股占全部北上资金持股权重的比例稳定在98%以上,因此可以通过每只个股的可卖空数量数据倒推出北上资金当天的持仓变动情况和净流入规模,而这正是促使融券信息披露规则变更的关键原因。可卖空数量低于30万股的融券标的构成的组合,2024年以来持仓权重占整个北上资金持仓比例大概在10%到15%的区间波动,且整体呈现不断下降的趋势。
我们估算了可卖空数量在30万股以下的个股构成的组合每日的净流入水平,并将其与当天北上资金真实净流入金额进行对比,以观察是否可以通过少部分个股的净流入水平来近似折算出当天北上资金总体净流入水平。
通过散点图可以发现,北上资金当天总的净流入与部分披露可卖空数量的个股的净流入不存在明显的线性关系,拟合的R^2在零值附近,即我们无法通过部分披露可卖空信息的个股的净流入水平来预估当天的总的净流入规模。因此,简单地通过少部分个股的持仓变动来代表北上资金整体的情况,会对真实情况产生误判。
从二者的累计净流入走势来看,北上资金累计净流入金额呈现明显的波动,但是部分披露可卖空数量信息的个股净流入金额整体处于持续上升的态势,2024年下半年才开始有所回落,二者的变动趋势不存在稳定的关系。
04
北上资金净流入估算
2023年我们通过公募基金定期披露的持仓信息以及每日披露的净值变动信息,利用二次规划和卡尔曼滤波的方法,对主动权益基金的每日持仓情况进行了估算,从基金指数的拟合效果来看,结果表现优异。具体报告可参见《偏股混合基金指数(885001.WI):优势、复制与超越》。那么,我们能否沿用公募基金持仓明细的估算框架,来对北上资金的持仓情况进行拟合预测呢?
我们对比了公募基金和北上资金在数据披露层面的异同点,总结如表2所示。从披露内容来看,北上资金相比公募基金多了两次全持仓数据的公布,但缺乏净值数据披露。部分融券个股的可卖空数量可以理解为是更高频的公募基金季报持仓信息,区别在于公募基金季报披露重仓股信息,北上资金融券个股的可卖空数量则代表了非重仓股的信息。
由于北上资金持仓组合并不是一个真实的基金产品,导致其没有每个交易日的收益率情况披露。而通过已披露的全量持仓信息按照买入并持有来估算投资组合的每日收益率并不是一个合适的假设,因为这意味着不存在调仓步骤,理论上每天的净流入金额应该为0。
如果我们再进一步,按照买入持有的模式计算出投资组合当天的收益率大小后,在此基础上进行小幅度偏离得到北上资金的当日收益率,偏离幅度大小可参考历史统计结果进行确定。最后,再根据估算的收益率来对持仓个股权重进行拟合,这种做法是否可行呢?
很遗憾,虽然这种做法看起来简单且直观,但是北上资金每日持仓收益率估算的准确度无法进行事后评判,导致结果不具有可操作性。那么,是否还有其他思路可供尝试?或许我们可以将目标从拟合净值波动转变为拟合持仓金额大小,而持仓金额信息至少在新规实施前是可以通过每日披露的持仓明细计算得到的,从而帮助我们验证估算结果的合理性。在估算得到持仓金额后,我们再来拟合具体的持仓信息。
现在我们能拿到两条已知信息,第一条是港交所在每个季末后的第5个陆股通交易日披露的上个季末的全量持仓信息,其可以作为我们次日持仓变动的参考基准,类似于公募金持仓补全过程中的半年报和年报数据。第二条是我们通过部分个股每日披露的可卖空数量信息反推出这些个股当前的真实持仓信息。不过,这部分个股的权重在整个投资组合中的占比处于较低水平,一定程度上提升了持仓拟合的难度。
4.1 持仓金额估算
在拟合北上资金每日持仓明细前,我们首先需要对其每日持仓金额进行估算。
当前部分融券个股的可卖空数量已知,进而可以得到其持仓数量和持仓金额大小。由于每只个股的持仓金额除以其持仓权重占比等于整个投资组合的持仓金额,因此在目标函数中,我们要求两两个股之间估算得到的持仓金额偏差尽可能小。为了保证估算的持仓金额不至于与真实值偏差过大,我们对目标函数添加了惩罚项。惩罚项要求待估算个股的持仓权重与其上一期持仓权重偏离尽量处于较低水平。
其中,表示第只股票对应的持仓金额,表示第只股票对应的持仓权重占比,表示上一期的持仓权重占比,表示披露可卖空数量信息的个股数量,表示惩罚项敏感系数,和分别表示当前时刻持仓金额的上下限,其按照历史统计规律进行设置。
我们从新规实施的时刻算起,往前回溯大概一年左右时间作为模型测试起点。整个测试区间跨度为2023年7月1日到2025年2月28日。其中2023年7月1日到2024年8月16日,作为模型预测效果的对比区间,即样本内。2024年8月17日到2025年2月28日为样本外预测结果。
从持仓金额拟合的表现来看,样本期内北上资金每日持仓金额的拟合值与真实值走势趋于一致,但在具体数值上仍存在些许差异。其中,可卖空数量的向下取整操作是其中无法避免的误差来源之一。
4.2 持仓数量估算
在拟合北上资金具体个股持仓数量前,我们需要厘清不同类型的个股差异。当前北上资金通过陆股通通道交易的A股,有可融券和非可融券两种。融券标的中可卖空数量在30万股以下的个股持仓信息已知,而融券标的中可卖空数量大于30万股的个股持仓数量需要我们去估计,此外部分非融券标的的持仓数量信息也属于待估计的范畴。
第一步中,我们对北上资金每日持仓金额进行拟合。持仓金额估算完成后,我们在第二步,基于当天拟合的持仓金额来反推当日的个股具体的持仓数量。不断循环上述过程。相比于直接优化持仓数量,目标函数设置为最小化持仓个股的权重偏离幅度或许是更合适的方案。得到个股最优权重后,根据拟合的持仓金额和已知的个股价格,即可求解出对应的个股持仓数量。
其中,表示持仓个股的权重,表示上一期个股的持仓权重估计值,(net inflow)表示根据持仓变动预估的当日净流入金额大小,和分别表示净流入金额的上下限,阈值根据历史净流入数据统计结果确定。
样本期内,根据拟合持仓明细计算得到的净流入累计值与真实披露的净流入累计值的总体变动趋势较为一致,但在净流入具体数量级上会有所差异。不过由于每个季度可以更新一次真实的持仓明细,意味着每个季度我们会重新校正这个过程,以防止误差的不断累积。
从图11来看,滚动22日平滑后拟合的净流入金额累计值与真实净流入金额累计值散点分布图已经具有明显的线性关系,R^2提升到34.47%。若以预测方向一致性为判断
标准,样本期内日度预测胜率约55%,月度(滚动22日)预测胜率约68%。若剔除波动较小时期的数据,如滚动22日累计净流入金额值小于200亿元的样本,则预测胜率
可提升到75%。
05
2025年以来北上资金净流入分析
前文,我们基于两步拟合思路估算得到了北上资金在每个交易日的具体持仓明细。基于估计的每日持仓信息,我们统计了2025年以来截至2月28日,北上资金在市场、风格、行业和个股层面的净流入变化情况,以供投资者参考。不过需要提醒各位读者,随着统计层级的不断细分,估算的准度理论上会相应下滑。
根据我们的测算,全市场层面,北上资金累计净流入金额约476亿元,净流入趋势与中证800指数的表现相近。
风格层面,北上资金主要加仓大盘价值风格个股,累计加仓规模约277亿元,在2月下旬则开始减持大盘成长类风格个股,从高点累计流出约200亿元。小盘成长小幅流入约41亿元,小盘价值则呈现稳定流出状态,累计流出金额约33亿元。
行业层面,北上资金在2025年前两个月主要流入食品饮料、电力及公用事业和电力设备及新能源等行业,净流入规模均超50亿元。大幅净流出电子行业,净流出金额超200亿元。
个股层面,北上资金主要增持长江电力、贵州茅台等个股,增持额度在50亿元附近。减持最多的个股为北方华创,累计减持额度超140亿元,其次为比亚迪,减持金额约63亿元。
06
拓展讨论
第4节中
我们根据两步优化方案提供了北上资金持仓明细和净流入金额的估算思路。但我们可
能会好奇,估算的逻辑是否足够扎实,而非仅仅只是偶然的因素造成的合意结果。
为了测试前文建模过程的合理性,我们从两个角度来进行测试。第一个角度,我们假设持仓金额已知,按照我们的第二步优化过程是否能够得到大致准确的净流入走势。第二个角度,我们假设按照买入持有后的持仓金额进行持仓数量估算,是否估算得到的净流入走势趋向于零值附近。
6.1 假设持仓金额已知
在样本期内,北上资金的真实持仓金额可以通过每日的持仓明细计算得到。假设我们按照每天披露的真实持仓金额来反推持仓数量,这个误差有多大?
可以看到,按照完全已知的持仓金额来对持仓数量进行估算,进而估算出的净流入结果与真实的净流入金额水平差异很小,基于日度数据计算得到的R^2高达92%,表明二者具有高相关性。不过随着时间的累积,累计净流入误差似乎在慢慢增大。表象是拟合值倾向于高估每日净流入水平,但潜在解释可能在于目标函数的设置偏差。我们假定目标函数是拟合权重与参考权重偏差最小,但实际上北上资金每天在买卖个股的过程中并不会按照这个思路来进行操作。而且,权重偏差最小化的目标会导致当北上资金在抛售权重股时,拟合结果会低估抛售的力度,从而造成预估的净流出金额相比真实值偏小。反之亦然。
6.2 假设持仓金额等价于买入持有金额
在进行持仓金额估算时,我们使用递归的思路来不断更新每日持仓金额大小,当天的持仓金额依赖于前一天的拟合持仓明细结果。但是,如果我们不做持仓金额拟合,直接使用买入持有模式估算的持仓金额来进行每日净流入金额的估算,是否可行?显然该假设在逻辑上存在瑕疵,因为买入持有的方式默认每个交易日的净流入金额为0,但从图17可知,买入持有模式和每日迭代拟合得到的持仓金额在具体数值上并没有显著差异,二者均和真实持仓金额走势接近。那么,我们是否能够通过减少持仓金额估算这步来降低整体建模的成本?
很遗憾,答案是否。我们基于每个交易日买入持有金额反向估算了当日北上资金净流入的水平,从估算的结果(图18)可以看到,每日净流入金额的量级维持在很小的水平,净流入金额的绝对值均值在十亿元以下,相比北上资金两万亿元的日均持仓规模,基本可以认为是误差项的扰动。而这恰好和买入持有方式的逻辑隐含的结果一致,即当日净流入为零。所以,通过递归求解的思路来更新每日的持仓金额是必要的,且估算结果相对买入持有的模式是有明显增益的。
模型测试基于历史数据,市场未来可能发生变化。