【Python量化实战全攻略 #05】资金流向接口手册:主力净流入·北向资金全字段(附代码)
摘要:【Python量化实战全攻略 #05】资金流向接口手册:主力净流入·北向资金全字段(附代码) 手册定位:「数据底座手册」第 5 篇。资金面因子(主力净流入、北向聪明钱)是选股/择时的重要信号源。本篇讲 个股资金流向 + 北向资
手册定位:「数据底座手册」第 5 篇。资金面因子(主力净流入、北向聪明钱)是选股/择时的重要信号源。本篇讲个股资金流向 + 北向资金两类端点的全字段与用法;板块资金流向已在第 3 篇讲过,本文不再重复,需要时回看 #03。
接口路径取自智兔数服官网文档页已验证路径,未虚构。
1. 你将得到什么
- 单只股票当日/历史主力、散户、净流入额与净流入率怎么取;
- 全市场主力净流入排名批量拉取,做资金面选股;
- 北向资金最新概览、历史走势、个股十大成交股怎么取;
- 把资金流字段归一化(占成交额比)再入因子的代码;
- 资金流数据的 4 个坑(T+1 更新、单位、排名快照、北向口径)。
2. 取数约定
| 项 | 值 |
|---|---|
| 基础域名 | https://api.zhituapi.com |
| 鉴权 | ?token=你的token |
| 个股代码 | 000001(不带市场后缀,资金流类端点用纯代码) |
| 北向日期参数 | 周期字母,如 1=日,/ht/nbzj/bxls/1 |
个股资金流端点用纯数字代码(如
000001),与行情类{代码}.{市场}不同,注意区分。
3. 端点分组地图
| 分组 | 端点(GET) | 说明 |
|---|---|---|
| 个股资金流向(当日) | /hs/history/transaction/{代码} |
主力/散户净流入额与率 |
| 个股历史资金流 | /hs/history/transaction/{日期}/{代码} |
指定日期的历史资金流 |
| 净流入额排名 | /higg/jlr |
全市场净流入额排序 |
| 净流入率排名 | /higg/jlrl |
全市场净流入率排序 |
| 主力净流入额排名 | /higg/zljlr |
主力净流入额排序(选股核心) |
| 主力净流入率排名 | /higg/zljlrl |
主力净流入率排序 |
| 散户净流入额排名 | /higg/shzlr |
散户净流入额排序 |
| 散户净流入率排名 | /higg/shjlrl |
散户净流入率排序 |
| 北向最新概览 | /ht/nbzj/lxgl |
北向当日整体净流入 |
| 北向历史走势 | /ht/nbzj/bxls/1 |
北向历史每日净流入序列 |
| 北向历史总览 | /ht/nbzj/bxzl |
北向累计口径 |
| 沪/深股通十大成交股 | /ht/nbzj/hgts / /ht/nbzj/sgts |
北向偏好个股 |
4. 核心模板函数(自包含可跑)
import time, requests, pandas as pd
BASE = "https://api.zhituapi.com"
TOKEN = "你的token"
_MOCK = False
def _hit_key(path):
return "%s%s?token=%s" % (BASE, path, TOKEN)
def _get(path, default=None, tries=3):
url = _hit_key(path)
for i in range(tries):
try:
if _MOCK:
return default
r = requests.get(url, timeout=8)
r.raise_for_status()
return r.json()
except Exception:
if i == tries - 1:
return default
time.sleep(0.5 * (i + 1))
def fetch_stock_flow(code):
return _get("/hs/history/transaction/%s" % code, default={})
def fetch_flow_rank(kind="zljlr"):
return _get("/higg/%s" % kind, default=[])
def fetch_north_overview():
return _get("/ht/nbzj/lxgl", default={})
def fetch_north_hist(period="1"):
return _get("/ht/nbzj/bxls/%s" % period, default=[])
def to_frame(raw):
if isinstance(raw, dict):
return pd.DataFrame([raw])
return pd.DataFrame(list(raw or []))
def run_check():
global _MOCK
_MOCK = True
flow = {"代码": "600519", "主力净流入额": 1.2e8, "主力净流入率": 0.06,
"散户净流入额": -0.5e8, "成交额": 2.0e9}
rank = [{"代码": "600519", "主力净流入额": 1.2e8},
{"代码": "000001", "主力净流入额": 0.9e8}]
north = [{"日期": "2026-09-25", "北向净流入": 3.5e9},
{"日期": "2026-09-24", "北向净流入": -1.2e9}]
f = flow # 演示数据(真实调用替换为 fetch_stock_flow)
assert f["主力净流入率"] == 0.06
rk = to_frame(rank)
assert len(rk) == 2
nh = to_frame(north)
assert len(nh) == 2 and "北向净流入" in nh.columns
print("校验通过 | 个股主力净流入率=%.3f 排名条数=%d 北向序列=%d"
% (f["主力净流入率"], len(rk), len(nh)))
_MOCK = False
if __name__ == "__main__":
run_check()
5. 跑通示例
# 拉全市场主力净流入额排名前 20,做资金面初筛
rk = to_frame(fetch_flow_rank("zljlr")).sort_values("主力净流入额", ascending=False)
print(rk.head(20))
# 北向近 N 日累计
nh = to_frame(fetch_north_hist("1"))
print("北向近两日累计净流入:", nh["北向净流入"].sum())
6. 坑与注意事项
- T+1 更新:个股资金流多为盘后更新,盘中取到的可能是昨天的,做实盘信号要等收盘后。
- 单位与口径:净流入额是「元」,主力/散户是不同席位口径的拆分,别把它们相加当总净流入。
- 排名是快照:
/higg/*排名是某一时刻快照,回测要用历史资金流(/hs/history/transaction/{日期}/{代码}),别拿排名当历史序列。 - 北向口径切换:北向历史有「净流入/持有市值」等不同口径,做择时认准「净流入」序列,别混用总览的累计持有。
7. 小结与下一篇预告
资金面因子(主力净流入、北向)的数据底座就位。下一篇进入特色市场——北交所、科创板、港股通怎么取数,补足多市场覆盖。
下一篇预告:《【Python量化实战全攻略 #06】特色市场接口手册:北交所·科创板·港股通怎么取(附代码)》
8. 免责声明
本文接口路径来自官方文档,示例数据为演示用途,不构成投资建议。
关于数据来源:本文接口来自智兔数服(www.zhituapi.com)官方文档,覆盖沪深A股、指数、基金、可转债等 200+ 已验证接口路径,注册可领免费 token 做研究测试。
更多实战手册见技术博客:zhituapi.com/blog.html。
本系列《Python量化实战全攻略》共 32 篇,下一篇讲特色市场接口。
想亲自试一下?免费获取证书