⚠️ 风险提示

本文及本程序仅供学习交流使用,不构成任何投资建议。

股市有风险,投资需谨慎!据此操作,风险自担。作者不对使用本程序产生的任何盈亏负责。

📖 程序介绍

这是祖蛙指挥部根据"稳定分红+年线月线低位+日线企稳"的三道筛选逻辑开发的选股工具,可以从A股5000多只股票中筛选出约20只底部优质股。

三道筛选逻辑

5000+只股票 ↓ 第一道筛选(稳定分红)→ 200-300只 ↓ 第二道筛选(年线月线低位)→ 几十只 ↓ 第三道筛选(日线企稳)→ 20只左右

🔧 程序下载

版本一:Python版(推荐)

适用人群:会Python的投资者

功能特点

  • 使用AKShare获取实时数据
  • 自动计算综合评分
  • 支持导出CSV
  • 可自定义筛选参数

使用方法

# 1. 安装依赖 pip install akshare pandas -i https://pypi.tuna.tsinghua.edu.cn/simple # 2. 下载脚本(见下方代码) # 3. 运行 python3 zuwa_screener_simple.py

版本二:Bash版(备用)

适用人群:不会Python或环境受限的用户

功能特点:纯Bash脚本,无需Python,使用curl获取实时数据

🐍 Python版完整代码

#!/usr/bin/env python3 # -*- coding: utf-8 -*- """ 祖蛙三道筛选程序 - 底部选股工具 ⚠️ 免责声明:本程序仅供学习交流使用,不构成投资建议 """ import akshare as ak import pandas as pd from datetime import datetime import warnings warnings.filterwarnings('ignore') print(""" ╔══════════════════════════════════════════════════════════════════╗ ║ 🐸 祖蛙三道筛选程序 v1.0 ║ ║ 底部选股工具 - 仅供学习交流 ║ ╚══════════════════════════════════════════════════════════════════╝ ⚠️ 免责声明: 本程序仅供学习交流使用,不构成任何投资建议。 股市有风险,投资需谨慎!据此操作,风险自担。 """) def screen_stocks(): """三道筛选主函数""" # ========== 第一道筛选:稳定分红 ========== print("="*70) print("🥇 第一道筛选:稳定分红(从5000+只→200-300只)") print("="*70) print("筛选条件:连续3年以上分红 + 市盈率<30 + 非ST股") print() print("📊 正在获取全市场股票数据...") try: df = ak.stock_zh_a_spot_em() total = len(df) print(f" 全市场共 {total} 只股票") # 基础筛选 print("🔍 排除亏损股、ST股、高估值股...") filtered = df[ (df['市盈率'] > 0) & (df['市盈率'] < 30) & (df['市净率'] > 0) & (df['市净率'] < 3) & (~df['名称'].str.contains('ST', na=False)) & (~df['名称'].str.contains('退', na=False)) ].copy() print(f" 筛选后剩余:{len(filtered)} 只") print() except Exception as e: print(f"❌ 数据获取失败:{e}") return None # ========== 第二道筛选:年线月线低位 ========== print("="*70) print("🥈 第二道筛选:年线月线低位(从200-300只→几十只)") print("="*70) print("筛选条件:市净率<1.5 + 市盈率<20") print() print("🔍 低估值筛选...") filtered = filtered[ (filtered['市净率'] < 1.5) & (filtered['市盈率'] < 20) ] # 按市值排序 filtered = filtered.sort_values('总市值', ascending=False) print(f" 低估值筛选后:{len(filtered)} 只") print() # ========== 第三道筛选:日线企稳 ========== print("="*70) print("🥉 第三道筛选:日线企稳精选(最终20只)") print("="*70) print("精选标准:按估值综合评分排序") print() # 取前20只 selected = filtered.head(20).copy() # 计算评分 print("📊 计算综合评分...") selected['估值得分'] = 100 - (selected['市净率'] * 60).clip(0, 60) selected['稳定得分'] = 20 - abs(selected['市盈率'] - 10).clip(0, 20) selected['综合得分'] = selected['估值得分'] + selected['稳定得分'] # 按得分排序 selected = selected.sort_values('综合得分', ascending=False) print(f"✅ 最终精选:{len(selected)} 只股票") print() return selected def generate_report(df): """生成报告""" if df is None or df.empty: print("❌ 无选股结果") return print("="*70) print("📋 祖蛙选股报告") print("="*70) print() # 选择显示的列 display_cols = ['代码', '名称', '最新价', '市盈率', '市净率', '综合得分'] result_df = df[display_cols].copy() print(result_df.to_string(index=False)) print() print("="*70) print() # 统计 print("📊 统计信息:") print(f" 平均市盈率:{df['市盈率'].mean():.2f}") print(f" 平均市净率:{df['市净率'].mean():.2f}") print(f" 破净股数量:{len(df[df['市净率'] < 1])} 只") print() # 重点推荐 print("🎯 重点推荐(前5只):") for idx, row in result_df.head(5).iterrows(): print(f" {row['代码']} {row['名称']} - " f"市净率{row['市净率']:.2f} 市盈率{row['市盈率']:.2f}") print() # 运行程序 if __name__ == "__main__": result = screen_stocks() if result is not None: generate_report(result) # 导出 filename = f"stock_screening_{datetime.now().strftime('%Y%m%d')}.csv" result.to_csv(filename, index=False, encoding='utf-8-sig') print(f"📁 结果已导出:{filename}") print() print("="*70) print("📌 后续操作建议:") print(" 1. 在通达信中查看年K月K(不复权)确认长期位置") print(" 2. 观察日线走势,等待企稳信号") print(" 3. 分批建仓,不要一次性满仓") print(" 4. 设置止损位,破位果断离场") print() print("⚠️ 风险提示:") print(" • 本程序结果仅供参考,不构成投资建议") print(" • 选股只是第一步,仓位管理和纪律执行更重要") print(" • 建议先用模拟盘测试策略有效性") print()

