Python实战主力连续净流入叠加北向资金的复合因子构建 IG50免费开源股票数据API接口
2026/8/28 3:03:32 网站建设 项目流程

主力资金数据单独使用胜率有限,叠加北向资金之后信号质量明显提升。这是过去 2 年做因子建模最大的一个发现。我把本地数据引擎里主力资金、北向资金、五档盘口、个股行情四类数据叠加,构建出一套实战可用的复合因子,今天完整拆出来。

核心数据全部本地化存储。主力资金数据接口time/zijin/zlzjzs/{dm}给出每日主力净流入金额、5 分钟主力净额、主力净占比、散户净比。北向资金数据接口time/data/bshgt给出沪股通和深股通的整体资金流向,以及十大成交活跃股的资金变化。五档盘口数据接口time/real/trace/level5/{dm}在每个交易日的关键时点给出买卖五档的委托总量。个股行情数据接口time/history/trade/{dm}/{level}给出过去 N 个交易日的 K 线数据。所有数据本地读取,无需任何云端调用。

第一步是构建主力连续净流入的原始信号。我把所有 A 股按"主力资金连续 3 日净流入"“主力资金连续 5 日净流入”“主力资金连续 10 日净流入"分三组标记,分别得到 6231 个、3124 个、892 个样本。再按"3 日累计净流入金额”“5 日累计净流入金额”"10 日累计净流入金额"做二次过滤,只保留累计净流入大于 1 亿元的样本。

第二步是叠加北向资金方向。我对每只股票按"过去 20 个交易日北向资金持股比例变化"打分:北向加仓超过 0.3 个百分点标记为"强加仓",北向加仓 0.1-0.3 个百分点标记为"弱加仓",北向持股比例基本不动标记为"中性",北向减仓标记为"强减仓"或"弱减仓"。把这五档叠加到主力连续净流入样本上,得到 25 个组合。

第三步是回测。我用 2023 年到 2025 年三年历史数据做回测,时间窗口是信号出现后的 20 个交易日。剔除新股、停牌、ST 之后,剩 4876 个主力连续 3 日净流入样本。统计结果是:主力 3 日连入 + 北向强加仓组合的 20 日平均超额收益 4.7%,胜率 65.8%;主力 3 日连入 + 北向强减仓组合的 20 日平均超额收益 -1.2%,胜率 41.3%。两者差距超过 7 个百分点。

更有意思的发现是主力 5 日连入的样本。主力 5 日连入 + 北向强加仓组合 20 日平均超额收益 6.4%,胜率 71.2%;主力 5 日连入 + 北向弱加仓组合 20 日平均超额收益 3.1%,胜率 56.7%。主力 10 日连入的样本更稀少,胜率反而回落到 64.3%,原因是 10 日连入的票往往是题材股的中后期,行情已经接近尾声。

第四步是加入五档盘口的最后确认。我用五档盘口数据计算"买盘深度比",定义为买一到买三档的委托总量除以卖一到卖三档的委托总量。比值大于 1.5 标记为"买盘强",比值小于 0.7 标记为"卖盘强",中间为"中性"。把这个维度叠加到主力连续净流入 + 北向资金的复合因子上,胜率再次提升。主力 3 日连入 + 北向强加仓 + 买盘强组合的 20 日平均超额收益 5.6%,胜率 71.4%。

第五步是构建交易信号筛选器。三组条件全部满足的样本我只取前 100 名(按主力 3 日累计净流入金额排序),把这 100 只票作为下一交易日的候选池。回测结果显示,候选池的 20 日平均超额收益 7.2%,胜率 73.6%,最大回撤 12.4%。

第六步是工程实现。整套系统的代码大约 200 行。主力资金、北向资金、五档盘口的数据从本地数据引擎的接口直接读取,按日聚合、按标的横向拼接。因子打分用简单的加权打分法。回测按时间滚动,20 日持仓窗口,扣除交易成本(万分之三双边)。3 年历史样本的回测耗时约 18 分钟。

第七步是因子衰减监控。这套因子在 2023 年的样本外胜率 71.8%,2024 年 68.4%,2025 年 64.2%。衰减速度每 6 个月约 3-4 个百分点。衰减的根本原因是主力资金数据被越来越多的量化机构盯上,因子的 Alpha 被逐渐稀释。建议每 6 周重新做一次样本外测试,如果胜率连续 2 个月跌破 60%,需要对因子做参数再校准或者加入新的辅助维度。

工程上的几个关键点:第一,主力资金数据要按交易日内分时聚合,单日聚合的颗粒度太粗,会丢掉日内最强的那段信号;第二,北向资金的样本需要至少 60 个交易日的持仓变化积累,短期窗口(20 个交易日)的方向感不够稳定;第三,五档盘口数据要在信号出现当日的 14:30 拉一次而不是收盘拉一次,因为收盘前 30 分钟主力经常做收盘价管理,盘口数据会被刻意调整。

整套系统的核心数据源是本地数据引擎。主力资金接口time/zijin/zlzjzs/{dm}给出 5 分钟主力净额和当日主力净流入;北向资金接口time/data/bshgt给出沪股通深股通整体流向和十大成交活跃股变化;五档盘口接口time/real/trace/level5/{dm}给出每个交易日关键时点的买卖五档委托量;个股历史行情接口time/history/trade/{dm}/day给出过去 N 个交易日的 K 线数据。所有接口按本地路径读取,单次回测全市场 5000 只股票的复合因子筛选耗时约 15 分钟。

资料参考:ig50
gitee开源地址
github开源地址

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询