# MoFin Cron 完全手册 > 版本: v1 | 最后更新: 2026-06-27 > 用途: 所有定时任务的完整文档,含设计意图、实现方式、数据流、代码结构、依赖关系。 ## 一、系统健康 | 脚本 | 调度 | 设计意图 | 数据流 | 关键代码 | |------|------|---------|--------|---------| | `morning_health_check.py` | 交易日8:00 | 开盘前全面体检8类48项,发现异常→auto_fix/TODO | 读:checklist.json/DB/进程/端口/API → 写:health_check_log表+todos表 | main() → run_check() → write_todos_for_issues() → auto_fix_issue() | | `intraday_health_check.py` | 交易日每15分 9-15 | 盘中轻量自检,XMPP/Gateway/Scanner/价格/信号管道 | 读:DB/进程/API/macro_risk_state.json → 写:todos表 | main() → check_bots/gateways/xiaoguo/price_monitor/signal_pipeline → write_todos() | | `system_health_check.py` | 每日9:00 | 传统系统检查(进程/端口/文件/数据新鲜度)——被morning_health_check替代 | 读:系统状态 → stdout | run() | | `system_audit.py` | 交易日17:30 | 7维度审计(信号/股票/策略/建议/组合/数据管道/服务) | 读:DB+JSON → 写:audit_report.json | audit_signals/stocks/strategies/advice/portfolio/pipeline/services() | | `memory_guardian.py` | 每日7:00 | 按SOUL记忆规则检查并清理共享memory | 读:MEMORY.md+gateway → 调gateway清理 + report | check_memory_md() → cleanup_memory() | ## 二、数据采集 | 脚本 | 调度 | 设计意图 | 数据流 | 关键代码 | |------|------|---------|--------|---------| | `price_monitor.py` | 交易日每2分 9-16 | 腾讯API实时价→更新portfolio.json+price_events表 | 腾讯API→price_events表+portfolio.json(price更新) | main() → fetch_quote() → write_price_event() → update_portfolio() | | `macro_context_collector.py` | 工作日每30分 8-15 + 周末 | 宏观新闻采集+实时红绿灯检测+指数采集 | akshare→macro_raw_news表+signal_news(macro_watch)+macro_risk_state.json+macro_context_log表 | main() → fetch_news() → detect_risk() → write_risk_signal() → 指数→DB | | `divergence_detector.py` | 工作日每30分 8-15 + 周末 | 跨市场5项背离检测→风险信号 | 腾讯API→计算背离→signal_news(macro_watch) | main() → check_divergences() → write_signal() | | `refresh_mtf_cache.py` | 交易日9:00 | 开盘前预填多周期K线缓存 | 腾讯API→multi_tf_cache.json | main() → batch_update_all() | | `collect_evaluation_data.py` | 交易日20:30 | 六维评估原始数据采集 | 各API→evaluation_input.json | main() → collect_index/sector/fundamental/money_flow() | ## 三、策略与交易 | 脚本 | 调度 | 设计意图 | 数据流 | 关键代码 | |------|------|---------|--------|---------| | `stale_push_wlin.py` | 交易日每30分 9-15 | 自选买入区提醒+自动重评+换仓评估+T+2前瞻 | 读:decisions.json+portfolio.json+code_data → 推XMPP | main() → evaluate_swap() → check_tplus2() → push_to_xmpp() | | `stale_detector.py` | 每30分(被stale_push_wlin调用) | 检测价格偏离/策略过期/RR<1.5→标记STALE | 读:decisions.json → stdout(WL_IN/DRIFT/STALE等) | main() → check_entries() | | `per_stock_reassess.py` | 交易日9:00/12:00 + 盘中触发 | 个股策略重评(技术面→止损/止盈/买入区) | 读:decisions.json+腾讯API → 写:decisions.json | main() → reassess_strategy() for each code | | `strategy-staleness-check.py` | 交易日9:00 | 策略时效性扫描→staleness_report.json | 读:decisions.json → 写:strategy_staleness_report.json | main() → check_age/drift/invalid() | | `strategy_evaluator.py` | 每周六21:00 | 双维度策略评估 | 读:evaluation_input.json+decisions.json → evaluation结果+accuracy_stats | main() → evaluate_holdings/watchlist() | | `advice_reconciliation.py` | 每周六20:00 | 建议对账:追踪建议执行情况 | 读:advice_timeline表+portfolio.json → 报告 | main() → reconcile() | | `strategy_review.py` | 交易日20:00 | 三层复盘(信号/执行/综合),失败模式归因 | 读:decisions.json+腾讯API → 写:accuracy_stats表 | review() → evaluate_strategy() → classify_outcome() | | `data_governance.py` | 每周六10:00 | holding_strategies去重+缺失策略检查+深套统计 | 读:DB+decisions.json → 归档+报告 | clean_holding_strategies() → check_missing_strategies() | ## 四、信号消费 | 脚本 | 调度 | 设计意图 | 数据流 | 关键代码 | |------|------|---------|--------|---------| | `xiaoguo_scanner.py` | 交易日每5分 9-15 | 全市场排行榜→新闻搜索→情感判断→signal_news | akshare→小果LLM→signal_news(xiaoguo) | main() → fetch_hot_board/rotating_board/sector_leaders() → check_stock() | | `xiaoguo_signal_consumer.py` | 交易日每30分 9-15 | 消费xiaoguo信号→五维评估→加自选/关注/跳过 | 读:signal_news(xiaoguo)+腾讯行情 → 写:watchlist.json+标记processed | main() → quick_assess() → evaluate_and_act() | | `macro_signal_consumer.py` | 交易日每15分 9-15 | 消费宏观风险信号→macro_risk_state.json | 读:signal_news(macro_watch) → 写:macro_risk_state.json+标记processed | main() → read_signals() → update_risk_state() | ## 五、自成长 | 脚本 | 调度 | 设计意图 | 数据流 | 关键代码 | |------|------|---------|--------|---------| | `branch_scanner.py` | 交易日每15分 9-15 | 分支状态变化检测→触发计数+剪枝候选 | 读:decisions.json+strategy_tree+当前情景 → 写:trigger_count+scanner_state.json | main() → evaluate_branches() → detect_changes() | | `prune_branches.py` | 交易日21:00 | 低效分支剪枝(触发≥5次+成功率<50%) | 读:strategy_tree.branches → 移入pruned_branches | main() → prune() | | `hardcode_scanner.py` | 交易日17:25 | 扫描.py中大额数字硬编码 | 读:所有.py → 写:audit JSON | main() → scan_files() | | `meta_growth.py` | 每个交易日12:45+0:45 | 分析git log修复模式→扩展hardcode_scanner规则 | 读:git log+growth_registry → 写:hardcode_scanner扩展点+growth_registry | main() → analyze_fixes() → extend_rules() | ## 六、LLM Cron(调度LLM分析,非纯脚本) | 任务 | 调度 | 设计意图 | 加载skill | |------|------|---------|-----------| | 开盘简报 | 9:35 | 简短开盘简报(需操作票+分支理由+其他不变) | cron-report-format, analyst-knowledge | | 收盘简报 | 16:10 | 当日回顾+明日关注+情景判断 | cron-report-format, analyst-knowledge | | 策略评估-每日 | 21:00 | 六维分析+三阶段递进判断 | analyst-knowledge, strategy-reassessment, strategy-evaluation | | 策略评估-每周 | 周六21:00 | 周度回顾 | (no_agent: strategy_evaluator.py) | | 知识萃取-盘后 | 16:30 | 当日经验沉淀 | analyst-knowledge | | 系统全局审计 | 17:30 | 审计报告解读 | analyst-knowledge | | 宏观风险扫描 | 8:30/11:30 + 周末 | 宏观新闻→系统性风险评估 | macro-risk-scanner | | 小果情感分析 | 16:00 | 持仓+自选新闻情感分析 | (LLM cron, 调xiaoguo API) | ## 七、暂停/废弃 | 脚本 | 原因 | 替代 | |------|------|------| | MoFin 盘前中/午后监控 | Dad说不需要盘中推 | intraday_health_check(静默采集) | | 核心区间维护 | 被高频价格监控替代 | price_monitor | | 知微洞察生成 | 被每日评估替代 | strategy_evaluation | | 小果市场筛选-全市场 | 小果LLM不可靠 | xiaoguo_scanner(降级版) | | 市场数据采集 | 整合到macro_context_collector | macro_context_collector | | 市场精选推荐-每日 | Dad不需要 | — | ## 八、cron数量统计 | 分类 | 启用 | 暂停 | 合计 | |------|------|------|------| | 系统健康 | 5 | 0 | 5 | | 数据采集 | 5 | 0 | 5 | | 策略与交易 | 8 | 0 | 8 | | 信号消费 | 3 | 0 | 3 | | 自成长 | 4 | 0 | 4 | | LLM Cron | 8 | 0 | 8 | | 暂停/废弃 | 0 | 5 | 5 | | **合计** | **33** | **5** | **38** |