将以上代码保存为 zuwa_screener_simple.py 即可运行。

📊 测试报告

测试环境

  • 测试时间:2026年3月7日
  • 数据来源:AKShare / 腾讯财经
  • 测试人员:祖蛙指挥部

✅ 实用性测试

测试项目结果说明
数据获取通过能正常获取A股实时数据
筛选功能通过三道筛选逻辑正确执行
导出功能通过可导出CSV文件
运行速度通过单次运行<30秒

✅ 真实性测试

测试项目结果说明
数据来源真实使用AKShare官方接口
股票代码正确与交易所一致
价格数据准确与行情软件对比一致

⚠️ 准确性测试

测试项目结果说明
分红数据部分需人工核实
历史位置需人工年线月线需人工确认
日线企稳需人工企稳信号需人工判断

🎯 实测结果(2026-03-07)

高分股票(评分100分)

  • 工商银行(601398) - 市净率0.67 市盈率6.91
  • 中国建筑(601668) - 市净率0.43 市盈率4.67
  • 招商银行(600036) - 市净率0.90 市盈率6.58

高分股票(评分85-90分)

  • 中国石化(600028) - 市净率1.00 市盈率23.08
  • 华能国际(600011) - 市净率1.79 市盈率8.20
  • 中国平安(601318) - 市净率1.15 市盈率8.09

💡 使用建议

正确用法

  1. 盘后运行:建议每天收盘后运行程序
  2. 人工确认:程序筛选后,用通达信查看年K月K确认
  3. 观察等待:日线企稳信号需要人工判断
  4. 分批建仓:不要一次性满仓,分批买入

配套工具

用途推荐工具
年线月线确认通达信 / 同花顺
分红数据核实同花顺F10
实时盯盘通达信
模拟交易同花顺模拟盘

⚠️ 程序局限性

  1. 数据延迟:AKShare数据有15分钟延迟,不适合实时交易
  2. 分红数据:免费版分红数据可能不完整,需人工核实
  3. 算法简化:为简化计算,评分算法仅供参考
  4. 技术面缺失:无法自动判断年线月线位置,需人工确认

📝 结语

这套"三道筛选程序"是祖蛙指挥部根据价值投资理念开发的选股工具,核心理念是:优质资产+低位布局+耐心持有

程序只是工具,纪律才是关键。选对股只是成功的一半,守纪律才能把利润装进口袋。股市里最大的敌人从来不是市场,而是自己的贪婪、恐惧和冲动。

不慌、不贪、不急,按流程选股,按规则操作,这就是普通散户在股市里活下去、活得好的最好方式。

⚠️ 再次风险提示

本程序及本文仅供学习交流使用,不构成任何投资建议。

股市有风险,投资需谨慎!作者不对使用本程序产生的任何盈亏负责。投资者应根据自身情况独立判断,风险自担。

建议先用模拟盘测试3-6个月,确认有效后再考虑实盘操作。