首页
/ Vibe-Trading 沪深港通资金流向分析(Stock Connect Flow):北向/南向信号框架与实战实现

Vibe-Trading 沪深港通资金流向分析(Stock Connect Flow):北向/南向信号框架与实战实现

2026-09-09 19:09:09作者:宣聪麟

沪深港通(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 仓库则提供了真实数据获取的实现——NorthboundFlowToolnorthbound_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 南向投资三大模式

  1. 股息率套利:内地资金买入港股银行/电信股以获取更高股息率——由于 H 股价格通常更低,其股息率常比对应 A 股高 2-3 个百分点;
  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.yamlml_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_datestart_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(净成交额)、buysell,可用于计算北向 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 中的落地路径

综合以上内容,把该技能投入实战的完整链路是:

  1. 数据获取:通过 get_northbound_flow 工具(northbound_tool.py)拿到沪深通道实时与历史净流入;通过 Tushare moneyflow_hsgthsgt_top10stock_hsgt 补充南向、Top10 明细与标的清单(参考 沪深港通资金流向 等三篇参考文档);
  2. 信号计算:套用第 2、3、4 节的 northbound_signal / northbound_trend / southbound_signal / AH 溢价分档函数,产出各维度状态;
  3. 综合评分:按第 5 节五维评分卡汇总为 -10~+10 的 connect_score,作为跨境风险偏好的单一度量;
  4. 结构化输出:按第 7 节模板生成带单位、带日期、带数据源标注的分析报告,若数据缺失则按 playbook 纪律如实声明数据缺口(a-share-money-flow.md),绝不凭空填补;
  5. 可选的定时调度:该技能天然适配每日收盘后的复盘节奏(playbook 的 suggested_schedule 为工作日 19:00 亚洲/上海时区),可作为 Vibe-Trading 定时研究管线的一个环节。

从研究框架到真实数据,再到可复现的报告输出,这套链路覆盖了跨境资金流分析的完整闭环,可直接在 Vibe-Trading 的 Agent 工作流中配置与运行。

登录后查看全文
热门项目推荐
相关项目推荐

项目优选

收起
ops-transformerops-transformer
本项目是CANN提供的transformer类大模型算子库,实现网络在NPU上加速计算。
C++
1.16 K
2.78 K
kernelkernel
deepin linux kernel
C
34
18
docsdocs
暂无描述
Markdown
904
5.83 K
ops-nnops-nn
本项目是CANN提供的神经网络类计算算子库,实现网络在NPU上加速计算。
C++
932
1.86 K
pytorchpytorch
作为 Ascend for PyTorch 社区的核心组件,TorchNPU 是昇腾专为 PyTorch 打造的深度学习适配插件,使 PyTorch 框架能够直接调用昇腾 NPU,为开发者提供昇腾 AI 处理器的超强算力。
Python
862
1.36 K
jiuwenswarmjiuwenswarm
JiuwenSwarm 是一款基于openJiuwen开发的智能AI Agent,它能够将大语言模型的强大能力,通过你日常使用的各类通讯应用,直接延伸至你的指尖。
Python
3.95 K
1.03 K
ops-mathops-math
本项目是CANN提供的数学类基础计算算子库,实现网络在NPU上加速计算。
C++
1.38 K
1.47 K
kernelkernel
openEuler内核是openEuler操作系统的核心,既是系统性能与稳定性的基石,也是连接处理器、设备与服务的桥梁。
C
535
606
AscendNPU-IRAscendNPU-IR
AscendNPU-IR是基于MLIR(Multi-Level Intermediate Representation)构建的,面向昇腾亲和算子编译时使用的中间表示,提供昇腾完备表达能力,通过编译优化提升昇腾AI处理器计算效率,支持通过生态框架使能昇腾AI处理器与深度调优
C++
549
398
leetcodeleetcode
🔥LeetCode solutions in any programming language | 多种编程语言实现 LeetCode、《剑指 Offer(第 2 版)》、《程序员面试金典(第 6 版)》题解
Markdown
77
23