Files
MoFin/docs/cron-review-poversold-20260811.md
T

10 KiB
Raw Blame History

MoFin Cron 梳理报告 —— 对照预测超跌反弹策略(p_oversold)部署

状态:📋 初稿(待老莫逐部分确认) 创建:2026-08-11 | 对照策略:预测超跌反弹 v5docs/predictive_oversold_strategy.md 依据:docs/deployment-plan-predictive-oversold.md(部署计划)+ 58 个启用 cron 实际功能核查 范围:/home/hmo/.hermes/profiles/position-analyst/cron/jobs.json 启用任务 58 个 + mohe 2 个(mohe 不涉及)

〇〇、方法论对齐(2026-08-11 补充:3+6+12 视角)

依据:docs/research/2026-08-06-low-drawdown-study.md §7(老莫纠正原话)+ docs/research/methodology.md(总纲)+ docs/strategy_research_methodology.md(由果及因)

3+6+12 定义(权威)

3/6/12 = 3次重评 + 6步推导 + 12维全评

组成 内容 落地文档
3次重评 选股初评 → 入场重评 → 出场重评 low-drawdown-study §7 / v_mr_strategy §19
6步推导 研究流程:果→因→全市场筛→负面剔除→正负合并→稳健验证 methodology §3.2 / learned.md L14
12维全评 大盘/行业/个股 × 消息/基本/技术/资金 methodology §3 / strategy_research_methodology §2

cron 评估的 3+6+12 视角(核心)

从策略组合角度,每个 cron 应支撑以下环节之一:

3次重评(运行态决策)

  • 选股初评 → 主力建仓扫描 / p_oversold 扫描器 / 候选过滤 / 候选提拔
  • 入场重评 → 盘前全量重评(regenerate_all/ 12维补全 / 自选自动清理
  • 出场重评 → ⚠️ 缺口low-drawdown-study L134:出场由 watchlist 12维 LLM 接管,非确定性规则,不可回测)→ 需补机械兜底+12维倾斜双层规则

6步推导(研究态)

  • 数据采集(stock_daily/stock_weekly/fundamentals/capital_flow)→ 研究数据基础
  • 策略评估 / 策略复盘 / 建议对账 → 验证闭环

12维全评(数据基础)

  • 大盘维:市场数据采集(mkt_rsi/mkt_dd60)、宏观上下文、宏观新闻
  • 行业维:行业富集-cninfo、市场数据采集(板块)
  • 个股维:基本面刷新、资金流采集、多周期缓存、价格监控
  • 消息维:宏观新闻采集、知微洞察

由此得出的 cron 评估原则

  1. 支撑 3+6+12 任一环节的 cron = 保留(数据管道是策略的生命线)
  2. 与 3+6+12 无关的 cron = 候选停(如纯运维/重复/停摆)
  3. 3次重评有缺口的环节 = 需新增/调整(尤其出场重评)
  4. 6步推导第6步"稳健验证"依赖数据完整性 → 数据采集类 cron 绝不能停

〇、分析框架

新策略 p_oversold 的核心需求:

  1. 扫描器写入 candidatessector=p_oversold)→ 需调度
  2. 候选评估:p_oversold 有自己的选股条件,不适配 accumulation 的 6阶段评分 + RR>=2 门槛
  3. 盘前重评(regenerate_all)需覆盖新策略候选
  4. 健康监控/简报需体现新策略

基于此,58 个 cron 分四类:停 / 保持 / 调整 / 新增。


一、可以直接停止的(8 个)

依据:与新策略无关 + 功能冗余/过时 + 持续失败无价值

# cron 调度 脚本 为什么停
1 策略评估-每日 0 21 * * 1-5 stale_detector.py error 8/6 起(Connection error)。与策略评估-每周重复,每日版是早期半成品
2 市场精选推荐-每日 0 16 * * 1-5 prompt型(无script) 7/31 起停摆(部署计划 §11.2 明确)。与新策略无关——新策略有专属扫描器,不需要通用精选
3 跨市场背离检测-周末 30 8-16/2 * * 0,6 divergence_detector.py 与跨市场背离检测(*/30 8-15 工作日)完全同脚本,周末单独重复
4 宏观风险扫描-午间 30 11 * * 1-5 prompt型 与宏观风险扫描(8:30)重复度 80%,午间版冗余
5 宏观风险扫描-周末 0 10 * * 0,6 prompt型 与宏观风险扫描(8:30)同脚本,周末重复
6 行业富集-cninfo-午间 45 12 * * 1-5 sector_enrich_cninfo.py 与行业富集-早间(7:50)同脚本。早间已覆盖全部 active 策略,cninfo 一天一次就够
7 基本面刷新-午间 47 12 * * 1-5 fundamentals_refresh.py 同脚本早晚各一次。基本面(PE/PB)一天变一次,午间版冗余
8 自选12维分析补全-每日午间 30 12 * * 1-5 watchlist_12d_backfill.py ⚠️ 待定:调度注释说"约80分钟",与午间其他任务重叠;若 p_oversold 有自己的评估,此任务价值下降

⚠️ 注:#8 自选12维补全是否停,需确认它与 p_oversold 专属评估是否冲突——若 p_oversold 走独立评估,此通用 12 维补全可降频或停。


二、必须保持不动(30 个)

依据:系统核心运转依赖,与新策略无冲突。

2.1 候选管道核心(5 个)——p_oversold 依赖它们

