股东持股变动监控系统:用Python追踪大股东增减持与筹码集中度
股东持股变动监控系统用Python追踪大股东增减持与筹码集中度大股东的持股变动是判断公司前景的重要信号——大股东增持通常意味着看好公司未来减持则可能意味着不看好。但手动追踪这些信息太麻烦了去年我搭建了一个股东持股变动监控系统自动从本地数据中提取大股东的增减持信息并结合筹码集中度指标做综合分析。系统主要用到以下数据接口持股变动数据在time/f10目录下包含十大股东、十大流通股东、基金持股等信息股票列表在base/gplist财务指标在time/f10/fi/{dm}。importjsonimportosimportpandasaspdimportnumpyasnpfromdatetimeimportdatetime data_dirD:/ig50_datadefread_top10_holders(dm):file_pathos.path.join(data_dir,time,f10,sdgd,dm)withopen(file_path,r,encodingutf-8)asf:datajson.load(f)dfpd.DataFrame(data)df.columns[dm,mc,jyrq,gdMc,cgs,zltb,gdSort,gdType,zjType]df[jyrq]pd.to_datetime(df[jyrq])returndfdefread_top10_float_holders(dm):file_pathos.path.join(data_dir,time,f10,sdltgd,dm)withopen(file_path,r,encodingutf-8)asf:datajson.load(f)dfpd.DataFrame(data)df.columns[dm,mc,jyrq,gdMc,cgs,zltb,gdSort,gdType,zjType]df[jyrq]pd.to_datetime(df[jyrq])returndfdefread_stock_list():file_pathos.path.join(data_dir,base,gplist)withopen(file_path,r,encodingutf-8)asf:datajson.load(f)dfpd.DataFrame(data)df.columns[dm,mc,dmHk,mcHk,isAH,isSH,isSZ]returndf字段方面dm是股票代码mc是股票名称jyrq是公告日期gdMc是股东名称cgs是持股数zltb是占流通股比例gdSort是股东排名gdType是股东类型机构/个人/基金等zjType是增减类型增持/减持/不变。系统的第一个分析模块是股东持股变动追踪。通过对比连续两个季度的十大股东数据可以计算出每个股东的持股变化——新进、增持、减持、退出。defanalyze_holder_changes(dm):dfread_top10_holders(dm)iflen(df)0:returnNonedatessorted(df[jyrq].unique())iflen(dates)2:returnNonelatest_datedates[-1]prev_datedates[-2]df_latestdf[df[jyrq]latest_date].set_index(gdMc)df_prevdf[df[jyrq]prev_date].set_index(gdMc)changes[]all_holdersset(df_latest.index)|set(df_prev.index)forholderinall_holders:latest_sharesdf_latest.loc[holder,cgs]ifholderindf_latest.indexelse0prev_sharesdf_prev.loc[holder,cgs]ifholderindf_prev.indexelse0iflatest_shares0andprev_shares0:action退出change-prev_shareseliflatest_shares0andprev_shares0:action新进changelatest_shareseliflatest_sharesprev_shares:action增持changelatest_shares-prev_shareseliflatest_sharesprev_shares:action减持changelatest_shares-prev_shareselse:action不变change0ifaction!不变:changes.append({gdMc:holder,prev_shares:prev_shares,latest_shares:latest_shares,change:change,action:action,latest_ratio:df_latest.loc[holder,zltb]ifholderindf_latest.indexelse0})df_changespd.DataFrame(changes)iflen(df_changes)0:df_changesdf_changes.sort_values(change,ascendingFalse)returndf_changes第二个分析模块是筹码集中度计算。筹码集中度是判断股票筹码是否集中的重要指标。如果股东人数减少、人均持股增加说明筹码在集中可能有资金在吸筹反之则说明筹码在分散。defanalyze_chip_concentration(dm):dfread_top10_float_holders(dm)iflen(df)0:returnNonedatessorted(df[jyrq].unique())results[]foriinrange(len(dates)):datedates[i]df_perioddf[df[jyrq]date]total_sharesdf_period[cgs].sum()top10_ratiodf_period[zltb].sum()max_holder_ratiodf_period[zltb].max()hhi(df_period[zltb]**2).sum()results.append({date:date,top10_ratio:top10_ratio,max_holder_ratio:max_holder_ratio,hhi:hhi,holder_count:len(df_period)})df_resultpd.DataFrame(results)iflen(df_result)2:latestdf_result.iloc[-1]prevdf_result.iloc[-2]trend集中iflatest[top10_ratio]prev[top10_ratio]else分散concentration_changelatest[top10_ratio]-prev[top10_ratio]print(f筹码集中度趋势:{trend})print(f前十大流通股东占比变化:{concentration_change:.2f}%)print(f当前前十大占比:{latest[top10_ratio]:.2f}%)print(fHHI指数:{latest[hhi]:.4f})returndf_resultHHI指数赫芬达尔指数是衡量集中度的经典指标值越大说明筹码越集中。第三个分析模块是机构持股追踪。机构持股的变化往往比散户更有参考价值。我会从股东类型中筛选出机构股东单独追踪它们的增减持行为。defanalyze_institutional_holders(dm):dfread_top10_float_holders(dm)iflen(df)0:returnNonedf_instdf[df[gdType].isin([基金,社保,保险,QFII,信托,机构])]iflen(df_inst)0:returnNonedatessorted(df_inst[jyrq].unique())latest_datedates[-1]df_latestdf_inst[df_inst[jyrq]latest_date]total_inst_ratiodf_latest[zltb].sum()inst_countlen(df_latest)print(f机构持股数量:{inst_count}家)print(f机构合计持股比例:{total_inst_ratio:.2f}%)print(f机构明细:)print(df_latest[[gdMc,cgs,zltb,gdType]].to_string(indexFalse))returndf_latest第四个分析模块是增减持信号汇总。系统会把所有分析结果汇总成一个综合信号帮助快速判断股票的筹码面是否健康。defgenerate_holder_signal(dm):changesanalyze_holder_changes(dm)chipanalyze_chip_concentration(dm)instanalyze_institutional_holders(dm)signal{dm:dm}ifchangesisnotNoneandlen(changes)0:new_entrieslen(changes[changes[action]新进])increaseslen(changes[changes[action]增持])decreaseslen(changes[changes[action]减持])exitslen(changes[changes[action]退出])signal[new_entries]new_entries signal[increases]increases signal[decreases]decreases signal[exits]exits net_action(new_entriesincreases)-(decreasesexits)signal[net_action]net_actionifnet_action2:signal[holder_signal]积极elifnet_action-2:signal[holder_signal]消极else:signal[holder_signal]中性ifchipisnotNoneandlen(chip)2:trend集中ifchip.iloc[-1][top10_ratio]chip.iloc[-2][top10_ratio]else分散signal[chip_trend]trendreturnsignal实际运行下来这个系统每天可以处理几百只股票的股东数据。系统输出的信号帮助我避开了几只大股东大幅减持的股票也捕捉到了几只机构密集增持的机会。在使用过程中有几点经验。第一机构增持的信号比减持更有参考价值因为机构增持通常需要深入研究而减持可能只是出于资金需求。第二筹码集中是一个缓慢的过程通常需要2-3个季度才能确认趋势。第三股东数据是季度披露的有一定滞后性需要结合其他指标如资金流向来验证。做投资分析股东数据是一个非常重要但经常被忽略的维度。用数据来追踪大股东和机构的行为比看消息面更靠谱。我用的数据来自本地数据引擎十大股东、十大流通股东、持股变动等数据都有完整的接口。感兴趣的朋友可以参考这个思路构建自己的股东监控体系。接口说明time/f10/sdgd/{股票代码} - 十大股东数据本地路径数据存放目录/time/f10/sdgd/{dm}主要字段公告日期(jyrq)、股东名称(gdMc)、持股数(cgs)、占总股本比例(zltb)、股东排名(gdSort)、股东类型(gdType)、增减类型(zjType)time/f10/sdltgd/{股票代码} - 十大流通股东数据本地路径数据存放目录/time/f10/sdltgd/{dm}主要字段公告日期(jyrq)、股东名称(gdMc)、持股数(cgs)、占流通股比例(zltb)、股东排名(gdSort)、股东类型(gdType)、增减类型(zjType)base/gplist - 股票列表本地路径数据存放目录/base/gplist用于获取全市场股票代码列表time/f10/fi/{股票代码} - 财务指标本地路径数据存放目录/time/f10/fi/{dm}用于结合基本面分析股东行为资料参考ig50

