halo 的技术博客

返回

北向资金流五分组累计净值

“聪明钱”是 A 股市场近十年最深入人心的叙事之一。北向资金——通过沪股通、深股通买入 A 股的境外资金——被无数研报、自媒体和交易软件包装成先知:北向大幅净流入,第二天必涨;北向连续流出,赶紧跑。2024 年 8 月交易所停止披露北向实时买卖金额后,这个信号的稀缺性甚至进一步抬高了它的江湖地位。

这篇文章不站队,用一个结构透明的面板模拟把问题拆干净:假设北向资金确实部分知情(信号是真的),这个信号能不能变成钱? 答案先给:Rank IC 为正且统计显著(5 日 IC 0.68%、IR 1.84),五分组严格单调,多空费前年化 8.8%、Sharpe 1.68——但费后年化 -15.3%。信号在 5 个交易日内衰减完毕,迫使组合日均换手 16%,单边 15bp 的 A 股交易成本把全部 alpha 连本带利吃掉。降频调仓从 1 日到 20 日试了一遍,费后没有一档为正。

这是量化研究里最典型的一类结论:信号真实存在,但它的衰减速度与市场的摩擦成本共同决定了它不可直接交易

一、北向资金为什么”可能”有信息#

先把机制说清楚,避免玄学。北向资金可能领先市场的三个正经理由:

  1. 机构占比高。陆股通投资者以外资机构为主(主权基金、养老金、对冲基金),研究资源和定价纪律优于 A 股散户为主的投资者结构;
  2. 全球比价视角。外资对汇率、全球流动性、行业景气的跨市场信息整合更快,这类宏观信息恰恰是 A 股本地投资者的盲区;
  3. 持仓公开的自我实现。北向持股数据每日披露,跟风资金放大了它的价格影响——即使原始信息含量为零,“被认为聪明”本身也能制造短期预测力。

但也有两个泼冷水的理由:北向资金显著追涨(流入与过去收益强相关,可能只是动量的马甲);北向覆盖度高度偏向大市值白马,因子暴露和市值、行业耦合严重。

二、面板构造:把”部分知情”写进数据生成过程#

模拟 1500 个交易日 × 300 只股票。关键设定:北向净流入由三部分构成——信息成分(对未来 5 日特质收益有微弱预测力)、动量追随成分(跟过去 5 日收益走)、噪声,再乘以北向覆盖度(大票覆盖高):

# 信息信号:对未来 5 日收益有衰减式传导
info = rng.normal(0, 1, (n_days, n_stocks))
# 北向净流入 = 信息 + 动量追随 + 噪声,乘覆盖度
flow = (0.5 * info
      + 0.35 * (mom5 / mom5.std())
      + rng.normal(0, 1, (n_days, n_stocks)))
flow *= nb_coverage[None, :]
python

因子定义采用业界常见口径:过去 20 日累计净流入,除以同窗口流量标准差(消除股票间流量规模差异)。严格避免 look-ahead:t 日信号只用 t-1 及之前的流量,预测 t+1 日之后的收益:

window = 20
for t in range(window, n_days):
    seg = flow[t - window:t]          # 不含 t 当天
    flow_cum[t] = seg.sum(axis=0) / (seg.std(axis=0) + 1e-9)
python

三、IC 检验:信号是真的,但衰减极快#

逐日截面 Rank IC:

预测期平均 Rank IC年化 ICIR
未来 1 日0.58%1.60
未来 5 日(累计)0.68%1.84

IC 为正且 IR 显著大于 1,信号真实存在。但看 IC 按预测日的衰减:

IC 衰减

第 1 日 IC 0.56%,第 3 日掉到 0.27%,第 5 日只剩 0.17%,之后归零。北向流的信息半衰期大约 2 个交易日——这与真实市场的实证量级一致(多数 A 股研究报告北向流因子 IC 在 1%3% 之间、510 日内衰减殆尽)。信息衰减快意味着:想吃到这个 alpha,就必须频繁调仓;频繁调仓,就要面对 A 股的交易成本。这是后面全部悲剧的伏笔。

四、分组回测:费前很美,费后崩塌#

每日按因子值分五组、次日等权持有。五分组累计净值(开头图)严格单调:净流入最多的 G5 一路领先,净流出最多的 G1 垫底。多空组合(G5 - G1)的表现:

多空组合费前费后对比

口径年化收益Sharpe最大回撤
费前+8.8%1.684.4%
费后(单边 15bp)-15.3%-2.9161.0%

