← 返回博客列表

【Python量化实战全攻略 #12】资金流因子手册:主力、北向因子构建(附代码)

2026年10月16日 08:39 · 智兔数服 · Python量化实战全攻略

摘要:【Python量化实战全攻略 #12】资金流因子手册:主力、北向因子构建(附代码) 手册定位:模块二第 4 篇。资金流因子引入「钱往哪去」的维度——主力净流入率与北向持股变化。它和基本面因子低相关,能补足情绪面。 数

手册定位:模块二第 4 篇。资金流因子引入「钱往哪去」的维度——主力净流入率与北向持股变化。它和基本面因子低相关,能补足情绪面。
数据来源复用 #05 资金流向(个股资金流 + 北向)。

1. 你将得到什么

  • 主力净流入率、北向净流入两个资金面因子的算法;
  • 把资金流归一化再入因子的写法;
  • 主力 vs 北向的合成资金流因子;
  • 资金流因子的 4 个坑(T+1 延迟、排名快照、主力定义漂移、噪声大)。

2. 取数约定(复用)

因子 字段 来源端点 见
主力净流入率 主力净流入率 /higg/zljlr、/hs/history/transaction #05
北向净流入 北向每日净流入 /ht/nbzj/bxls/1 #05

3. 数据来源(复用,不重复罗列)

详见 #05 资金流向接口手册(个股资金流 /higg/*、/hs/history/transaction,北向 /ht/nbzj/*)。

4. 核心模板函数(自包含可跑)

import pandas as pd

_MOCK = True


def build_flow(df):
    out = df.copy()
    out["主力_s"] = out["主力净流入率"].rank(pct=True)
    out["北向_s"] = out["北向净流入额"].rank(pct=True)
    out["资金流分"] = out[["主力_s", "北向_s"]].mean(axis=1)
    return out


def run_check():
    df = pd.DataFrame([
        {"代码": "600519", "主力净流入率": 0.06, "北向净流入额": 1.2e8},
        {"代码": "000001", "主力净流入率": -0.02, "北向净流入额": -0.5e8},
        {"代码": "600036", "主力净流入率": 0.03, "北向净流入额": 0.8e8},
    ])
    f = build_flow(df)
    assert f["资金流分"].between(0, 1).all()
    print("校验通过 | 资金流分:", f["资金流分"].round(2).tolist())
    return f


if __name__ == "__main__":
    run_check()

5. 跑通示例

f = run_check()
print(f.sort_values("资金流分", ascending=False)[["代码", "资金流分"]])

6. 坑与注意事项

  1. T+1 延迟:个股资金流盘后更新,做实盘要用收盘后数据。
  2. 排名快照:/higg/* 是时点排名,回测要取历史资金流,别拿排名当序列。
  3. 主力定义漂移:不同平台「主力」阈值不同,跨源比较要先统一口径。
  4. 噪声大:资金流日度波动大,建议用 5/20 日平滑或排名。

7. 小结与下一篇预告

资金流因子就位,基本面+资金面四维初步成型。下一篇讲动量/反转因子——用历史K线算过去 N 日收益。

下一篇预告:《【Python量化实战全攻略 #13】动量反转因子手册:过去N日收益怎么算(附代码)》

8. 免责声明

本文为因子构建方法示例,演示数据为虚构,不构成投资建议。


关于数据来源:本文资金流因子所需的接口来自智兔数服(www.zhituapi.com)官方文档(详见本系列 #05),覆盖 200+ 已验证路径,注册可领免费 token 做研究测试。
更多实战手册见技术博客:zhituapi.com/blog.html。
本系列《Python量化实战全攻略》共 32 篇,下一篇讲动量反转因子。

想亲自试一下?免费获取证书