相关新闻

Github有没有类似GitLab CI/CD的功能

Github有没有类似GitLab CI/CD的功能

0 Preface/Foreword0.1 GitHub actionsGitLab中的CI/CD是持续集成和持续交付/部署功能,GitHub中与之相对应是GitHub Actions.1 GitHub Actions1.1 Github Actions vs GitLab CI/CD对照表如下:功能GitHub ActionsGitLab CI/CD配置文件.gitlab-ci.yml.gith…

2026/8/2 8:25:28阅读更多 →
2026主流AI论文工具深度测评|综合实力排行✅

2026主流AI论文工具深度测评|综合实力排行✅

随着高校论文查重AIGC双检机制全面普及,市面上各类AI论文工具层出不穷,但功能参差不齐、适配场景受限、安全风险各异。 结合本科毕业论文写作、修改、定稿、答辩全流程场景,对三款主流AI学术工具进行全方位实测,从模型适配度、功…

2026/8/2 8:25:28阅读更多 →
JavaScript原型链污染:原理、利用与防御实战指南

JavaScript原型链污染:原理、利用与防御实战指南

1. 从一次意外的属性覆盖说起 那天下午,我正在调试一个后台管理系统。一个普通的功能,用户可以通过表单提交一些配置项,比如主题颜色、页面标题之类的。代码逻辑很简单,前端把用户输入的JSON对象通过 Object.assign 合并到默认配…