cron 调度 保持理由
主力建仓扫描-每15分 */10 9-15 accumulation 扫描器——保留,新策略加独立扫描器不冲突
候选股过滤管道-每30分 */30 9-15 保留(但见第三类"调整":RR/评分适配问题)
候选股自动提拔-每30分 */30 9-15 保留(但见第三类"调整")
盘前全量重评-自选退出 10 8 * * 1-5 保留(2026-08-11 已修缓存预热 7:50)——p_oversold 候选进 holding_strategies 后自动被重评
自选自动清理-开盘前 5 9 * * 1-5 保留——管道收尾

2.2 数据基础(5 个)

cron 调度 保持理由
价格监控-高频 */2 9-16 实时价格唯一入口,p_oversold 也需要
市场数据采集 */10 9-11,13-15 大盘/板块数据,p_oversold 门控依赖(mkt_rsi/mkt_dd60
资金流采集-盘中 1,31 9-15 2026-08-11 已修(DELETE全表→单行upsert),p_oversold 可用资金流验证
多周期缓存刷新-盘中 50 7,11,14 2026-08-11 已修(补flush + 提前7:50)——p_oversold 重评依赖它的缓存
数据采集-策略评估前 30 20 * * 1-5 策略评估数据源

2.3 LLM 分析/报告(5 个)

cron 调度 保持理由
策略复盘-每日 0 20 * * 1-5 每日策略复盘,含新策略后自动覆盖
分析师-持仓复查 0 20 * * 4 周四持仓复查
开盘简报 35 9 * * 1-5 每日简报(部署计划 §五要求简报提及新策略)
收盘简报 10 16 * * 1-5 每日简报
知微洞察生成 35 15 * * 1-5 知微日报(部署计划 §五要求交接)

2.4 宏观/风险(4 个)

cron 调度 保持理由
宏观新闻采集 */30 8-16 数据源
宏观风险信号消费 5,20,35,50 9-15 消费信号
宏观上下文刷新-每30分 */30 9-15 p_oversold 门控用 macro_bias
跨市场背离检测(工作日) */30 8-15 保留(停周末版)

2.5 系统维护/自愈(11 个)——绝不能停

cron 调度 保持理由
Gateway看门狗-知微 every 10m 系统自愈
部署一致性守卫 */15 防代码漂移
元监控-自检系统的自检-L4 5 * * * * 防螺旋
agent螺旋监控 */10 防螺旋(2026-07-21 事件后补)
自愈执行器-TODO自动处理-v2 */10 8-22 自动修复
LLM修复循环-L3 */30 9-16,20-22 自动修复
功能健康检查-L1 */15 9-16,20-22 监控
健康监控数据采集-每15分 */15 9-16,20-22 监控(但见第三类调整:注册 p_oversold 项)
系统卫生审计-每日 20 8 * * * 维护
系统全局审计 30 17 * * 1-5 维护
DB每日备份-0750 50 7 * * * 数据安全
state.db真空整理-每周 0 3 * * 6 维护
cron报告推XMPP-每5分 */5 9-16 报告分发
记忆守卫-每日 0 7 * * * 记忆管理

注:2.5 实际 14 个(标题写 11,含全),保持不动。


三、需要调整的(8 个)

# cron 当前问题 调整方案
1 候选股过滤管道 6阶段评分为 accumulation 设计(量价放大/中低位),p_oversold 候选(深跌+低估值)评分不适配 方案A(推荐)p_oversold 候选写 candidates 时直接标记高分+pass_final=1,绕过 candidate_filter;或让 candidate_filter 按 sector 分流
2 候选股自动提拔 RR>=2.0 硬门槛promote_candidates.py:130)——超跌候选 RR 天然 <2(部署计划 §8.2 实测 40+/57 被拒) 加 sector 判断:p_oversold 候选跳过 RR>=2 门槛(用专属评估替代)
3 主力建仓扫描 只扫 accumulation 保持——新增 p_oversold 独立扫描器
4 健康监控数据采集 无 p_oversold 项 注册 p_oversold 健康检查项(部署计划 §五)
5 开盘简报 模板无新策略 模板提及新策略
6 知微洞察生成 未交接新策略 简报模板 + 策略文档
7 开盘前钉对钉 2026-08-11 已修(registry 路径,18/18 通过) 保持,未来加 p_oversold 检查项
8 MoFin 系统常规体检-开盘前 清单自动扩展 加 p_oversold 健康项

四、需要新增的(2 个)

新 cron 说明
predictive_oversold_scanner p_oversold 扫描器(腾讯行情源 + 大盘门控 + 写 candidates sector=p_oversold + 当日幂等 + 单例守卫 + 600s 护栏)。调度方式待老莫定:独立 cron vs market_watch 链式
p_oversold 专属评估 按选股逻辑评估(不复用 accumulation 的 RR>=2)——可并入 scanner 或独立

五、汇总

类别 数量 说明
🛑 8 策略评估-每日、市场精选、跨市场背离-周末、宏观风险×2(午间/周末)、行业富集-午间、基本面-午间、自选12维补全(待定)
保持 30 系统核心 + 数据基础 + 监控自愈
🔧 调整 8 候选管道×3(RR/评分适配)、健康监控/简报/体检×5(注册新策略)
新增 2 p_oversold 扫描器 + 专属评估
⚠️ 观察 3 策略评估-每日(停)、LLM修复循环、候选股过滤(已修,观察恢复)

六、待老莫拍板

  1. 停 8 个确认吗?(尤其"市场精选推荐"——7/31 停摆,是否彻底废弃?)
  2. 候选管道适配:方案Ap_oversold 绕过 filter 直接标记高分)还是方案B(改管道门槛)?
  3. p_oversold 扫描器调度:独立 cron 还是 market_watch 链式?