风险提示:本文仅用于技术学习与策略验证,不构成任何投资建议。股市有风险,投资需谨慎。资金流数据基于公开交易统计,口径多样、存在滞后与误差,历史规律不代表未来表现,请独立审慎决策。
前言
上一篇讲了"主力资金流向"的原理和坑。这篇直接落地:用Python抓取每日主力资金净流入,写一个能识别"真吸筹还是假出货"的量化判断脚本。
你复制就能跑,跑完你就掌握了一套去伪存真的资金流分析方法。
一、思路:怎么判断"真吸筹还是假出货"?
光看"净流入"不行,我们把四个维度放在一起交叉判断:
| 维度 | 健康吸筹信号 | 危险出货信号 |
|---|---|---|
| 资金流 | 连续多日净流入 | 单日大额净流入后转流出 |
| 量价 | 放量上涨 | 放量滞涨/缩量上涨 |
| 位置 | 相对低位 | 相对高位 |
| 换手 | 换手适中 | 换手过高(疑似对倒) |
核心逻辑:单一指标会骗人,多维度交叉才靠谱。我们给每个维度打分,合成一个"吸筹可信度"。
二、环境准备
pipinstallakshare pandas
akshare免费覆盖A股资金流数据。接口若有变动,以官方文档为准。
三、完整代码(可直接复制运行)
importpandasaspdimportnumpyasnp# ---------- 1. 抓取个股历史资金流 ----------defget_fund_flow(code="600519"):""" 获取个股每日主力资金净流入(单位:元) 返回:日期、主力净流入、收盘价、成交量 """importakshareasak df=ak.stock_individual_fund_flow(stock=code,market="sh")# 字段示例:日期 主力净流入-净额 收盘价 换手率 成交量 成交额df=df.rename(columns={"主力净流入-净额":"main_net","收盘价":"close","换手率":"turnover","涨跌幅":"pct_chg",})df["date"]=pd.to_datetime(df["日期"])df=df[["date","main_net","close","turnover","pct_chg"]].sort_values("date")returndf# ---------- 2. 多维打分:真吸筹 vs 假出货 ----------defscore_signal(df,lookback=5):""" 基于最近 lookback 天做交叉判断,返回"吸筹可信度"打分(0-100) """df=df.tail(lookback).copy()score=50# 中性起点# 维度1:资金持续性(连续净流入加分)df["net_pos"]=df["main_net"]>0consecutive_pos=0forflaginreversed(df["net_pos"].tolist()):ifflag:consecutive_pos+=1else:breakscore+=min(consecutive_pos*5,15)# 最多+15# 维度2:量价配合(放量上涨加分)pct_chg_mean=df["pct_chg"].mean()main_net_sum=df["main_net"].sum()ifpct_chg_mean>0andmain_net_sum>0:score+=10# 维度3:位置判断(距区间低点越近越像吸筹)low=df["close"].min()high=df["close"].max()pos_ratio=(df["close"].iloc[-1]-low)/max(high-low,1e-9)ifpos_ratio<0.4:score+=10# 低位,加分elifpos_ratio>0.85:score-=10# 高位,警惕出货# 维度4:换手(过高疑似对倒)turnover_mean=df["turnover"].mean()ifturnover_mean>15:score-=10returnround(max(0,min(score,100)),1)# ---------- 3. 结果解读 ----------definterpret(score):ifscore>=70:return"真吸筹概率较高(可作研究观察,不构成建议)"elifscore>=50:return"信号中性,需结合基本面进一步验证"else:return"疑似高位出货/信号偏弱,谨慎回避"# ---------- 4. 主流程 ----------if__name__=="__main__":code=input("输入股票代码(如600519): ")or"600519"data=get_fund_flow(code)score=score_signal(data,lookback=5)print(f"\n==={code}资金流吸筹可信度分析 ===")print(f"可信度得分:{score}/100")print(f"结论:{interpret(score)}")print("\n最近5日资金流:")print(data.tail(5).to_string(index=False))四、代码逐段解读
- 数据获取:
stock_individual_fund_flow拿个股逐日主力资金流,统一重命名字段。 - 持续性打分:数最近连续几天净流入,越连续得分越高——因为主力建仓是缓慢持续的,不是一天的事。
- 量价配合:价格在涨、资金在流入,才是健康组合;价涨量不涨就要怀疑。
- 位置判断:低位的放量更可能是吸筹,高位的放量更可能是出货。
- 换手预警:换手率过高,警惕对倒制造的假象。
五、这套代码能直接赚钱吗?——不能,但有用
我必须诚实告诉你:
它不是"选股神器",而是一套"过滤/验证工具"。它帮你:
- 排除那些"看着净流入、其实在出货"的票
- 把资金流信号从"玄学"变成"可打分的客观判断"
- 作为多因子体系里的一个重要风控维度
真正要提高胜率,还得把它和**趋势、估值、舆情(前几篇讲过)**组合起来,并经过样本外回测验证。
六、进阶方向
- 全市场扫描:改成批量遍历所有股票,选出"高可信吸筹"候选池
- 接入龙虎榜:结合龙虎榜席位数据,看游资还是机构
- 历史回测:把"高可信吸筹"信号做成策略,回测它的真实胜率
结尾互动
跑通了吗?把你代码跑出来的"可信度得分"打在评论区,看看你的票属于哪一类。下期继续安排硬核实战。
风险提示:本文为技术学习内容,不构成任何投资建议。资金流分析存在局限与失效风险,股市有风险,入市需谨慎。