基金持股数据统计分析:用Python追踪机构持仓变化与抱团效应
基金持股数据统计分析用Python追踪机构持仓变化与抱团效应基金持股数据是追踪机构动向的重要窗口。每只股票被多少基金持有、基金在增持还是减持这些信息能帮我们判断机构对某只股票的态度。我之前写了一套基金持股分析工具把全市场的基金持股数据系统地分析了一遍。数据用的是基金持股接口time/f10/jjcg/{股票代码}返回该股票最近500家左右的基金持股情况按截止日期倒序排列每周六9点更新。字段包括基金名称、持有数量、持有市值等。importjsonimportosimportpandasaspdimportnumpyasnpfromcollectionsimportdefaultdict data_dirD:/stock_datadefread_jjcg(dm):file_pathos.path.join(data_dir,time,f10,jjcg,dm)ifnotos.path.exists(file_path):returnNonewithopen(file_path,r,encodingutf-8)asf:datajson.load(f)returndatadefread_gplist():file_pathos.path.join(data_dir,base,gplist)withopen(file_path,r,encodingutf-8)asf:datajson.load(f)returndata第一个分析单只股票的基金持股变化。追踪某只股票被多少基金持有基金在增持还是减持。defanalyze_fund_holding(dm):dataread_jjcg(dm)ifnotdataorlen(data)0:returnNoneby_datedefaultdict(list)foritemindata:jzrqitem.get(截止日期,)by_date[jzrq].append(item)datessorted(by_date.keys(),reverseTrue)iflen(dates)2:returnNonelatest_datedates[0]prev_datedates[1]latest_fundsby_date[latest_date]prev_fundsby_date[prev_date]latest_namesset(f.get(基金名称,)forfinlatest_funds)prev_namesset(f.get(基金名称,)forfinprev_funds)new_inlatest_names-prev_names exitedprev_names-latest_names latest_total_volsum(f.get(持有数量,0)forfinlatest_funds)prev_total_volsum(f.get(持有数量,0)forfinprev_funds)vol_change(latest_total_vol-prev_total_vol)/prev_total_volifprev_total_vol0else0result{dm:dm,latest_date:latest_date,prev_date:prev_date,latest_fund_count:len(latest_funds),prev_fund_count:len(prev_funds),new_funds:len(new_in),exited_funds:len(exited),vol_change:vol_change}iflen(new_in)len(exited)*2andvol_change0.1:result[signal]基金大幅增持result[score]72eliflen(exited)len(new_in)*2andvol_change-0.1:result[signal]基金大幅减持result[score]33else:result[signal]基金持仓稳定result[score]52returnresult第二个分析全市场基金抱团检测。找出被最多基金持有的股票这些就是抱团股。defscan_fund_clustering(top_n30):gp_listread_gplist()results[]forgpingp_list:dmgp[股票代码]mcgp[股票名称]dataread_jjcg(dm)ifnotdataorlen(data)0:continueby_datedefaultdict(list)foritemindata:jzrqitem.get(截止日期,)by_date[jzrq].append(item)ifnotby_date:continuelatest_datemax(by_date.keys())latest_fundsby_date[latest_date]total_valuesum(f.get(持有市值,0)forfinlatest_funds)results.append({dm:dm,mc:mc,fund_count:len(latest_funds),total_value:total_value,date:latest_date})dfpd.DataFrame(results).sort_values(fund_count,ascendingFalse).head(top_n)print(基金持股数量TOP{}.format(top_n))print(df.to_string(indexFalse))returndf被基金持有数量最多的股票就是市场公认的核心资产。当这些股票的基金持有数量开始下降时说明抱团在瓦解。第三个分析基金净增持扫描。找出基金净增持最多的股票。defscan_fund_net_increase(top_n30):gp_listread_gplist()results[]forgpingp_list:dmgp[股票代码]mcgp[股票名称]resultanalyze_fund_holding(dm)ifresultisNone:continueifresult.get(score,50)65:results.append({dm:dm,mc:mc,fund_count:result[latest_fund_count],new_funds:result[new_funds],vol_change:result[vol_change],score:result[score]})dfpd.DataFrame(results).sort_values(vol_change,ascendingFalse).head(top_n)print(基金净增持TOP{}.format(top_n))print(df.to_string(indexFalse))returndf第四个分析头部基金动向追踪。专门追踪几家知名公募基金的持仓变化。deftrack_top_funds(fund_names):gp_listread_gplist()resultsdefaultdict(list)forgpingp_list:dmgp[股票代码]mcgp[股票名称]dataread_jjcg(dm)ifnotdata:continuelatest_datemax(item.get(截止日期,)foritemindata)foritemindata:ifitem.get(截止日期,)!latest_date:continuefund_nameitem.get(基金名称,)fortargetinfund_names:iftargetinfund_name:results[target].append({dm:dm,mc:mc,vol:item.get(持有数量,0),value:item.get(持有市值,0)})forfund_name,holdingsinresults.items():dfpd.DataFrame(holdings).sort_values(value,ascendingFalse).[:10]print({}最新重仓股TOP10.format(fund_name))print(df.to_string(indexFalse))returnresults几个使用经验。第一基金持股数据是季度披露的有滞后性但基金的动作往往领先股价1到2个月。第二基金持有数量变化比持有市值变化更有参考价值因为市值会随股价波动。第三头部基金的动向比小基金更准建议重点追踪易方达、中欧、景顺长城等知名公募。第四基金抱团股瓦解前会有征兆——基金数量还在增加但股价不涨了说明新基金在接盘但老基金在撤退。我用的数据来源是ig50的本地数据接口基金持股接口每周六更新覆盖500家左右的基金做这种机构持仓分析很方便。接口说明time/f10/jjcg/{股票代码} - 基金持股本地路径数据存放目录/time/f10/jjcg/{股票代码}更新频率每周六9点更新耗时约9小时数据格式[{}…]按截止日期倒序主要字段截止日期、基金名称、持有数量股、持有市值元等数据覆盖每只股票最近500家左右的基金持股情况资料参考ig50

