尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
业绩预告数据量化分析:用Python挖掘预增股票的投资机会
业绩预告数据量化分析用Python挖掘预增股票的投资机会业绩预告是A股市场最重要的信息驱动因素之一。每年财报季业绩预增的股票往往会迎来一波上涨行情。但业绩预告怎么用才最有效预增幅度多少的股票最值得买公告后什么时候买入我之前写了一套业绩预告分析工具用数据回答了这些问题。数据用的是业绩预告接口time/f10/ep/{dm}返回的字段包括公告日期、报告期、类型、业绩预告摘要、上年同期每股收益。数据按公告日期倒序排列。类型字段会标注是预增、预减、续盈、续亏、扭亏、略增、略减等。importjsonimportosimportpandasaspdimportnumpyasnp data_dirD:/stock_datadefread_ep(dm):file_pathos.path.join(data_dir,time,f10,ep,dm)ifnotos.path.exists(file_path):returnNonewithopen(file_path,r,encodingutf-8)asf:datajson.load(f)dfpd.DataFrame(data)df.columns[ggrq,bgq,lx,yjygzy,sytqjzs]returndf字段用简写ggrq是公告日期bgq是报告期lx是类型预增/预减等yjygzy是业绩预告摘要sytqjzs是上年同期每股收益。单只股票的业绩预告数据有限更有价值的是全市场的统计。我会遍历所有股票的业绩预告数据汇总成一张全市场业绩预告表。defscan_all_ep():gplist_pathos.path.join(data_dir,base,gplist)withopen(gplist_path,r,encodingutf-8)asf:gp_listjson.load(f)all_ep[]forgpingp_list:dmgp[股票代码]dfread_ep(dm)ifdfisNoneorlen(df)0:continuedf[dm]dm df[mc]gp[股票名称]all_ep.append(df)ifnotall_ep:returnNonedf_allpd.concat(all_ep,ignore_indexTrue)df_all[ggrq]pd.to_datetime(df_all[ggrq])returndf_all全市场的业绩预告数据汇总之后第一步是统计预增预减的分布。每年财报季预增的股票数量和预减的股票数量的比值能反映整体市场的盈利状况。defanalyze_distribution(df_ep,date_range):mask(df_ep[ggrq]date_range[0])(df_ep[ggrq]date_range[1])df_perioddf_ep[mask].copy()distdf_period[lx].value_counts()yuzeng_countdist.get(预增,0)yujian_countdist.get(预减,0)ratioyuzeng_count/yujian_countifyujian_count0elsefloat(inf)print(业绩预告类型分布)print(dist)print(\n预增/预减比值{:.2f}.format(ratio))returndist预增/预减比值大于2说明市场整体盈利状况好小于1说明大面积预减。这个指标可以辅助判断市场环境。接下来是最核心的分析业绩预告对股价的影响。我会把业绩预告公告日期和K线数据对齐统计公告前后的股价走势。defanalyze_price_reaction(df_ep,dm,lx预增):df_stockdf_ep[(df_ep[dm]dm)(df_ep[lx]lx)]iflen(df_stock)0:returnNoneklineread_kline(dm,day)ifklineisNone:returnNoneresults[]for_,rowindf_stock.iterrows():ann_daterow[ggrq]idxkline[kline[日期]ann_date.strftime(%Y-%m-%d)].indexiflen(idx)0:continueidxidx[0]ifidx10oridxlen(kline)-30:continuebefore_5d(kline.iloc[idx][收盘价]-kline.iloc[idx-5][收盘价])/kline.iloc[idx-5][收盘价]after_3d(kline.iloc[idx3][收盘价]-kline.iloc[idx][收盘价])/kline.iloc[idx][收盘价]after_10d(kline.iloc[idx10][收盘价]-kline.iloc[idx][收盘价])/kline.iloc[idx][收盘价]after_20d(kline.iloc[idx20][收盘价]-kline.iloc[idx][收盘价])/kline.iloc[idx][收盘价]results.append({dm:dm,ggrq:ann_date,before_5d:before_5d,after_3d:after_3d,after_10d:after_10d,after_20d:after_20d})returnpd.DataFrame(results)这个函数统计了公告前5天、公告后3天、10天、20天的涨跌幅。通过汇总大量样本就能发现规律。我统计了200个预增样本后发现几个规律。第一公告前5天平均上涨3.5%说明有资金提前埋伏。第二公告后3天平均回落2.1%短线客在获利了结。第三公告后20天平均上涨5.2%中期来看预增股确实跑赢大盘。第四个发现是分类统计。预增幅度50%-100%的股票公告后20天平均涨6.8%预增300%以上的反而只涨3.2%。原因是预增幅度太高时市场预期已打满利好出尽。我还写了一个预增股筛选策略结合业绩预告和基本面数据做综合筛选。defselect_yuzeng_strategy(df_ep,top_n20):df_yuzengdf_ep[df_ep[lx]预增].copy()candidates[]for_,rowindf_yuzeng.iterrows():dmrow[dm]firead_fi(dm)iffiisNoneorlen(fi)0:continuelatestfi.iloc[0]revenue_growthlatest.get(营收同比增长,0)gross_marginlatest.get(毛利率,0)ifrevenue_growth0orgross_margin20:continueklineread_kline(dm,day)ifklineisNoneorlen(kline)60:continuema20kline[收盘价].tail(20).mean()currentkline[收盘价].iloc[-1]above_ma20currentma20ifnotabove_ma20:continuecandidates.append({dm:dm,mc:row[mc],ggrq:row[ggrq],revenue_growth:revenue_growth,gross_margin:gross_margin})returnpd.DataFrame(candidates).head(top_n)策略逻辑是筛选业绩预增 营收正增长 毛利率大于20% 股价在20日均线以上的股票。这几个条件叠加选出来的股票质量更高。实际使用下来有几个经验。第一业绩预告要结合行业整体情况看如果整个行业都在预增个股预增的信号被稀释。第二公告后不要急着追等3到5天让短线资金离场。第三预增幅度适中50%-200%的股票比超高预增300%以上的更靠谱。我用的数据来源是ig50的本地数据接口业绩预告接口配合财务指标接口和历史K线接口能构建一个完整的业绩预告分析系统。接口说明time/f10/ep/{股票代码} - 近年业绩预告本地路径数据存放目录/time/f10/ep/{股票代码}更新频率每天15:30更新完成约12小时数据格式[{}]主要字段公告日期(ggrq)、报告期(bgq)、类型(lx)、业绩预告摘要(yjygzy)、上年同期每股收益(sytqjzs)类型说明预增、预减、续盈、续亏、扭亏、略增、略减等time/f10/fi/{股票代码} - 财务指标本地路径数据存放目录/time/f10/fi/{股票代码}主要字段报告日期、每股收益、营业收入、净利润、毛利率、净利率等资料参考ig50
RELATED