问题出在换手:多头组合日均换手率 15.9%——五分之一的仓位每天在换血。多空两条腿、买卖双边,一年下来交易成本超过 24%,而费前 alpha 只有 8.8%。成本假设并不苛刻:15bp 单边已经是机构水平(含佣金、卖出印花税分摊、冲击成本),散户实际成本更高。

降频能救吗?不能#

自然的想法是拉长调仓周期,用换手换 alpha 保留率。1/2/5/10/20 日调仓全试一遍:

调仓频率与费后收益

调仓频率费前年化费后年化费后 Sharpe
1 日8.8%-15.3%-2.91
2 日7.9%-9.5%-1.83
5 日5.2%-6.5%-1.23
10 日2.4%-6.1%-1.12
20 日4.7%-1.4%-0.25

一档都没转正。原因是残酷的算术:信号 5 日内衰减完毕,降频保住了成本却丢掉了 alpha——5 日调仓时费前年化已从 8.8% 掉到 5.2%,成本却因每次调仓换手更高(39%)而没有同比例下降。信号衰减速度和成本的组合,把”可交易区间”整个封死了。

五、剥离动量:北向流是不是动量的马甲#

模拟里北向流有 35% 的权重在追涨。一个自然的质疑:所谓北向 alpha 会不会只是动量因子换了件衣服?逐日截面回归剥离过去 5 日动量后再算 IC:

动量正交化前后 IC

原始因子 5 日 IC 0.68%,正交后 0.67%,保留 99%。在本模拟中北向 alpha 不是动量马甲——因为数据生成过程里信息成分与动量成分是独立注入的。但这恰恰是需要在真实数据上重做的检验:真实研究中北向流因子与动量、市值、行业动量的相关性远高于此,正交化后 IC 保留率普遍只有 40%~70%。模拟能告诉你检验该怎么做,不能替你回答真实世界的答案。

六、那北向数据到底该怎么用#

直接做选股因子费后活不下来,但这不等于数据无用。三个更合理的用法:

1. 市场级择时温度计。 个股层面的成本问题在指数层面不存在——北向整体净流入/流出对沪深 300 未来 1~4 周收益的预测力,可以通过股指期货或 ETF 以极低成本表达。历史上北向单日净流出超百亿的日子,往往对应短期情绪底部区域(均值回复)或外部冲击起点(趋势延续),配合波动环境区分这两种情形是可行的研究方向。

2. 其他策略的确认过滤器。 把北向 20 日累计流向作为多头信号的确认条件(只做北向同向的信号),不产生额外换手,成本为零,却能利用信号的信息含量。这是”信号真实但不可直接交易”类因子的标准归宿。

3. 持仓结构监控。 北向对个股的持股比例变化(而非日度流量)衰减慢得多——外资建仓周期以月计。月度调仓的”北向持股占比变化”因子换手率低一个数量级,是比日度流量更可能在费后存活的口径。

还要提醒一个数据现实:2024 年 8 月起交易所已停止披露北向实时成交与单日净买入金额,只保留持股数据的定期披露。依赖日度流量的历史回测,未来根本拿不到同频数据——这是比成本更根本的死刑。持股口径(用法 3)因此成为唯一可持续的方向。

七、方法论备忘#

这个案例浓缩了资金流类因子研究的通用清单:

  1. 先测 IC 衰减再谈策略——衰减半衰期 < 5 日的信号,先假设它费后必死,除非能证明换手可控;
  2. 成本敏感性是第一性检验,不是附录:费前 Sharpe 1.68 到费后 -2.91,中间只隔着 15bp;
  3. 正交化检验必须做:资金流与动量天然纠缠,不剥离动量的资金流因子研究没有参考价值;
  4. 数据可持续性:披露规则会变,用一个未来拿不到的数据源做出的回测,再漂亮也是纪念品。

总结#

北向资金流因子是”信号真实、不可交易”的教科书案例。模拟中即使把知情假设明确写进数据生成过程——IC 显著为正、五分组严格单调、费前 Sharpe 1.68——单边 15bp 的成本和 5 日信息半衰期的组合仍把所有调仓频率的费后收益按在零轴之下。它的正确打开方式不是日度选股,而是指数择时、信号过滤和低频持股结构监控。下次再看到”北向爆买百亿、明日必涨”的标题,可以想起这组数字:预测力 0.56% 的 Rank IC 是真的,但它属于费率比你低、动作比你快的人——以及,2024 年 8 月之后,连他们也看不到实时数据了。

北向资金流因子:陆股通资金能否预测 A 股收益
https://blog.halo26812.eu.org/blog/northbound-flow-factor
Author halo
Published at 2026年7月29日
版权声明 CC BY-NC-SA 4.0
Comment seems to stuck. Try to refresh?✨