2026/8/2 8:25:28阅读更多 →
Python对比5种跨境汇款方式:手把手分析电汇/支付宝/微信/Wise/熊猫速汇的手续费和到账金额

Python对比5种跨境汇款方式:手把手分析电汇/支付宝/微信/Wise/熊猫速汇的手续费和到账金额

文章目录一、你要解决的问题二、环境准备三、构建5种汇款方式的计费模型四、不同金额的对比五、可视化: 一张图看清最优解六、关键发现七、环境信息八、总结一、你要解决的问题 每个月在香港发工资之后,把钱汇回内地这件事,每个港漂都做过。 但你知道这…

2026/8/2 9:49:47阅读更多 →
Grove语音识别模块实战:基于Arduino的离线语音控制方案

Grove语音识别模块实战:基于Arduino的离线语音控制方案

1. 项目概述:当硬件模块遇上语音指令如果你玩过Arduino,大概率会对Grove这个生态系统不陌生。它把复杂的电路连接简化成了乐高积木式的拼接,让创客和开发者能更专注于功能实现,而不是在杜邦线和面包板上纠缠不清。今天要聊的这块“…

2026/8/2 9:49:47阅读更多 →
Dinic算法:网络最大流的“高效流水线”

Dinic算法:网络最大流的“高效流水线”

如果说Ford-Fulkerson是“一条一条地找路,找到一条就走一条”的勤劳搬运工,那么Dinic算法就是“一次规划好所有路线,然后分阶段批量运输”的物流调度专家——它用分层图和当前弧优化,将网络流的效率提升到了理论最优的极致。引言你…

2026/8/2 9:49:47阅读更多 →
从零构建Mesh网络核心:自组织网络原理与C语言实现

从零构建Mesh网络核心:自组织网络原理与C语言实现

1. 项目概述:从零构建你的Mesh网络核心 如果你正在寻找一个能让你彻底理解现代分布式网络底层通信逻辑的项目,那么亲手从零开始构建一个名为“MeshCore”的网络核心模块,无疑是一条最扎实的路径。Mesh网络,或者说网状网络&#xf…

2026/8/2 9:49:47阅读更多 →
邻接表、邻接多重表与十字链表:图存储结构的深度对比与实战选型

邻接表、邻接多重表与十字链表:图存储结构的深度对比与实战选型

