北向资金流因子:陆股通资金能否预测 A 股收益
北向资金流因子的诚实检验:1500日×300股面板模拟,20日累计净流入因子 Rank IC(5d)=0.68%、IR 1.84,五分组单调、多空费前年化 8.8%(Sharpe 1.68)——但 IC 五日内衰减完毕迫使日均换手 16%,单边 15bp 成本下费后年化 -15.3%,降频到 20 日调仓仍打不平。信号是真的,钱是赚不到的:北向流更适合做择时温度计与组合过滤器 - 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 日试了一遍,费后没有一档为正。
这是量化研究里最典型的一类结论:信号真实存在,但它的衰减速度与市场的摩擦成本共同决定了它不可直接交易。
一、北向资金为什么”可能”有信息#
先把机制说清楚,避免玄学。北向资金可能领先市场的三个正经理由:
- 机构占比高。陆股通投资者以外资机构为主(主权基金、养老金、对冲基金),研究资源和定价纪律优于 A 股散户为主的投资者结构;
- 全球比价视角。外资对汇率、全球流动性、行业景气的跨市场信息整合更快,这类宏观信息恰恰是 A 股本地投资者的盲区;
- 持仓公开的自我实现。北向持股数据每日披露,跟风资金放大了它的价格影响——即使原始信息含量为零,“被认为聪明”本身也能制造短期预测力。
但也有两个泼冷水的理由:北向资金显著追涨(流入与过去收益强相关,可能只是动量的马甲);北向覆盖度高度偏向大市值白马,因子暴露和市值、行业耦合严重。
二、面板构造:把”部分知情”写进数据生成过程#
模拟 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 按预测日的衰减:

第 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.68 | 4.4% |
| 费后(单边 15bp) | -15.3% | -2.91 | 61.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:

原始因子 5 日 IC 0.68%,正交后 0.67%,保留 99%。在本模拟中北向 alpha 不是动量马甲——因为数据生成过程里信息成分与动量成分是独立注入的。但这恰恰是需要在真实数据上重做的检验:真实研究中北向流因子与动量、市值、行业动量的相关性远高于此,正交化后 IC 保留率普遍只有 40%~70%。模拟能告诉你检验该怎么做,不能替你回答真实世界的答案。
六、那北向数据到底该怎么用#
直接做选股因子费后活不下来,但这不等于数据无用。三个更合理的用法:
1. 市场级择时温度计。 个股层面的成本问题在指数层面不存在——北向整体净流入/流出对沪深 300 未来 1~4 周收益的预测力,可以通过股指期货或 ETF 以极低成本表达。历史上北向单日净流出超百亿的日子,往往对应短期情绪底部区域(均值回复)或外部冲击起点(趋势延续),配合波动环境区分这两种情形是可行的研究方向。
2. 其他策略的确认过滤器。 把北向 20 日累计流向作为多头信号的确认条件(只做北向同向的信号),不产生额外换手,成本为零,却能利用信号的信息含量。这是”信号真实但不可直接交易”类因子的标准归宿。
3. 持仓结构监控。 北向对个股的持股比例变化(而非日度流量)衰减慢得多——外资建仓周期以月计。月度调仓的”北向持股占比变化”因子换手率低一个数量级,是比日度流量更可能在费后存活的口径。
还要提醒一个数据现实:2024 年 8 月起交易所已停止披露北向实时成交与单日净买入金额,只保留持股数据的定期披露。依赖日度流量的历史回测,未来根本拿不到同频数据——这是比成本更根本的死刑。持股口径(用法 3)因此成为唯一可持续的方向。
七、方法论备忘#
这个案例浓缩了资金流类因子研究的通用清单:
- 先测 IC 衰减再谈策略——衰减半衰期 < 5 日的信号,先假设它费后必死,除非能证明换手可控;
- 成本敏感性是第一性检验,不是附录:费前 Sharpe 1.68 到费后 -2.91,中间只隔着 15bp;
- 正交化检验必须做:资金流与动量天然纠缠,不剥离动量的资金流因子研究没有参考价值;
- 数据可持续性:披露规则会变,用一个未来拿不到的数据源做出的回测,再漂亮也是纪念品。
总结#
北向资金流因子是”信号真实、不可交易”的教科书案例。模拟中即使把知情假设明确写进数据生成过程——IC 显著为正、五分组严格单调、费前 Sharpe 1.68——单边 15bp 的成本和 5 日信息半衰期的组合仍把所有调仓频率的费后收益按在零轴之下。它的正确打开方式不是日度选股,而是指数择时、信号过滤和低频持股结构监控。下次再看到”北向爆买百亿、明日必涨”的标题,可以想起这组数字:预测力 0.56% 的 Rank IC 是真的,但它属于费率比你低、动作比你快的人——以及,2024 年 8 月之后,连他们也看不到实时数据了。