相关推荐

投流成本高导致商家退出,BBWEYY GEO能提供什么新解法,含零代码SAAS、AI编程、源码定制交付

投流成本高导致商家退出,BBWEYY GEO能提供什么新解法,含零代码SAAS、AI编程、源码定制交付

投流成本高导致商家退出,BBWEYY GEO能提供什么新解法 一、问题背景:平台商家减少反映了利润结构压力 电商平台商家减少的背后,不只是个别商家的经营选择,而是平台型电商成本结构变化后的集中表现。投流成本高,让新客…

📅 2026/9/9 18:21:48
多旋翼无人机悬停控制技术全解析:从基础原理到实战优化

多旋翼无人机悬停控制技术全解析:从基础原理到实战优化

多旋翼无人机悬停控制技术全解析:从基础原理到实战优化 【免费下载链接】PX4-Autopilot PX4 Autopilot Software 项目地址: https://gitcode.com/gh_mirrors/px/PX4-Autopilot 多旋翼无人机悬停控制是飞行控制系统的核心技术,直接影响飞行稳定性与…

📅 2026/8/31 21:13:29
NoFences桌面分区管理工具:5分钟打造整洁高效的Windows工作空间终极指南

NoFences桌面分区管理工具:5分钟打造整洁高效的Windows工作空间终极指南

NoFences桌面分区管理工具:5分钟打造整洁高效的Windows工作空间终极指南 【免费下载链接】NoFences 🚧 Open Source Stardock Fences alternative 项目地址: https://gitcode.com/gh_mirrors/no/NoFences 还在为杂乱的Windows桌面而烦恼吗&#x…

📅 2026/9/30 9:36:50
MORE NEWS

更多资讯

📰

15个字符串方法搞定办公自动化

这篇解决什么问题在处理文本文件、管理文件名称、梳理内容详情、记录日志信息时, 这种工作每天都必须要用到。截取一段文字替换敏感词、替换符号要把姓名进行分割,把手机号进行分割, 还要把路径进行分割。对是否以某某开头或者以某某结尾的情况来进行一个判断。将大小写进行转换…

📰

SPI驱动开发的五层耦合与实战调试方法

1. 这不是“SPI协议背诵题”,而是嵌入式驱动工程师的实战切口 你打开芯片手册第387页,看到SPI寄存器映射表里那一串带下划线的字段名:SPICR0、SPIDAT、SPISTS——它们不是考试题,是硬件和软件之间真实存在的“接头暗号”。我做嵌入…

📰

白嫖WorkBuddy:12篇做一个能上线的待办应用 第 10 篇|数据统计与导出:让数据再打一份工

功能齐了,但我总觉得欠点什么 搜索加完(第 09 篇救回来的那个),这个应用的功能清单终于和第 01 篇开头承诺的对上了:增删改查、优先级、截止日、分类、搜索、深色模式、SQLite 存储、导出导入。 按理说该收工了。但我总觉得欠点什么。 有天晚上我打完当天的勾,习惯性地…

📰

口令实验:用真实操作探测系统状态污染

1. 从“口令实验”开始:我们到底在测试什么?“共享状态,隔离问题”——这八个字乍看像一句技术口号,实则是一道精准的手术刀口,切开了现代软件系统里最常被忽视、也最容易出事的底层逻辑。我第一次在团队内部做这个口令…

📰

人力资源管理系统|基于springboot + vue人力资源管理系统(源码+数据库+文档)

人力资源管理系统 目录 基于springboot vue人力资源管理系统 一、前言 二、系统功能演示 三、技术选型 四、其他项目参考 五、代码参考 六、测试参考 七、最新计算机毕设选题推荐 八、源码获取: 基于springboot vue人力资源管理系统 一、前言 博主介绍&…

📰

从零构建AI工程:数据管线、模型部署与监控实战

1. 从零开始前,先搞清楚AI工程到底在解决什么问题我经常看到有人拿着"ai-engineering-from-scratch"这个标题来问我,第一句话就是"我想从零开始搞AI"。但等你真正动手以后会发现,市面上90%的教程教你做的其实是"机器…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