1. 从“图”说起:为什么我们需要不同的存储结构? 在计算机的世界里,图(Graph)是一种极其强大的数据结构,它擅长描述实体(顶点)以及它们之间错综复杂的关系(边&#xff09…

2026/8/2 9:49:47阅读更多 →
Unity面试必备:Lua核心特性与热更新实战解析

Unity面试必备:Lua核心特性与热更新实战解析

1. 项目概述:为什么Unity面试绕不开Lua? 如果你正在准备Unity游戏开发岗位的面试,尤其是客户端开发或TA(技术美术)方向,那么“Lua语言基础”这个考点,你大概率是躲不掉的。这不仅仅是因为Lua在游…

2026/8/2 9:47:46阅读更多 →
MATLAB xcorr函数详解:从互相关原理到四大实战应用

MATLAB xcorr函数详解:从互相关原理到四大实战应用

1. 从一次信号“找茬”说起:为什么我们需要互相关几年前,我在处理一组声学传感器数据时遇到了一个棘手的问题。我有两个麦克风记录了一段相同的音频信号,理论上它们接收到的声音波形应该非常相似,只是由于麦克风位置不同&#xff…

2026/8/2 0:00:10阅读更多 →
限时公开!某头部SaaS公司内部AI模板工厂架构文档(含5类行业模板源码+性能压测报告)

限时公开!某头部SaaS公司内部AI模板工厂架构文档(含5类行业模板源码+性能压测报告)

更多请点击: https://intelliparadigm.com 第一章:AI模板批量生成的核心价值与落地全景 AI模板批量生成正从实验性工具演进为现代软件工程的关键基础设施。它通过语义理解、上下文感知与结构化约束,将重复性高、模式明确的代码/文档/配置生成…

2026/8/2 0:00:12阅读更多 →
如何快速找回消失的网页:Web Archives浏览器扩展终极指南

如何快速找回消失的网页:Web Archives浏览器扩展终极指南

如何快速找回消失的网页:Web Archives浏览器扩展终极指南 【免费下载链接】web-archives Browser extension for viewing archived and cached versions of web pages, available for Chrome, Edge and Safari 项目地址: https://gitcode.com/gh_mirrors/we/web-a…

2026/8/2 0:00:13阅读更多 →
MATLAB xcorr函数详解:从互相关原理到四大实战应用

MATLAB xcorr函数详解:从互相关原理到四大实战应用

1. 从一次信号“找茬”说起:为什么我们需要互相关几年前,我在处理一组声学传感器数据时遇到了一个棘手的问题。我有两个麦克风记录了一段相同的音频信号,理论上它们接收到的声音波形应该非常相似,只是由于麦克风位置不同&#xff…

2026/8/2 0:00:10阅读更多 →
限时公开!某头部SaaS公司内部AI模板工厂架构文档(含5类行业模板源码+性能压测报告)

限时公开!某头部SaaS公司内部AI模板工厂架构文档(含5类行业模板源码+性能压测报告)

更多请点击: https://intelliparadigm.com 第一章:AI模板批量生成的核心价值与落地全景 AI模板批量生成正从实验性工具演进为现代软件工程的关键基础设施。它通过语义理解、上下文感知与结构化约束,将重复性高、模式明确的代码/文档/配置生成…

2026/8/2 0:00:12阅读更多 →
如何快速找回消失的网页:Web Archives浏览器扩展终极指南

如何快速找回消失的网页:Web Archives浏览器扩展终极指南

如何快速找回消失的网页:Web Archives浏览器扩展终极指南 【免费下载链接】web-archives Browser extension for viewing archived and cached versions of web pages, available for Chrome, Edge and Safari 项目地址: https://gitcode.com/gh_mirrors/we/web-a…

2026/8/2 0:00:13阅读更多 →
无损视频剪辑终极指南:如何实现快速高效的多媒体处理

无损视频剪辑终极指南:如何实现快速高效的多媒体处理

无损视频剪辑终极指南:如何实现快速高效的多媒体处理 【免费下载链接】lossless-cut The swiss army knife of lossless video/audio editing 项目地址: https://gitcode.com/gh_mirrors/lo/lossless-cut 在数字媒体创作领域,视频编辑处理的质量损…

2026/8/2 1:29:34阅读更多 →
AI辅助本科论文写作:8大工具评测与高效使用指南

AI辅助本科论文写作:8大工具评测与高效使用指南

1. 本科生论文写作的AI辅助现状本科毕业论文是每个大学生必须跨越的一道坎。记得我当年写论文时,光是文献检索就花了整整两周时间,打印的参考文献堆满了半个书桌。如今AI技术的发展为学术写作带来了革命性变化,合理使用这些工具可以节省80%以…

2026/8/2 2:32:55阅读更多 →
如何快速配置大麦自动抢票系统:从零开始搭建Python抢票助手

如何快速配置大麦自动抢票系统:从零开始搭建Python抢票助手

如何快速配置大麦自动抢票系统:从零开始搭建Python抢票助手 【免费下载链接】ticket-purchase 大麦自动抢票,支持人员、城市、日期场次、价格选择 项目地址: https://gitcode.com/GitHub_Trending/ti/ticket-purchase 还在为抢不到热门演唱会门票…

2026/8/2 2:09:20阅读更多 →