fix: 14个LLM cron prompt添加数据真实性铁律(置顶)+注册到提示词系统

This commit is contained in:
知微
2026-07-09 13:38:36 +08:00
parent f2d80d1948
commit 52e70bde26
9 changed files with 2176 additions and 261 deletions
+4 -3
View File
@@ -22,10 +22,11 @@ xiaoguo_signal_consumer 仅处理今日信号(`date(created_at)=today`),
- 盘中健康检查不会再因过期信号误报堆积
- 信号管道只监控时效内的处理速度
### [2026-07-09 跟进] 监控盲区修复
### [2026-07-09 跟进] 监控盲区修复 + 信号积压根治
- **发现**: intraday_health_check 和 system_audit 仅监控 source LIKE 'xiaoguo%',完全忽略 divergence_watch(80条)、trend(46条) 等来源信号积压
- **修复**: 两端都增加全量未处理查询(total_unproc),区分 xiaoguo 和其他来源分别报告
- **遗留**: divergence_watch/trend 信号无 consumer,属于数据归档而非管道积压,继续积累但健康检查能看见了
- **修复① (当日监控层)**: 两端都增加全量未处理查询(total_unproc),区分 xiaoguo 和其他来源分别报告
- **修复② (同天根治)**: divergence_detector.py 写入 signal_news 时标记 processed=1(已有macro_divergence_state.json自用,signal_news只做归档);trend 46条空summary死数据标记已处理
- **效果**: signal_news 1077条全量已处理,健康检查 PASS,后续不会再次积压
## 2026-07-03 — 代码重构
+124 -20
View File
@@ -1,6 +1,6 @@
{
"last_updated": "2026-07-09 10:32",
"total_candidates": 35,
"last_updated": "2026-07-09 12:09",
"total_candidates": 38,
"sectors_analyzed_today": [
"半导体",
"金属新材料",
@@ -1352,18 +1352,18 @@
"code": "002371",
"name": "北方华创",
"sector": "半导体",
"xiaoguo_score": 8,
"xiaoguo_reason": "半导体设备平台型龙头,订单饱满且国产替代核心受益者,技术面处于箱体震荡沿,具备较高安全边际与弹性。",
"xiaoguo_score": 8.5,
"xiaoguo_reason": "半导体设备平台型龙头,国产替代核心受益标的。资金持续净流入,技术面处于中长期上升通道中的箱体震荡沿,基本面与资金面共振。",
"xiaoguo_strategy": {
"entry_range": "280-290元",
"stop_loss": "265元",
"target": "330-350元"
"entry_range": "310-320元",
"stop_loss": "295元",
"target": "350-365元"
},
"verified_price": 826.0,
"verified_change": 2.95,
"verified_price": 826.19,
"verified_change": 2.98,
"added_at": "2026-07-07 12:12",
"last_updated": "2026-07-09 10:07",
"num_observations": 3,
"last_updated": "2026-07-09 12:07",
"num_observations": 4,
"score_history": [
{
"date": "2026-07-07 12:12",
@@ -1376,6 +1376,10 @@
{
"date": "2026-07-09 10:07",
"score": 8
},
{
"date": "2026-07-09 12:07",
"score": 8.5
}
],
"zhiwei_star": null,
@@ -1392,18 +1396,18 @@
"code": "688012",
"name": "中微公司",
"sector": "半导体",
"xiaoguo_score": 7.5,
"xiaoguo_reason": "刻蚀设备全球竞争力强,受益晶圆厂扩产与先进制程突破,短期随板块回调至支撑位,风险收益比合理。",
"xiaoguo_score": 8.0,
"xiaoguo_reason": "刻蚀设备全球竞争力突出,订单饱满且估值处于历史中低位。板块资金大幅流入背景下,技术面完成短期洗盘,具备右侧启动潜力。",
"xiaoguo_strategy": {
"entry_range": "180-185元",
"stop_loss": "170元",
"target": "210-220元"
"entry_range": "145-155元",
"stop_loss": "138元",
"target": "170-180元"
},
"verified_price": 438.5,
"verified_change": 3.66,
"verified_price": 440.53,
"verified_change": 4.14,
"added_at": "2026-07-07 12:12",
"last_updated": "2026-07-09 10:07",
"num_observations": 3,
"last_updated": "2026-07-09 12:07",
"num_observations": 4,
"score_history": [
{
"date": "2026-07-07 12:12",
@@ -1416,6 +1420,10 @@
{
"date": "2026-07-09 10:07",
"score": 7.5
},
{
"date": "2026-07-09 12:07",
"score": 8.0
}
],
"zhiwei_star": null,
@@ -1619,6 +1627,102 @@
"drop_reason": null,
"trend_warning": false,
"trend_note": ""
},
{
"code": "601139",
"name": "深圳燃气",
"sector": "燃气",
"xiaoguo_score": 8,
"xiaoguo_reason": "区域城燃龙头,管网覆盖广且用户基数大,现金流稳定、分红率高,防御属性突出,适合底仓配置。",
"xiaoguo_strategy": {
"entry_range": "18.5-19.2元",
"stop_loss": "17.8元",
"target": "21.5元"
},
"verified_price": 5.9,
"verified_change": -0.34,
"added_at": "2026-07-09 12:09",
"last_updated": "2026-07-09 12:09",
"num_observations": 1,
"score_history": [
{
"date": "2026-07-09 12:09",
"score": 8
}
],
"zhiwei_star": null,
"zhiwei_reviewed": false,
"zhiwei_reviewed_at": null,
"promoted": false,
"promoted_at": null,
"dropped": false,
"drop_reason": null,
"trend_warning": false,
"trend_note": ""
},
{
"code": "600803",
"name": "新奥股份",
"sector": "燃气",
"xiaoguo_score": 7,
"xiaoguo_reason": "全产业链布局完善,上游气源与LNG接收站优势显著,盈利弹性大,但当前估值偏高,需等待回调至合理区间。",
"xiaoguo_strategy": {
"entry_range": "14.8-15.5元",
"stop_loss": "14.0元",
"target": "18.0元"
},
"verified_price": 15.72,
"verified_change": -0.06,
"added_at": "2026-07-09 12:09",
"last_updated": "2026-07-09 12:09",
"num_observations": 1,
"score_history": [
{
"date": "2026-07-09 12:09",
"score": 7
}
],
"zhiwei_star": null,
"zhiwei_reviewed": false,
"zhiwei_reviewed_at": null,
"promoted": false,
"promoted_at": null,
"dropped": false,
"drop_reason": null,
"trend_warning": false,
"trend_note": ""
},
{
"code": "002267",
"name": "陕天然气",
"sector": "燃气",
"xiaoguo_score": 7.5,
"xiaoguo_reason": "西北重要输配枢纽,受益于西气东输及冬季保供需求,业绩稳健且估值处于历史中低位,具备波段交易价值。",
"xiaoguo_strategy": {
"entry_range": "10.2-10.8元",
"stop_loss": "9.6元",
"target": "12.5元"
},
"verified_price": 6.97,
"verified_change": 0.14,
"added_at": "2026-07-09 12:09",
"last_updated": "2026-07-09 12:09",
"num_observations": 1,
"score_history": [
{
"date": "2026-07-09 12:09",
"score": 7.5
}
],
"zhiwei_star": null,
"zhiwei_reviewed": false,
"zhiwei_reviewed_at": null,
"promoted": false,
"promoted_at": null,
"dropped": false,
"drop_reason": null,
"trend_warning": false,
"trend_note": ""
}
]
}
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
File diff suppressed because it is too large Load Diff
+196 -66
View File
@@ -1,112 +1,242 @@
{
"002396": [
"000700": [
{
"date": "2026-07-09",
"high": 28.59,
"low": 26.45,
"close": 27.92,
"volume": 794409.0,
"amount": 220949.0
"high": 15.75,
"low": 14.86,
"close": 14.98,
"volume": 444216.0,
"amount": 67570.0
}
],
"00700": [
{
"date": "2026-07-09",
"high": 485.0,
"low": 470.2,
"close": 470.2,
"volume": 26422991.0,
"amount": 12632308619.838
}
],
"01088": [
{
"date": "2026-07-09",
"high": 41.64,
"low": 40.82,
"close": 41.24,
"volume": 7332972.0,
"amount": 302862748.4
}
],
"01211": [
{
"date": "2026-07-09",
"high": 86.55,
"low": 82.55,
"close": 82.65,
"volume": 18326386.0,
"amount": 1550084205.15
}
],
"01478": [
{
"date": "2026-07-09",
"high": 6.97,
"low": 6.79,
"close": 6.82,
"volume": 2527000.0,
"amount": 17355670.0
}
],
"01888": [
{
"date": "2026-07-09",
"high": 71.0,
"low": 63.4,
"close": 65.85,
"volume": 59047903.0,
"amount": 3957642009.85
}
],
"02202": [
{
"date": "2026-07-09",
"high": 2.28,
"low": 2.23,
"close": 2.24,
"volume": 8649200.0,
"amount": 19491995.6
}
],
"06869": [
{
"date": "2026-07-09",
"high": 163.5,
"low": 146.0,
"close": 156.0,
"volume": 24880313.0,
"amount": 3855569879.8
}
],
"300035": [
{
"date": "2026-07-09",
"high": 13.44,
"low": 12.68,
"close": 12.97,
"volume": 145833.0,
"amount": 18946.0
}
],
"300308": [
{
"date": "2026-07-09",
"high": 1168.95,
"low": 1117.01,
"close": 1159.0,
"volume": 234082.0,
"amount": 2677710.0
}
],
"300548": [
{
"date": "2026-07-09",
"high": 227.76,
"low": 214.32,
"close": 215.3,
"volume": 59358.0,
"amount": 130075.0
"low": 213.1,
"close": 226.28,
"volume": 109292.0,
"amount": 239836.0
}
],
"000850": [
"300750": [
{
"date": "2026-07-09",
"high": 3.86,
"low": 3.73,
"close": 3.73,
"volume": 36831.0,
"amount": 1396.0
"high": 370.68,
"low": 360.07,
"close": 366.77,
"volume": 246690.0,
"amount": 900969.0
}
],
"001309": [
"518880": [
{
"date": "2026-07-09",
"high": 849.99,
"low": 810.0,
"close": 812.95,
"volume": 64431.0,
"amount": 536681.0
"high": 8.504,
"low": 8.446,
"close": 8.479,
"volume": 1504923.0,
"amount": 127577.0
}
],
"600111": [
"600563": [
{
"date": "2026-07-09",
"high": 45.98,
"low": 42.36,
"close": 42.37,
"volume": 732957.0,
"amount": 321872.0
"high": 147.68,
"low": 140.33,
"close": 146.08,
"volume": 57531.0,
"amount": 82717.0
}
],
"601101": [
"601899": [
{
"date": "2026-07-09",
"high": 11.96,
"low": 11.22,
"close": 11.38,
"volume": 224925.0,
"amount": 25945.0
"high": 27.7,
"low": 26.55,
"close": 26.97,
"volume": 1784624.0,
"amount": 483471.0
}
],
"688041": [
"688411": [
{
"date": "2026-07-09",
"high": 352.0,
"low": 335.5,
"close": 351.22,
"volume": 14810250.0,
"amount": 509677.0
"high": 248.86,
"low": 239.0,
"close": 246.75,
"volume": 2194854.0,
"amount": 53748.0
}
],
"688630": [
"688639": [
{
"date": "2026-07-09",
"high": 496.88,
"low": 468.88,
"close": 473.99,
"volume": 2250136.0,
"amount": 108827.0
"high": 16.53,
"low": 16.22,
"close": 16.3,
"volume": 2307747.0,
"amount": 3758.0
}
],
"000700": [
"688981": [
{
"date": "2026-07-09",
"high": 15.75,
"low": 14.89,
"close": 15.15,
"volume": 320319.0,
"amount": 49035.0
}
],
"002371": [
{
"date": "2026-07-09",
"high": 838.0,
"low": 815.0,
"close": 829.96,
"volume": 59320.0,
"amount": 490300.0
"high": 166.58,
"low": 152.1,
"close": 165.66,
"volume": 96555603.0,
"amount": 1543952.0
}
],
"00981": [
{
"date": "2026-07-09",
"high": 80.3,
"high": 83.45,
"low": 76.65,
"close": 80.25,
"volume": 44619590.0,
"amount": 3504189620.8
"close": 81.55,
"volume": 126183931.0,
"amount": 10157585460.2
}
],
"688041": [
{
"date": "2026-07-09",
"high": 354.97,
"low": 335.5,
"close": 350.57,
"volume": 22812082.0,
"amount": 789683.0
}
],
"688795": [
{
"date": "2026-07-09",
"high": 769.5,
"low": 666.66,
"close": 741.88,
"volume": 5633346.0,
"amount": 405585.0
}
],
"688802": [
{
"date": "2026-07-09",
"high": 1008.0,
"low": 855.0,
"close": 958.0,
"volume": 4048232.0,
"amount": 375987.0
}
],
"000657": [
{
"date": "2026-07-09",
"high": 76.0,
"low": 71.06,
"close": 72.67,
"volume": 356301.0,
"amount": 261932.0
}
],
"301308": [
{
"date": "2026-07-09",
"high": 622.1,
"low": 589.73,
"close": 605.89,
"volume": 110818.0,
"amount": 672825.0
}
]
}
+8
View File
@@ -18,3 +18,11 @@
- `scripts/intraday_health_check.py` — check_signal_pipeline: 增加 total_unproc 查询和非xiaoguo预警
- `scripts/system_audit.py` — audit_signals: 增加 total_unproc 查询和MEDIUM级别溢出预警
- `CHANGELOG.md` — 追记监控盲区修复
## [2026-07-09 14:xx] 自愈执行器升级:信号积压126条(divergence_watch/trend无consumer
- **发现**: 自愈执行器上报「其它来源信号积压: 126条未处理(divergence_watch/trend等无consumer)」
- **调查**: divergence_watch 80条全部未处理 — divergence_detector.py写入signal_news但已自写macro_divergence_state.jsonsignal_news仅归档副本。trend 46条未处理 — 废弃系统的死数据,summary为空
- **修复**: divergence_detector.py — INSERT时加processed=1(归档性质不需要consumer)。DB — 80条divergence_watch + 46条trend历史标记为processed。同步cron目录MD5一致
- **效果**: signal_news 1077条全量已处理,健康检查PASS,后续不会再次积压
- **涉及文件**: scripts/divergence_detector.py, data/mofin.db, CHANGELOG.md
+2 -2
View File
@@ -256,7 +256,7 @@ def write_to_signal_news(signals):
if high_signals:
for s in high_signals:
conn.execute(
"INSERT INTO signal_news (signal_id, sector, overall_sentiment, summary, key_articles, searched_stocks, source) VALUES (?, ?, ?, ?, ?, ?, ?)",
"INSERT INTO signal_news (signal_id, sector, overall_sentiment, summary, key_articles, searched_stocks, source, processed) VALUES (?, ?, ?, ?, ?, ?, ?, 1)",
(0, "跨市场", f"背离-{s['direction'].upper()}", s["desc"], json.dumps(s, ensure_ascii=False), "", "divergence_watch")
)
conn.commit()
@@ -265,7 +265,7 @@ def write_to_signal_news(signals):
if med_signals:
summary = "\n".join([s["desc"] for s in med_signals])
conn.execute(
"INSERT INTO signal_news (signal_id, sector, overall_sentiment, summary, key_articles, searched_stocks, source) VALUES (?, ?, ?, ?, ?, ?, ?)",
"INSERT INTO signal_news (signal_id, sector, overall_sentiment, summary, key_articles, searched_stocks, source, processed) VALUES (?, ?, ?, ?, ?, ?, ?, 1)",
(0, "跨市场", "背离-MEDIUM", summary, json.dumps(med_signals, ensure_ascii=False), "", "divergence_watch")
)
conn.commit()
+152 -170
View File
@@ -1,5 +1,5 @@
{
"generated_at": "2026-07-09 10:30:40",
"generated_at": "2026-07-09 13:30:52",
"feature_tree": {
"label": "MoFin 系统",
"status": "ok",
@@ -18,7 +18,7 @@
"script": "market_watch.py",
"schedule": "*/10 9-11,13-15 * * 1-5",
"status": "ok",
"last_run": "2026-07-09T10:21",
"last_run": "2026-07-09T13:20",
"type": "no_agent",
"profile": "position-analyst"
}
@@ -38,8 +38,8 @@
"name": "价格监控-高频",
"script": "price_monitor.py",
"schedule": "*/2 9-16 * * 1-5",
"status": "error",
"last_run": "2026-07-09T10:29",
"status": "ok",
"last_run": "2026-07-09T13:28",
"type": "no_agent",
"profile": "position-analyst"
}
@@ -55,7 +55,7 @@
"script": "xiaoguo_scanner.py",
"schedule": "*/5 9-15 * * 1-5",
"status": "ok",
"last_run": "2026-07-09T10:27",
"last_run": "2026-07-09T13:25",
"type": "no_agent",
"profile": "position-analyst"
}
@@ -71,7 +71,7 @@
"script": "capital_flow_collector.py",
"schedule": "1,31 9-15 * * 1-5",
"status": "ok",
"last_run": "2026-07-09T10:01",
"last_run": "2026-07-09T13:01",
"type": "no_agent",
"profile": "position-analyst"
}
@@ -87,7 +87,7 @@
"script": "refresh_macro_context.py",
"schedule": "*/30 9-15 * * 1-5",
"status": "ok",
"last_run": "2026-07-09T10:01",
"last_run": "2026-07-09T13:01",
"type": "no_agent",
"profile": "position-analyst"
}
@@ -103,7 +103,7 @@
"script": "macro_context_collector.py",
"schedule": "*/30 8-16 * * *",
"status": "ok",
"last_run": "2026-07-09T10:01",
"last_run": "2026-07-09T13:01",
"type": "no_agent",
"profile": "position-analyst"
}
@@ -146,8 +146,8 @@
"name": "自选买入区提醒-盘前午间尾盘",
"script": "per_stock_reassess.py",
"schedule": "0 9,12,15 * * 1-5",
"status": "ok",
"last_run": "2026-07-09T10:25",
"status": "error",
"last_run": "2026-07-09T12:02",
"type": "no_agent",
"profile": "position-analyst"
},
@@ -156,7 +156,7 @@
"script": "stale_push_wlin.py",
"schedule": "1,31 9-15 * * 1-5",
"status": "ok",
"last_run": "2026-07-09T10:01",
"last_run": "2026-07-09T13:01",
"type": "no_agent",
"profile": "position-analyst"
}
@@ -206,7 +206,7 @@
"script": "branch_scanner.py",
"schedule": "15,30,45,00 9-15 * * 1-5",
"status": "ok",
"last_run": "2026-07-09T10:30",
"last_run": "2026-07-09T13:30",
"type": "no_agent",
"profile": "position-analyst"
}
@@ -222,7 +222,7 @@
"script": "meta_growth.py",
"schedule": "45 0,12 * * 1-5",
"status": "ok",
"last_run": "2026-07-09T00:45",
"last_run": "2026-07-09T12:45",
"type": "no_agent",
"profile": "position-analyst"
}
@@ -277,7 +277,7 @@
"script": "generate_report.py intraday_monitor",
"schedule": "25,40,55,10 9-11 * * 1-5",
"status": "ok",
"last_run": "2026-07-09T10:21",
"last_run": "2026-07-09T12:08",
"type": "LLM",
"profile": "position-analyst"
}
@@ -309,7 +309,7 @@
"script": "cron_to_xmpp.py",
"schedule": "*/5 9-16 * * 1-5",
"status": "ok",
"last_run": "2026-07-09T10:26",
"last_run": "2026-07-09T13:25",
"type": "no_agent",
"profile": "position-analyst"
}
@@ -421,7 +421,7 @@
"script": "cron_to_xmpp.py",
"schedule": "* 9-16 * * 1-5",
"status": "ok",
"last_run": "2026-07-09T10:29",
"last_run": "2026-07-09T13:29",
"type": "no_agent",
"profile": "default"
}
@@ -453,7 +453,7 @@
"script": null,
"schedule": "30 11 * * 1-5",
"status": "ok",
"last_run": "2026-07-08T11:37",
"last_run": "2026-07-09T12:05",
"type": "LLM",
"profile": "position-analyst"
},
@@ -478,7 +478,7 @@
"script": "macro_signal_consumer.py",
"schedule": "5,20,35,50 9-15 * * 1-5",
"status": "ok",
"last_run": "2026-07-09T10:20",
"last_run": "2026-07-09T13:20",
"type": "no_agent",
"profile": "position-analyst"
}
@@ -494,7 +494,7 @@
"script": "divergence_detector.py",
"schedule": "*/30 8-15 * * *",
"status": "ok",
"last_run": "2026-07-09T10:00",
"last_run": "2026-07-09T13:01",
"type": "no_agent",
"profile": "position-analyst"
},
@@ -519,7 +519,7 @@
"script": "xiaoguo_signal_consumer.py",
"schedule": "0,15,30,45 9-15 * * 1-5",
"status": "ok",
"last_run": "2026-07-09T10:17",
"last_run": "2026-07-09T13:15",
"type": "no_agent",
"profile": "position-analyst"
}
@@ -558,7 +558,7 @@
"script": "cron_health_monitor.py",
"schedule": "*/10 9-16 * * 1-5",
"status": "ok",
"last_run": "2026-07-09T10:21",
"last_run": "2026-07-09T13:20",
"type": "no_agent",
"profile": "position-analyst"
}
@@ -574,7 +574,7 @@
"script": "verify_reassess_pipeline.py",
"schedule": "*/30 9-16 * * 1-5",
"status": "ok",
"last_run": "2026-07-09T10:30",
"last_run": "2026-07-09T13:01",
"type": "no_agent",
"profile": "position-analyst"
}
@@ -590,7 +590,7 @@
"script": "mofin_health.py",
"schedule": "*/15 9-16,20-22 * * 1-5",
"status": "ok",
"last_run": "2026-07-09T10:16",
"last_run": "2026-07-09T13:15",
"type": "no_agent",
"profile": "position-analyst"
}
@@ -622,7 +622,7 @@
"script": "intraday_health_check.py",
"schedule": "*/15 9-15 * * 1-5",
"status": "ok",
"last_run": "2026-07-09T10:15",
"last_run": "2026-07-09T13:15",
"type": "no_agent",
"profile": "position-analyst"
}
@@ -677,7 +677,7 @@
"script": "self_todo_executor.py",
"schedule": "*/10 8-22 * * 1-5",
"status": "ok",
"last_run": "2026-07-09T10:30",
"last_run": "2026-07-09T13:30",
"type": "no_agent",
"profile": "position-analyst"
}
@@ -693,7 +693,7 @@
"script": "review_needed_watchdog.py",
"schedule": "0,30 9-15 * * 1-5",
"status": "ok",
"last_run": "2026-07-09T10:30",
"last_run": "2026-07-09T13:30",
"type": "no_agent",
"profile": "position-analyst"
}
@@ -815,7 +815,7 @@
"script": "monitor_300308.py",
"schedule": "*/2 13-14 * * 1-5",
"status": "ok",
"last_run": "2026-07-08T14:58",
"last_run": "2026-07-09T13:30",
"type": "no_agent",
"profile": "position-analyst"
}
@@ -831,7 +831,7 @@
"script": "300308_monitor.py",
"schedule": "*/2 13-14 * * 1-5",
"status": "ok",
"last_run": "2026-07-08T14:58",
"last_run": "2026-07-09T13:30",
"type": "no_agent",
"profile": "position-analyst"
}
@@ -840,14 +840,14 @@
{
"label": "多周期缓存刷新-盘中 (refresh_mtf_cache.py)",
"desc": "盘中刷新技术指标缓存",
"status": "ok",
"status": "error",
"pipes": [
{
"name": "多周期缓存刷新-盘中",
"script": "refresh_mtf_cache.py",
"schedule": "0 9,11,14 * * 1-5",
"status": "ok",
"last_run": "2026-07-08T14:01",
"status": "error",
"last_run": "2026-07-09T11:03",
"type": "no_agent",
"profile": "position-analyst"
}
@@ -964,8 +964,8 @@
"desc": "建议执行时间线",
"rows": 12735,
"readers": [
"mofin_db",
"advice_reconciliation"
"advice_reconciliation",
"mofin_db"
],
"writers": [
"advice_reconciliation"
@@ -1122,20 +1122,20 @@
"desc": "每只股票的完整策略参数",
"rows": 65,
"readers": [
"sync_decisions_to_db",
"verify_reassess_pipeline",
"strategy_lifecycle",
"mofin_db",
"run_all_tests",
"mofin_collect",
"system_audit",
"mo_data",
"per_stock_reassess",
"pre-flight-check"
"stale_push_wlin",
"system_health_check",
"strategy_lifecycle",
"sync_decisions_to_db",
"mofin_db",
"mofin_collect",
"verify_reassess_pipeline",
"pre-flight-check",
"data_governance"
],
"writers": [
"sync_decisions_to_db",
"mofin_db",
"sync_decisions_to_db",
"data_governance"
],
"has_input": true,
@@ -1165,15 +1165,15 @@
"rows": 19,
"readers": [
"mofin_collect",
"prepare_report_data",
"mo_data",
"price_monitor",
"xiaoguo_signal_consumer",
"import_holding_xls",
"run_all_tests",
"per_stock_reassess",
"refresh_mtf_cache",
"system_audit",
"prepare_recommendation",
"stale_push_wlin"
"xiaoguo_scanner",
"price_monitor",
"stale_push_wlin",
"server"
],
"writers": [
"import_holding_xls",
@@ -1203,13 +1203,13 @@
{
"name": "live_prices",
"desc": "所有持仓+自选最新实时价",
"rows": 34,
"rows": 42,
"readers": [
"verify_reassess_pipeline",
"mofin_db",
"verify_reassess_pipeline",
"cron_health_monitor",
"system_audit",
"mo_data"
"mo_data",
"system_audit"
],
"writers": [
"mo_data",
@@ -1237,15 +1237,15 @@
{
"name": "macro_context_log",
"desc": "宏观上下文(大盘偏向/指数)",
"rows": 15,
"rows": 19,
"readers": [
"stock_profile",
"strategy_lifecycle",
"system_audit",
"divergence_detector",
"xiaoguo_signal_consumer",
"strategy_tree",
"stale_push_wlin"
"stock_profile",
"stale_push_wlin",
"strategy_lifecycle",
"divergence_detector",
"system_audit"
],
"writers": [
"refresh_macro_context"
@@ -1271,7 +1271,7 @@
{
"name": "macro_raw_news",
"desc": "宏观新闻原始数据",
"rows": 8657,
"rows": 8927,
"readers": [
"macro_context_collector",
"system_audit"
@@ -1298,14 +1298,14 @@
{
"name": "market_snapshots",
"desc": "大盘指数快照(每10分)",
"rows": 555,
"rows": 567,
"readers": [
"trend_detector",
"mofin_db",
"prepare_report_data",
"market_screener",
"system_audit",
"mofin_query",
"prepare_report_data"
"system_audit"
],
"writers": [
"mofin_db"
@@ -1365,11 +1365,11 @@
"rows": 1,
"readers": [
"import_holding_xls",
"mofin_db",
"mo_data",
"preflight_verify",
"mofin_db",
"price_monitor",
"prepare_report_data"
"prepare_report_data",
"mo_data"
],
"writers": [
"import_holding_xls",
@@ -1425,15 +1425,15 @@
"desc": "行业信号(趋势检测产出)",
"rows": 653,
"readers": [
"xiaoguo_news_processor",
"mofin_news",
"trend_detector",
"server",
"mofin_news"
"xiaoguo_news_processor"
],
"writers": [
"xiaoguo_news_processor",
"mofin_news",
"trend_detector",
"mofin_news"
"xiaoguo_news_processor"
],
"has_input": true,
"has_output": true,
@@ -1458,11 +1458,11 @@
{
"name": "sector_snapshots",
"desc": "行业板块数据",
"rows": 44770,
"rows": 45700,
"readers": [
"strategy_lifecycle",
"market_screener",
"trend_detector",
"market_screener",
"mofin_db"
],
"writers": [
@@ -1489,22 +1489,22 @@
{
"name": "signal_news",
"desc": "信号相关新闻",
"rows": 1075,
"rows": 1090,
"readers": [
"macro_signal_consumer",
"system_audit",
"xiaoguo_signal_consumer",
"macro_signal_consumer",
"intraday_health_check",
"server"
"server",
"system_audit"
],
"writers": [
"mofin_news",
"macro_signal_consumer",
"macro_context_collector",
"divergence_detector",
"xiaoguo_signal_consumer",
"macro_context_collector",
"mofin_news",
"xiaoguo_news_processor",
"xiaoguo_scanner"
"macro_signal_consumer",
"xiaoguo_scanner",
"divergence_detector"
],
"has_input": true,
"has_output": true,
@@ -1559,7 +1559,7 @@
{
"name": "stock_daily",
"desc": "日线行情",
"rows": 6502,
"rows": 6522,
"readers": [
"mofin_db"
],
@@ -1599,7 +1599,7 @@
{
"name": "stock_monthly",
"desc": "月线行情",
"rows": 640,
"rows": 647,
"readers": [],
"writers": [],
"has_input": false,
@@ -1614,11 +1614,11 @@
"desc": "股票行业映射",
"rows": 62,
"readers": [
"strategy_lifecycle",
"trend_detector",
"mofin_news",
"xiaoguo_news_processor",
"trend_detector",
"mofin_db",
"xiaoguo_news_processor"
"strategy_lifecycle"
],
"writers": [
"mofin_db"
@@ -1644,7 +1644,7 @@
{
"name": "stock_weekly",
"desc": "周线行情",
"rows": 1296,
"rows": 1303,
"readers": [],
"writers": [],
"has_input": false,
@@ -1659,9 +1659,9 @@
"desc": "全量股票代码",
"rows": 90,
"readers": [
"xiaoguo_news_processor",
"trend_detector",
"mofin_news",
"trend_detector",
"xiaoguo_news_processor",
"mofin_db"
],
"writers": [
@@ -1690,8 +1690,8 @@
"desc": "策略重评历史记录",
"rows": 217,
"readers": [
"system_audit",
"verify_reassess_pipeline",
"system_audit",
"mofin_db"
],
"writers": [
@@ -1744,20 +1744,20 @@
{
"name": "todos",
"desc": "自愈任务队列",
"rows": 67,
"rows": 68,
"readers": [
"self_todo_executor",
"intraday_health_check",
"morning_health_check",
"intraday_health_check",
"strategy-staleness-check"
],
"writers": [
"strategy-staleness-check",
"mofin_collect",
"preflight_verify",
"self_todo_executor",
"mofin_collect",
"intraday_health_check",
"morning_health_check"
"self_todo_executor",
"morning_health_check",
"strategy-staleness-check"
],
"has_input": true,
"has_output": true,
@@ -1786,16 +1786,16 @@
"desc": "自选股列表",
"rows": 43,
"readers": [
"per_stock_reassess",
"xiaoguo_signal_consumer",
"mo_alphasift_bridge",
"refresh_mtf_cache",
"trend_detector",
"mofin_db",
"run_all_tests",
"refresh_mtf_cache",
"mofin_collect",
"mo_alphasift_bridge",
"mo_data",
"per_stock_reassess",
"stock_quote",
"price_monitor",
"stock_quote"
"xiaoguo_scanner"
],
"writers": [
"per_stock_reassess",
@@ -1823,7 +1823,7 @@
{
"name": "xiaoguo_scan_tracker",
"desc": "小果扫描跟踪",
"rows": 519,
"rows": 526,
"readers": [
"server",
"xiaoguo_scanner"
@@ -1870,10 +1870,10 @@
{
"name": "candidate_pool.json",
"desc": "潜力股候选池完整数据",
"size_kb": 47.5,
"size_kb": 50.6,
"readers": [],
"writers": [],
"last_modified": "07-09 10:10",
"last_modified": "07-09 12:09",
"warn": true
},
{
@@ -1942,10 +1942,10 @@
{
"name": "growth_registry.json",
"desc": "",
"size_kb": 1.3,
"size_kb": 1.6,
"readers": [],
"writers": [],
"last_modified": "07-09 00:45",
"last_modified": "07-09 12:45",
"warn": true
},
{
@@ -1996,19 +1996,19 @@
{
"name": "macro_risk_state.json",
"desc": "宏观风险状态(采集器写入)",
"size_kb": 1.6,
"size_kb": 1.2,
"readers": [],
"writers": [],
"last_modified": "07-09 10:06",
"last_modified": "07-09 13:30",
"warn": true
},
{
"name": "mofin_health.json",
"desc": "健康监控数据",
"size_kb": 82.9,
"size_kb": 82.4,
"readers": [],
"writers": [],
"last_modified": "07-09 10:16",
"last_modified": "07-09 13:15",
"warn": true
},
{
@@ -2050,19 +2050,19 @@
{
"name": "price_events.json",
"desc": "",
"size_kb": 66.1,
"size_kb": 112.8,
"readers": [],
"writers": [],
"last_modified": "07-09 10:30",
"last_modified": "07-09 13:30",
"warn": true
},
{
"name": "price_history.json",
"desc": "",
"size_kb": 1.9,
"size_kb": 4.1,
"readers": [],
"writers": [],
"last_modified": "07-09 10:30",
"last_modified": "07-09 13:30",
"warn": true
},
{
@@ -2080,7 +2080,7 @@
"size_kb": 0.1,
"readers": [],
"writers": [],
"last_modified": "07-09 10:30",
"last_modified": "07-09 13:30",
"warn": true
},
{
@@ -2199,7 +2199,7 @@
"script": "monitor_300308.py",
"schedule": "*/2 13-14 * * 1-5",
"status": "ok",
"last_run": "2026-07-08T14:58:43",
"last_run": "2026-07-09T13:30:51",
"profile": "position-analyst"
},
{
@@ -2208,7 +2208,7 @@
"script": "300308_monitor.py",
"schedule": "*/2 13-14 * * 1-5",
"status": "ok",
"last_run": "2026-07-08T14:58:41",
"last_run": "2026-07-09T13:30:52",
"profile": "position-analyst"
},
{
@@ -2217,27 +2217,9 @@
"script": "cron_watchdog.py",
"schedule": "*/15 9-16 * * 1-5",
"status": "error",
"last_run": "2026-07-09T10:15:52",
"last_run": "2026-07-09T13:15:31",
"profile": "default"
},
{
"name": "MoFin 午后监控",
"type": "LLM",
"script": "generate_report.py intraday_monitor",
"schedule": "5,20,35,50 13-15 * * 1-5",
"status": "ok",
"last_run": "2026-07-08T15:54:54",
"profile": "position-analyst"
},
{
"name": "MoFin 盘前中监控",
"type": "LLM",
"script": "generate_report.py intraday_monitor",
"schedule": "25,40,55,10 9-11 * * 1-5",
"status": "ok",
"last_run": "2026-07-09T10:21:54",
"profile": "position-analyst"
},
{
"name": "MoFin 系统常规体检-开盘前",
"type": "no_agent",
@@ -2253,7 +2235,7 @@
"script": "bot_monitor.sh",
"schedule": "every 60m",
"status": "ok",
"last_run": "2026-07-09T09:51:43",
"last_run": "2026-07-09T12:53:59",
"profile": "default"
},
{
@@ -2262,7 +2244,7 @@
"script": "cron_to_xmpp.py",
"schedule": "* 9-16 * * 1-5",
"status": "ok",
"last_run": "2026-07-09T10:29:30",
"last_run": "2026-07-09T13:29:53",
"profile": "default"
},
{
@@ -2271,7 +2253,7 @@
"script": "cron_to_xmpp.py",
"schedule": "*/5 9-16 * * 1-5",
"status": "ok",
"last_run": "2026-07-09T10:26:07",
"last_run": "2026-07-09T13:25:33",
"profile": "position-analyst"
},
{
@@ -2280,7 +2262,7 @@
"script": null,
"schedule": "0 * * * *",
"status": "ok",
"last_run": "2026-07-09T10:10:50",
"last_run": "2026-07-09T13:12:45",
"profile": "default"
},
{
@@ -2307,7 +2289,7 @@
"script": "xiaoguo_quick_scan.py",
"schedule": "*/15 * * * *",
"status": "ok",
"last_run": "2026-07-09T10:15:55",
"last_run": "2026-07-09T13:15:33",
"profile": "default"
},
{
@@ -2315,8 +2297,8 @@
"type": "no_agent",
"script": "xiaoguo_tunnel_watchdog.sh",
"schedule": "*/5 * * * *",
"status": "ok",
"last_run": "2026-07-09T10:25:21",
"status": "error",
"last_run": "2026-07-09T13:27:47",
"profile": "default"
},
{
@@ -2324,8 +2306,8 @@
"type": "no_agent",
"script": "price_monitor.py",
"schedule": "*/2 9-16 * * 1-5",
"status": "error",
"last_run": "2026-07-09T10:29:07",
"status": "ok",
"last_run": "2026-07-09T13:28:01",
"profile": "position-analyst"
},
{
@@ -2334,7 +2316,7 @@
"script": "mofin_health.py",
"schedule": "*/15 9-16,20-22 * * 1-5",
"status": "ok",
"last_run": "2026-07-09T10:16:13",
"last_run": "2026-07-09T13:15:28",
"profile": "position-analyst"
},
{
@@ -2343,7 +2325,7 @@
"script": "meta_growth.py",
"schedule": "45 0,12 * * 1-5",
"status": "ok",
"last_run": "2026-07-09T00:45:05",
"last_run": "2026-07-09T12:45:41",
"profile": "position-analyst"
},
{
@@ -2352,7 +2334,7 @@
"script": "cron_health_monitor.py",
"schedule": "*/10 9-16 * * 1-5",
"status": "ok",
"last_run": "2026-07-09T10:21:22",
"last_run": "2026-07-09T13:20:59",
"profile": "position-analyst"
},
{
@@ -2370,7 +2352,7 @@
"script": "branch_scanner.py",
"schedule": "15,30,45,00 9-15 * * 1-5",
"status": "ok",
"last_run": "2026-07-09T10:30:31",
"last_run": "2026-07-09T13:30:52",
"profile": "position-analyst"
},
{
@@ -2387,8 +2369,8 @@
"type": "no_agent",
"script": "refresh_mtf_cache.py",
"schedule": "0 9,11,14 * * 1-5",
"status": "ok",
"last_run": "2026-07-08T14:01:26",
"status": "error",
"last_run": "2026-07-09T11:03:19",
"profile": "position-analyst"
},
{
@@ -2397,7 +2379,7 @@
"script": "",
"schedule": "{'kind': 'cron', 'expr': '*/10 * * * *'}",
"status": "ok",
"last_run": "2026-07-09T10:21:54",
"last_run": "2026-07-09T13:20:54",
"profile": "default"
},
{
@@ -2406,7 +2388,7 @@
"script": "refresh_macro_context.py",
"schedule": "*/30 9-15 * * 1-5",
"status": "ok",
"last_run": "2026-07-09T10:01:04",
"last_run": "2026-07-09T13:01:09",
"profile": "position-analyst"
},
{
@@ -2415,7 +2397,7 @@
"script": "macro_context_collector.py",
"schedule": "*/30 8-16 * * *",
"status": "ok",
"last_run": "2026-07-09T10:01:09",
"last_run": "2026-07-09T13:01:12",
"profile": "position-analyst"
},
{
@@ -2424,7 +2406,7 @@
"script": "macro_signal_consumer.py",
"schedule": "5,20,35,50 9-15 * * 1-5",
"status": "ok",
"last_run": "2026-07-09T10:20:53",
"last_run": "2026-07-09T13:20:35",
"profile": "position-analyst"
},
{
@@ -2442,7 +2424,7 @@
"script": null,
"schedule": "30 11 * * 1-5",
"status": "ok",
"last_run": "2026-07-08T11:37:35",
"last_run": "2026-07-09T12:05:13",
"profile": "position-analyst"
},
{
@@ -2460,7 +2442,7 @@
"script": "xiaoguo_signal_consumer.py",
"schedule": "0,15,30,45 9-15 * * 1-5",
"status": "ok",
"last_run": "2026-07-09T10:17:05",
"last_run": "2026-07-09T13:15:25",
"profile": "position-analyst"
},
{
@@ -2487,7 +2469,7 @@
"script": "xiaoguo_scanner.py",
"schedule": "*/5 9-15 * * 1-5",
"status": "ok",
"last_run": "2026-07-09T10:27:08",
"last_run": "2026-07-09T13:25:45",
"profile": "position-analyst"
},
{
@@ -2496,7 +2478,7 @@
"script": "market_watch.py",
"schedule": "*/10 9-11,13-15 * * 1-5",
"status": "ok",
"last_run": "2026-07-09T10:21:00",
"last_run": "2026-07-09T13:20:39",
"profile": "position-analyst"
},
{
@@ -2505,7 +2487,7 @@
"script": "market_watch.py",
"schedule": "0,30 9-16 * * 1-5",
"status": "ok",
"last_run": "2026-07-09T10:00:41",
"last_run": "2026-07-09T13:00:14",
"profile": "default"
},
{
@@ -2604,7 +2586,7 @@
"script": "intraday_health_check.py",
"schedule": "*/15 9-15 * * 1-5",
"status": "ok",
"last_run": "2026-07-09T10:15:46",
"last_run": "2026-07-09T13:15:25",
"profile": "position-analyst"
},
{
@@ -2694,7 +2676,7 @@
"script": "review_needed_watchdog.py",
"schedule": "0,30 9-15 * * 1-5",
"status": "ok",
"last_run": "2026-07-09T10:30:34",
"last_run": "2026-07-09T13:30:50",
"profile": "position-analyst"
},
{
@@ -2721,7 +2703,7 @@
"script": "self_todo_executor.py",
"schedule": "*/10 8-22 * * 1-5",
"status": "ok",
"last_run": "2026-07-09T10:30:36",
"last_run": "2026-07-09T13:30:52",
"profile": "position-analyst"
},
{
@@ -2739,7 +2721,7 @@
"script": "stale_push_wlin.py",
"schedule": "1,31 9-15 * * 1-5",
"status": "ok",
"last_run": "2026-07-09T10:01:58",
"last_run": "2026-07-09T13:01:59",
"profile": "position-analyst"
},
{
@@ -2747,8 +2729,8 @@
"type": "no_agent",
"script": "per_stock_reassess.py",
"schedule": "0 9,12,15 * * 1-5",
"status": "ok",
"last_run": "2026-07-09T10:25:00",
"status": "error",
"last_run": "2026-07-09T12:02:59",
"profile": "position-analyst"
},
{
@@ -2802,7 +2784,7 @@
"script": "capital_flow_collector.py",
"schedule": "1,31 9-15 * * 1-5",
"status": "ok",
"last_run": "2026-07-09T10:01:57",
"last_run": "2026-07-09T13:01:59",
"profile": "position-analyst"
},
{
@@ -2811,7 +2793,7 @@
"script": "divergence_detector.py",
"schedule": "*/30 8-15 * * *",
"status": "ok",
"last_run": "2026-07-09T10:00:55",
"last_run": "2026-07-09T13:01:03",
"profile": "position-analyst"
},
{
@@ -2829,7 +2811,7 @@
"script": "verify_reassess_pipeline.py",
"schedule": "*/30 9-16 * * 1-5",
"status": "ok",
"last_run": "2026-07-09T10:30:37",
"last_run": "2026-07-09T13:01:04",
"profile": "position-analyst"
},
{