【Python量化实战全攻略 #12】资金流因子手册:主力、北向因子构建(附代码)
摘要:【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. 坑与注意事项
- T+1 延迟:个股资金流盘后更新,做实盘要用收盘后数据。
- 排名快照:
/higg/*是时点排名,回测要取历史资金流,别拿排名当序列。 - 主力定义漂移:不同平台「主力」阈值不同,跨源比较要先统一口径。
- 噪声大:资金流日度波动大,建议用 5/20 日平滑或排名。
7. 小结与下一篇预告
资金流因子就位,基本面+资金面四维初步成型。下一篇讲动量/反转因子——用历史K线算过去 N 日收益。
下一篇预告:《【Python量化实战全攻略 #13】动量反转因子手册:过去N日收益怎么算(附代码)》
8. 免责声明
本文为因子构建方法示例,演示数据为虚构,不构成投资建议。
关于数据来源:本文资金流因子所需的接口来自智兔数服(www.zhituapi.com)官方文档(详见本系列 #05),覆盖 200+ 已验证路径,注册可领免费 token 做研究测试。
更多实战手册见技术博客:zhituapi.com/blog.html。
本系列《Python量化实战全攻略》共 32 篇,下一篇讲动量反转因子。
想亲自试一下?免费获取证书