相关新闻

【PID优化】PSO SSA GWO三种智能算法优化PID参数整定

【PID优化】PSO SSA GWO三种智能算法优化PID参数整定

✅作者简介:热爱科研的Matlab仿真开发者,擅长数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。🍎 往期回顾关注个人主页:Matlab科研工作室🍊个人信条:格物致知,完整Matlab代码及仿真咨询…

2026/11/1 20:19:16 阅读更多 →
先看边界再看参数:OCR文字识别接口的适用场景与实现细节

先看边界再看参数:OCR文字识别接口的适用场景与实现细节

先聊边界,再聊参数 通常我们对 OCR 接口的预期是"给一张图,吐出文字"。但对工程来说,真正决定是否能落地的不是识别精度,而是接口的能力边界:输入怎么传、输出怎么排、在什么限制下运行。这篇笔记围绕 OCR 文…

2026/11/1 20:19:18 阅读更多 →
抖音AI账号商业变现路径图谱(附ROI测算表):3种合规变现模式,第2种已被头部MCN内部封测

抖音AI账号商业变现路径图谱(附ROI测算表):3种合规变现模式,第2种已被头部MCN内部封测

更多请点击: https://codechina.net 第一章:抖音AI账号商业变现路径图谱(附ROI测算表):3种合规变现模式,第2种已被头部MCN内部封测 抖音平台对AI生成内容的商业化监管持续升级,2024年Q2起已明确…

2026/11/1 20:19:24 阅读更多 →

最新新闻

Electron桌面应用开发实战:从环境搭建到打包发布全流程

Electron桌面应用开发实战:从环境搭建到打包发布全流程

做前端这些年,我大部分时间都在跟浏览器标签页打交道,直到第一次把桌面应用跑起来,才发现原来自己一直被限制在地址栏和刷新按钮围起来的框框里。Electron这个词,最开始是在某段时间频繁出现在同事的讨论里,一个用HTML…

2026/11/2 0:25:10 阅读更多 →
滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

简介:亚太天能T109滑盖智能锁产品说明书是一份PDF格式的官方技术文档,主要面向智能锁安装人员、终端用户及售后维护者,帮助快速掌握产品安装、配置与常见故障处理。全包仅1个PDF文件,大小4.37MB,内容结构清晰&#xff…

2026/11/2 10:46:11 阅读更多 →
PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

上个月我在调试一台高速AGV的驱动系统,整车要求空载跑到8m/s,电机转速已经拉到额定点,驱动器的输出电压也顶到了母线电压极限附近。再往上踩速度指令,转速纹丝不动,三相电流反而开始震荡。那会儿我的第一反应就是&…

2026/11/2 10:47:40 阅读更多 →
C++核心知识点:从内存管理到STL的实战指南

C++核心知识点:从内存管理到STL的实战指南

C 这门语言我前前后后折腾了十几年,用它写过嵌入式驱动、做过游戏服务端,也搭过基础组件库。每次看到新人一头扎进"C 核心知识点"这个搜索词,我其实挺感慨的——这门语言的难点从来不是语法多,而是知识点之间的耦合太深…

2026/11/2 1:16:51 阅读更多 →
T109滑盖智能锁怎么装?安装调试与故障排查全攻略

T109滑盖智能锁怎么装?安装调试与故障排查全攻略

简介:亚太天能T109滑盖智能锁产品说明书以PDF格式发布,适合智能锁用户、安装人员与售后维修人员阅读。内容围绕T109系列指纹密码刷卡锁展开,先介绍前面板、后面板、锁体、机械钥匙、电池盒盖等部件名称与功能,再给出完整安装步骤&…

2026/11/2 10:46:31 阅读更多 →
LLM知识降熵:从信息垄断到理解权下放

LLM知识降熵:从信息垄断到理解权下放

你有没有过这种经历:翻开源码注释、论文摘要或者一份专业报告,每个字都认识,连在一起却像天书。想找人聊聊,身边要么没人懂,要么懂的懒得跟你解释。后来我试着把同一段内容丢给一个大语言模型,几秒钟之后&a…

2026/11/2 10:46:26 阅读更多 →

日新闻

周新闻

月新闻