Files
MoFin/docs/cron-catalog.md
T
知微 2912b127e3 docs: 38个cron完全手册
- 全部32个脚本+8个LLM cron的设计意图/数据流/代码结构
- 暂停/废弃说明
- 每个cron关联脚本和调用链
- 自动注册脚本时参考此文档推断数据流

新增cron时应该在此文档追加条目,否则注册表审计只能推断不能确认
2026-06-27 02:26:34 +08:00

92 lines
7.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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** |