选股系统质量管道与自愈机制实战:质量快照+退化熔断+自愈校验,根治反向进化
项目概览
「选股系统质量管道与自愈机制」是科学小舟团队为「小舟AI选股系统」构建的三重质量保障体系(2026年7月由马工与钱经理联合建立),专门根治「反向进化」——即系统悄悄降级、静默出错、越改越差的问题。体系由三部分组成:质量管道(quality_pipeline.py,每次选股后保存10项质量指标快照,下次启动自动对比退化率)、熔断门禁(退化≥20%自动熔断、阻止发邮件、强迫找根因)、自愈校验(self_heal.py,选股完成后自动检查四表数量/PDF产出,发现缺陷自动修复并复检)。三者配合,让选股系统从「会出错」进化到「出错能发现、发现能自愈、自愈有底线」。
一、质量快照:10项指标全留痕
每次选股完成后,质量管道自动收集10项质量指标并写入 quality_snapshots/quality_YYYYMMDD.json 快照文件,让每一次选股的质量都「可回溯」:
QUALITY_METRICS = [
{"id": "table_a_count", "name": "表A数量", "min": 10, "weight": 1},
{"id": "table_b_count", "name": "表B数量", "min": 10, "weight": 1},
{"id": "table_c_count", "name": "表C数量", "min": 10, "weight": 1},
{"id": "table_d_count", "name": "表D数量", "min": 10, "weight": 1},
{"id": "harami_complete_rate", "name": "表A孕线完整率", "min": 80, "weight": 3},
{"id": "pdf_pages", "name": "PDF页数", "min": 2, "weight": 1},
{"id": "pdf_file_size_kb", "name": "PDF文件大小(KB)", "min": 200,"weight": 1},
{"id": "sector_match_count", "name": "板块匹配数", "min": 5, "weight": 1},
{"id": "top_score", "name": "最高评分", "min": 50, "weight": 1},
{"id": "avg_score_top5", "name": "前5平均评分", "min": 40, "weight": 1},
]
- 四表数量:A/B/C/D四路候选各≥10只,低于阈值即退化
- 表A孕线完整率:权重最高(weight=3),必须≥80%——孕线字段是A表核心特征,缺了就是数据管线出问题
- PDF产出:页数≥2、文件≥200KB,报告交付质量受监控
- 评分质量:最高评分≥50、前5平均≥40,防止权重漂移导致评分虚高
二、退化对比:与昨日快照逐项PK
下次选股启动时,管道自动读取最近一次历史快照(排除当天),逐项对比退化率,任何一项低于阈值下限都会被标记:
# 启动时先跑退化检查 python quality_pipeline.py --check # 选股完成后保存快照 python quality_pipeline.py --snapshot <quality_metrics.json> # 只出退化报告(不阻断) python quality_pipeline.py --report
- 快照自动归档:quality_snapshots/ 目录按日期存档,历史可查
- 智能对比基准:自动取「最近一次早于今天的快照」作基准,跳过当天已建快照,防止自比
- 逐项退化标记:每项指标对比 min 阈值,低于阈值输出红色退化警报
三、熔断门禁:退化≥20%强制停发
质量管道最硬核的机制是「熔断」:当整体退化率达到阈值(≥20%)时,系统自动触发红色警报并阻止发送选股邮件,宁可今天不发,也不把质量降级的报告发出去——强迫开发团队先找根因,而不是静默接受劣化结果:
- 红色警报:退化≥20% → 输出「🔴 质量熔断」警报,列出所有退化指标
- 阻止发邮件:熔断状态下邮件发送被拦截,劣质报告不外流
- 强迫找根因:熔断不是惩罚,是「逼你修」的机制——不找到原因不恢复
- 加权计算:不同指标按 weight 加权影响熔断级别,孕线完整率等核心指标权重更高
四、自愈校验:缺陷自动修复+复检
自愈校验程序(self_heal.py,2026-07-01钱经理建立)在选股完成后立即运行,检查输出质量并尝试自动修复:
- 四表数量检查:查 ultra_short_candidates 表当日各来源(A/B/C/D)候选数量,空表/数量不足直接暴露
- PDF产出检查:报告文件缺失或过小即触发重新生成
- 自动修复策略:只修复可自动修复的缺陷(数据回退、候选池扩展、重新生成报告),不可自动修复的如实上报
- 自检验证:修复后必须重新校验,验证通过才算修复成功,不通过则报告失败
- 全程留痕:每次检查/修复动作写入 self_heal_log.txt,何时修了什么一目了然
# 自愈日志示例 [2026-07-01 09:35:12] 🔍 开始自愈校验... [2026-07-01 09:35:13] ✅ 表A 12只 / 表B 15只 / 表C 18只 / 表D 9只 [2026-07-01 09:35:13] ⚠ 表D数量不足(9<10),尝试扩展候选池... [2026-07-01 09:35:20] ✅ 表D已扩展至 14只,重新生成PDF... [2026-07-01 09:35:25] ✅ 自愈完成,全部校验通过
五、铁律:熔断不可越狱
自愈机制有一条不可逾越的铁律:只修复可自动修复的缺陷,绝不绕过质量管道熔断。熔断是保护机制,自愈程序再聪明也不能「越狱」解除熔断——这保证了「质量门禁」永远是最后一道防线,杜绝「自愈程序好心办坏事、把退化当正常」的系统性风险。
项目成果
✅ 10项质量指标每日快照,选股质量全程可回溯。✅ 退化对比自动发现劣化,问题不过夜。✅ 退化≥20%自动熔断、阻止发邮件,反向进化被根治。✅ 自愈校验自动修复四表短缺/PDF缺失并复检留痕。✅ 「熔断不可越狱」铁律守住质量底线,系统越跑越稳。
项目说明:本文基于 D:\AI-Win专属工作区\小舟+hermes股票系统 目录下 脚本\v8.4\quality_pipeline.py、脚本\v8.4\self_heal.py、脚本\v8.4\self_heal_log.txt、脚本\v8.4\quality_snapshots\ 目录等实际项目文件撰写,为科学小舟团队真实开发项目。
