Vibe-Trading 沪深港通资金流向分析(Stock Connect Flow):北向/南向信号框架与实战实现
沪深港通(Stock Connect)是连接内地与香港资本市场的核心通道,北向资金(外资进入 A 股)与南向资金(内地资金进入港股)的每日净流入数据,长期被视为机构情绪与跨境资本配置的关键风向标。本篇技术指南以 Vibe-Trading 仓库中的 hk-connect-flow 技能文档 为主体骨架,结合仓库内的 northbound_tool.py 工具、Tushare 参考文档与定时研究 playbook,系统讲解 Stock Connect 的四条通道架构、北向/南向信号判定框架、AH 溢价指数解读、跨市场综合评分方法,以及从真实数据源(Eastmoney、Tushare、yfinance)获取并计算这些指标的具体代码路径。读完本文,你将掌握一套可复制的跨境资金流分析工作流,并能在 Vibe-Trading 的 Agent/工具体系中直接落地使用。
1. Stock Connect 架构与核心概念
沪深港通由四个独立通道组成,每个通道代表一条确定方向的资金流。理解通道方向是后续所有信号分析的基础。
| 通道 | 方向 | 衡量内容 |
|---|---|---|
| 沪股通(Shanghai Connect Northbound) | 外资 → A 股(上交所 SSE) | 外资机构对沪市 A 股的配置意愿 |
| 深股通(Shenzhen Connect Northbound) | 外资 → A 股(深交所 SZSE) | 外资机构对深市 A 股的配置意愿(成长风格偏重) |
| 港股通(沪)(Shanghai Connect Southbound) | 内地 → 港股(港交所 HKEX) | 内地资金对港股的配置 |
| 港股通(深)(Shenzhen Connect Southbound) | 内地 → 港股(港交所 HKEX) | 内地资金对港股的配置 |
每日额度(Daily Quota):每个通道设有每日净买入额度(约 RMB 520 亿 / HKD 420 亿)。当额度使用率超过 50% 时,通常被视为强方向性信号,代表资金在该通道上的交易意愿非常强烈。
在 Vibe-Trading 中,这一架构可以直接映射到真实数据接口:仓库内的 北向资金工具 使用东方财富(Eastmoney)的 kamt(Kapital-Amount,沪深港通资金)系列接口——push2.eastmoney.com/api/qt/kamt/get 提供沪深两个通道的实时净流入快照,push2his.eastmoney.com/api/qt/kamt.kline/get 提供每日净流入历史序列。其中 hk2sh(沪股通)与 hk2sz(深股通)两个字段块分别对应上表中的两条北向通道。
2. 北向资金分析(外资流入 A 股)
2.1 为什么北向资金重要
北向资金之所以被市场高度重视,原因有三:
- "聪明钱"效应:全球基金、主权财富基金、对冲基金等外资机构通常被视为 A 股中的"聪明钱";
- 边际定价权:北向持仓约占 A 股自由流通市值的 4%~5%,占比虽小但常处于边际定价者位置;
- 全球配置联动:北向资金流向与 MSCI 中国指数调仓、全球新兴市场(EM)配置决策高度相关。
2.2 北向信号判定框架
原技能文档给出了一个可直接套用的信号函数:以每日净买入额(RMB 十亿为单位)划分六个信号档位,从 strong_foreign_buying(单日超 100 亿净买入)到 strong_foreign_selling(恐慌性流出)。
# Daily Northbound net buy signals
def northbound_signal(daily_net_buy_rmb_billion):
if daily_net_buy_rmb_billion > 10:
return "strong_foreign_buying" # Very large single-day inflow
elif daily_net_buy_rmb_billion > 5:
return "moderate_foreign_buying"
elif daily_net_buy_rmb_billion > 0:
return "mild_foreign_buying"
elif daily_net_buy_rmb_billion > -5:
return "mild_foreign_selling"
elif daily_net_buy_rmb_billion > -10:
return "moderate_foreign_selling"
else:
return "strong_foreign_selling" # Panic outflow
文档特别强调:累计趋势比单日数据更重要。因此框架进一步引入 20 日累计与 5 日累计的组合判断,区分"持续吸筹(sustained_accumulation)""持续派发(sustained_distribution)""吸筹暂停(accumulation_pausing,警惕反转)""派发暂停(distribution_pausing,可能筑底)"四类状态:
# Cumulative flow trend (more important than single-day)
def northbound_trend(flows_20d, flows_5d):
cum_20d = sum(flows_20d)
cum_5d = sum(flows_5d)
if cum_20d > 30 and cum_5d > 10:
return "sustained_accumulation" # Strong bullish for A-shares
elif cum_20d < -30 and cum_5d < -10:
return "sustained_distribution" # Bearish for A-shares
elif cum_20d > 0 and cum_5d < 0:
return "accumulation_pausing" # Watch for reversal
elif cum_20d < 0 and cum_5d > 0:
return "distribution_pausing" # Possible bottom formation
(阈值单位均为 RMB 十亿:20 日累计 ±300 亿、5 日累计 ±100 亿为趋势确认线。)
2.3 北向行业配置模式
北向资金的行业偏好并非随机,而是呈现出较为稳定的梯度结构,可用来判断外资的攻守倾向:
| 行业偏好 | 典型持仓 | 信号含义 |
|---|---|---|
| 消费必需(茅台、乳制品) | 占总持仓 30-35% | 核心底仓,换手率低 |
| 金融(银行、保险) | 15-20% | 周期配置,对利率敏感 |
| 科技(半导体、软件) | 10-15% | 成长配置,高换手 |
| 医疗健康(CXO、创新药) | 8-12% | 结构性成长押注 |
| 新能源(电动车、光伏) | 5-10% | 主题驱动,高波动 |
行业轮动信号的解读逻辑是:
- 北向增配消费必需 → 防御性仓位;
- 北向增配科技/新能源 → 风险偏好回升、追逐成长;
- 北向全面减仓 → 系统性风险回避(risk-off),通常由汇率因素驱动(人民币贬值)。
2.4 仓库中的北向数据落地实现
原文档聚焦于信号计算;Vibe-Trading 仓库则提供了真实数据获取的实现——NorthboundFlowTool(northbound_tool.py),其工具名称为 get_northbound_flow,特点如下:
- 数据源:东方财富
kamt系列接口,全程走共享的限流 Eastmoney 客户端,遵守其每 IP 限频要求,避免触发临时封禁; - 只读工具:仅获取实时净流入与近期日度历史,不下任何订单、不触碰实时交易端点;
- 参数:
lookback_days(int),默认 30 天,被夹紧(clamp)在 1~250 天之间(实现见 _clamp_lookback); - 返回结构:标准 JSON 信封,
unit统一为"10k CNY"(万元),包含realtime(沪股通shanghai_connect、深股通shenzhen_connect、合计total)与history(按日升序的最近 N 条记录)两部分; - 字段解析细节:Eastmoney 使用
"-"表示缺失数字,工具通过_coerce_float将其规范化为None(见 _coerce_float); - 自动降级:当 Eastmoney 请求失败时,自动切换到 Tushare
moneyflow_hsgt回退源,并在返回信封的warnings字段中如实标注降级原因与数据源。
调用示例(Agent 工具层):
get_northbound_flow(lookback_days=10)
返回信封(示意):
{
"ok": true,
"market": "China A",
"source": "eastmoney",
"data": {
"unit": "10k CNY",
"lookback_days": 10,
"realtime": {"shanghai_connect": 123456.0, "shenzhen_connect": 78901.0, "total": 202357.0},
"history": [{"trade_date": "2026-03-25", "shanghai_connect": 111.0, "shenzhen_connect": 22.0, "total": 133.0}, "..."]
}
}
3. 南向资金分析(内地资金流入港股)
3.1 为什么南向资金重要
- 内地投资者是许多港股中/小盘股的边际买家;
- 南向资金主要由三大动机驱动:AH 溢价套利(A/H 折价)、股息率追逐、科技平台配置(腾讯、阿里、美团等);
- 保险与养老资金日益借助港股通实现国际化分散配置。
3.2 南向信号判定框架
原文档以南向资金重点覆盖的标的池开篇——科技平台(0700.HK 腾讯、9988.HK 阿里、3690.HK 美团、9618.HK 京东)、高股息(0939.HK 建行、1398.HK 工行、0883.HK 中海油、2628.HK 中国人寿),以及按 AH 溢价指数动态计算的折价名单(ah_discount):
# Southbound focus areas
southbound_targets = {
"tech_platforms": ["0700.HK", "9988.HK", "3690.HK", "9618.HK"],
"high_dividend": ["0939.HK", "1398.HK", "0883.HK", "2628.HK"],
"ah_discount": [], # Dynamically calculated based on AH premium index
}
def southbound_signal(daily_net_buy_hkd_billion):
if daily_net_buy_hkd_billion > 5:
return "strong_mainland_buying"
elif daily_net_buy_hkd_billion > 2:
return "moderate_mainland_buying"
elif daily_net_buy_hkd_billion < -2:
return "mainland_selling"
else:
return "neutral"
(南向信号以 HKD 十亿为单位:单日净买超 50 亿为强买入,20~50 亿为温和买入,低于 -20 亿视为卖出。)
3.3 南向投资三大模式
- 股息率套利:内地资金买入港股银行/电信股以获取更高股息率——由于 H 股价格通常更低,其股息率常比对应 A 股高 2-3 个百分点;
- 科技平台配置:腾讯、阿里、美团等为港股独家或主要上市标的,内地资金的科技配置必须通过南向通道完成;
- AH 溢价套利:当 AH 溢价指数高于 130 时,套利资金倾向南下买入更便宜的 H 股。
4. AH 溢价指数解读
恒生 AH 溢价指数(HSAHP)衡量两地上市公司中 A 股相对 H 股的平均溢价水平。原文档给出了以溢价指数为核心的分档判读代码:
# AH Premium interpretation
ah_premium_index = 130 # A-shares trade 30% above H-shares on average
if ah_premium_index > 140:
signal = "extreme_ah_premium"
action = "favor H-shares over A-shares for dual-listed names"
elif ah_premium_index > 125:
signal = "elevated_ah_premium"
action = "mild H-share preference"
elif ah_premium_index < 110:
signal = "compressed_ah_premium"
action = "A-shares relatively cheap vs H; unusual, investigate"
else:
signal = "normal_range"
解读要点:指数 >140 为极端溢价,倾向买 H 卖 A;125~140 为溢价偏高,温和偏向 H 股;<110 为溢价被压缩,A 股相对便宜,属于罕见情形需深入调查;其余为正常区间。AH 溢价是南向套利资金的最核心参照系之一,同时也反向影响北向资金的相对估值判断。
5. 跨市场综合信号(Cross-Border Flow Composite Signal)
单看任一维度都容易误判,因此原文档设计了一个五维评分卡:对北向资金流、北向广度、南向资金流、AH 溢价、汇率方向五个维度各打 -2 至 +2 分,合成总分 -10 至 +10:
connect_score = {
"northbound_flow": 0, # -2 to +2: 20-day cumulative NB flow direction
"northbound_breadth": 0, # -2 to +2: number of NB top-10 holdings being added to
"southbound_flow": 0, # -2 to +2: 20-day cumulative SB flow direction
"ah_premium": 0, # -2 to +2: AH premium level (high = favor HK)
"fx_direction": 0, # -2 to +2: CNY strength (strong CNY = NB inflow support)
}
总分解读规则:
- > +5:强跨境风险偏好(risk-on),倾向 A 股;
- +2 ~ +5:温和看多;
- -2 ~ +2:中性 / 信号混杂;
- < -2:跨境 risk-off,外资卖出 A 股;
- < -5:强 risk-off,通常由汇率(FX)驱动。
该评分卡的意义在于把"北向方向、北向广度、南向方向、AH 溢价、汇率"五个独立信息源压缩成一个可排序、可回测的单一指标,方便纳入 Vibe-Trading 的策略流程。仓库中的 swarm 预设 investment_committee.yaml 与 ml_quant_lab.yaml 均把北向净流入列为重要的市场特征输入,与本文评分卡的设计意图一致。
6. 数据获取与关键指标清单
6.1 通过 Tushare(A 股视角)
原文档给出两段核心调用:
import tushare as ts
pro = ts.pro_api()
# Daily Northbound/Southbound aggregate flows
df = pro.moneyflow_hsgt(start_date="20260101", end_date="20260330")
# Columns: trade_date, ggt_ss (Shanghai SB), ggt_sz (Shenzhen SB),
# hgt (Shanghai NB), sgt (Shenzhen NB), north_money, south_money
# Top 10 Northbound active stocks
df = pro.hsgt_top10(trade_date="20260328", market_type="1") # 1=Shanghai, 3=Shenzhen
# Columns: trade_date, ts_code, name, close, change, rank, market_type,
# amount (trade amount), net_amount (net buy), buy, sell
仓库中的 Tushare 参考文档 对 moneyflow_hsgt 提供了更精确的字段级说明,可用于校准原文档的理解:
- 输入:
trade_date与start_date/end_date二选一,每次最多返回 300 条记录,总量不限; - 输出:
ggt_ss(港股通-上海)、ggt_sz(港股通-深圳)、hgt(沪股通)、sgt(深股通)、north_money(北向合计)、south_money(南向合计)——注意字段单位为百万元; - 积分要求:2000 积分起,5000 积分每分钟可提取 500 次;
- 典型返回(示意):
trade_date ggt_ss ggt_sz hgt sgt north_money south_money
0 20180808 -476.0 -188.0 962.68 799.94 1762.62 -664.0
6.2 通过 yfinance(港股视角)
原文档以港股标的与恒指为代理来观察南向标的与 AH 溢价的市场环境:
import yfinance as yf
# HK-listed stocks price data
tencent = yf.download("0700.HK", start="2025-01-01", end="2026-03-30", progress=False)
alibaba = yf.download("9988.HK", start="2025-01-01", end="2026-03-30", progress=False)
# AH Premium Index (proxy via Hang Seng indices)
hsi = yf.download("^HSI", start="2025-01-01", end="2026-03-30", progress=False)
6.3 关键跟踪指标一览
| 指标 | 数据源 | 频率 | 阈值 |
|---|---|---|---|
| 北向每日净买入 | Tushare / HKEX | 每日 | >RMB 50 亿为显著 |
| 北向 20 日累计 | 计算所得 | 每日 | >RMB 300 亿为趋势 |
| 南向每日净买入 | Tushare / HKEX | 每日 | >HKD 30 亿为显著 |
| AH 溢价指数 | 恒生 | 每日 | >130 表示 H 股具价值 |
| 额度使用率 | HKEX | 盘中 | >50% 为强信念 |
| 北向 Top10 集中度 | Tushare | 每日 | 前 3 名 >50% 为集中押注 |
6.4 仓库中的回退链路与单位换算
值得注意的一个实现细节:Vibe-Trading 的 tushare_fallbacks.py 中的 fetch_northbound_flow 在读取 Tushare 的 moneyflow_hsgt 时,会把 Tushare 输出的百万元字段乘以 100 转换为与 Eastmoney 一致的"万元"单位,再与 northbound_tool.py 的 Eastmoney 主链路合并进统一信封。这意味着无论走哪条数据源,下游消费方拿到的都是同单位、同结构的 realtime/history 数据,单位一致性是跨源降级设计的基本前提。
此外,仓库还提供了 hsgt_top10(沪深股通十大成交股)的字段级说明:market_type 取值 1(沪市)/3(深市),输出 amount(成交金额)、net_amount(净成交额)、buy、sell,可用于计算北向 Top10 集中度与广度评分;以及 stock_hsgt(沪深港通股票列表),通过 type 参数(HK_SZ/SZ_HK/HK_SH/SH_HK)维护四条通道的标的清单——这正是判断"某只股票是否属于港股通/深股通标的"的依据。
7. 标准输出格式(Output Format)
为了让不同运行之间的分析结果可比、可检索,原文档规定了一致化的输出模板,字段均可由前文数据与信号函数填充:
## Stock Connect Flow Analysis — [Date Range]
### Northbound (Foreign → A-shares)
- **20-day cumulative**: [+/- RMB X.XB]
- **5-day trend**: [accelerating / decelerating / reversing]
- **Daily average**: [RMB X.XB]
- **Quota utilization**: [X%]
- **Signal**: [sustained accumulation / distribution / neutral]
### Northbound Sector Allocation
- **Adding to**: [sector1 (top names), sector2]
- **Reducing**: [sector1, sector2]
- **Rotation direction**: [defensive / cyclical / growth]
### Southbound (Mainland → HK)
- **20-day cumulative**: [+/- HKD X.XB]
- **Focus names**: [Tencent, Alibaba, bank names]
- **Driver**: [dividend yield / tech allocation / AH arbitrage]
### AH Premium
- **Current index**: [XXX]
- **Historical percentile**: [X%]
- **Implication**: [favor H-shares / neutral / favor A-shares]
### Composite Signal
| Dimension | Score (-2~+2) | Basis |
|-----------|---------------|-------|
| NB flow | +1 | Cumulative +RMB 15B over 20 days |
| NB breadth | +2 | Adding across 8 of top 10 |
| SB flow | 0 | Flat |
| AH premium | -1 | AH premium at 135 (H relatively cheap) |
| FX | +1 | CNY stable/strengthening |
### Cross-Market Implication
- **A-share outlook**: [bullish / neutral / bearish] (NB perspective)
- **HK outlook**: [bullish / neutral / bearish] (SB + AH perspective)
- **Arbitrage**: [AH premium trade: buy H / sell A for dual-listed names]
该模板与仓库定时研究 playbook a-share-money-flow.md 的纪律要求一致:报告须在首行声明所覆盖的交易日,Northbound 章节必须如实说明数据粒度(如果数据源只发布日终聚合值,就用聚合值并明说,不得从日终数据反推盘中路径),每个数字都要携带交易日、单位与来源。
8. 研究注意事项与纪律约束
原文档"Notes"部分列出的要点,与仓库 playbook 的边界约束高度互补,共同构成一套严谨的研究纪律:
- 领先性:北向资金是 A 股最受关注的机构指标之一,常领先指数转折 1~3 天——但领先不等于因果,仅可作为信号输入;
- 机械性失真:季末与 MSCI 调仓日(2/5/8/11 月)会造成机械性资金扰动,信号纯净度要求应将这些日期过滤或单独标注;
- 汇率主导:USD/CNY 汇率是北向资金的关键驱动,美元走强往往在 A 股基本面之外独立触发北向流出;
- 南向失真源:南向资金可能被股息套利扭曲(内地资金在除息日前买入,造成人为流入尖峰);
- 数据可用性:Stock Connect 数据可从港交所官网与 Tushare API 免费获取;
- 合规声明:本框架仅用于研究目的,不构成投资建议。与此呼应,a-share-money-flow.md 明确禁止给出买卖/持有/目标价/次日预测,禁止把流量归因到具体机构、基金或个人——"集中买入是观察,不是信号",报告到什么程度就停到什么程度。
9. 在 Vibe-Trading 中的落地路径
综合以上内容,把该技能投入实战的完整链路是:
- 数据获取:通过
get_northbound_flow工具(northbound_tool.py)拿到沪深通道实时与历史净流入;通过 Tusharemoneyflow_hsgt、hsgt_top10、stock_hsgt补充南向、Top10 明细与标的清单(参考 沪深港通资金流向 等三篇参考文档); - 信号计算:套用第 2、3、4 节的
northbound_signal/northbound_trend/southbound_signal/ AH 溢价分档函数,产出各维度状态; - 综合评分:按第 5 节五维评分卡汇总为 -10~+10 的
connect_score,作为跨境风险偏好的单一度量; - 结构化输出:按第 7 节模板生成带单位、带日期、带数据源标注的分析报告,若数据缺失则按 playbook 纪律如实声明数据缺口(a-share-money-flow.md),绝不凭空填补;
- 可选的定时调度:该技能天然适配每日收盘后的复盘节奏(playbook 的
suggested_schedule为工作日 19:00 亚洲/上海时区),可作为 Vibe-Trading 定时研究管线的一个环节。
从研究框架到真实数据,再到可复现的报告输出,这套链路覆盖了跨境资金流分析的完整闭环,可直接在 Vibe-Trading 的 Agent 工作流中配置与运行。
atomcodeClaude Code 的开源替代方案。连接任意大模型,编辑代码,运行命令,自动验证 — 全自动执行。用 Rust 构建,极致性能。 | An open-source alternative to Claude Code. Connect any LLM, edit code, run commands, and verify changes — autonomously. Built in Rust for speed. Get StartedRust4.21 K637- DDeepSeek-V4.1-FlashDeepSeek-V4.1-Flash 是一个多模态混合专家(MoE)模型,拥有 5520 亿骨干参数,并支持最多一百万 token 的上下文长度。该模型原生支持图像和文本输入,并以自回归方式生成文本Python270
cherry-studio🍒 Cherry Studio 是一款支持多个 LLM 提供商的桌面客户端TypeScript2 K146
hello-agents📚 《从零开始构建智能体》——从零开始的智能体原理与实践教程Python46066
new-apiAI模型聚合管理中转分发系统,一个应用管理您的所有AI模型,支持将多种大模型转为统一格式调用,支持OpenAI、Claude、Gemini等格式,可供个人或者企业内部管理与分发渠道使用。🍥 A Unified AI Model Management & Distribution System. Aggregate all your LLMs into one app and access them via an OpenAI-compatible API, with native support for Claude (Messages) and Gemini formats.Go20143
JeecgBoot🔥企业级低代码平台集成了AI应用平台,帮助企业快速实现低代码开发和构建AI应用!前后端分离架构 SpringBoot,SpringCloud、Mybatis,Ant Design4、 Vue3.0、TS+vite!强大的代码生成器让前后端代码一键生成,无需写任何代码! 引领AI低代码开发模式: AI生成->OnlineCoding-> 代码生成-> 手工MERGE,显著的提高效率,又不失灵活~Java34051