diff --git a/CHANGELOG.md b/CHANGELOG.md index 158d7223..05939d55 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -136,13 +136,21 @@ total_assets: stored = calculated ✅ ### 6. 数据 - watchlist新增 000850 华茂股份(金融股权低估逻辑,PB 0.83破净,2026-07-03公告分红3675万) - ### 已知未解决 - ejabberd容器重启46次(exit code 0+无日志,系统负载高峰时被外部信号杀死) ---- +## 2026-07-09 -## 2026-07-08 — JSON 全面清理 +**stale_push_wlin 推送流程重构** + +- 加4小时重评冷却:查DB `holding_strategies.updated_at`,冷却期内跳过 per_stock_reassess +- Zone notes冷却30分→4小时,匹配重评冷却 +- 修早退bug:`if not actionable: return 0` → `if not actionable and not zone_notes` +- 标题自适应:有推荐→"自选买入提醒" | 仅区间→"操作区间提醒" +- 操作建议标题只在有可操作项时显示 +- 区间说明格式改为 Dad 确认的"进入操作区间,但重评结果: xxx" + +--- ### 修正的活代码路径(唯一真正在读写 JSON 的路径) - `price_monitor.py` — 每2分钟读 decisions.json 改为 mo_data.read_decisions()(DB) diff --git a/analyst-knowledge-log.md b/analyst-knowledge-log.md index 09fd276b..05171307 100644 --- a/analyst-knowledge-log.md +++ b/analyst-knowledge-log.md @@ -242,4 +242,22 @@ intraday_health_check在09:01检查价格新鲜度,price_monitor刚启动未 **涉及文件:** scripts/price_monitor.py, price_data_inject.py, market_insight.py, inspect_decisions.py, strategy_summary.py, fix_portfolio_prices.py, pre-flight-check.py, intraday_health_check.py cron prompt for 系统健康检查-开盘前 (job_id: 37c02f4d7df9) -analyst-knowledge-log.md (本文件) \ No newline at end of file +|analyst-knowledge-log.md (本文件) + +## 2026-07-09 stale_push_wlin.py — 按Dad确认流程重构推送逻辑 + +**发现了什么:** +- 推送流程没有重评冷却 — 每30分钟cron都调用per_stock_reassess重评同一批在买入区的股票 +- Zone notes(进区间但不可操作的说明消息)冷却只有30分钟 → 太短 +- 第582行 `if not actionable: return 0` 导致zone_notes为空时也早退,有区间说明时静默不发 +- 标题和格式没有正确区分"有推荐操作"和"仅有区间说明" + +**修改了什么:** +- 文件: `scripts/stale_push_wlin.py` +- 加 `REASSESS_COOLDOWN_HOURS = 4` + `get_last_reassess_time()` / `is_due_for_reassess()` — 查DB holding_strategies.updated_at 决定是否跳过重评 +- 重评调用前过滤:只对冷却期外的股票调 trigger_regen_sync() +- Zone notes 冷却30分钟→4小时(匹配重评冷却) +- 早退bug修复:`if not actionable and not zone_notes: return 0` +- 标题自适应:有推荐→【知微】自选买入提醒 | 仅区间→【知微】操作区间提醒 +- 操作建议标题只在有可操作项时显示(`if actionable:`) +- 区间说明格式改为: "→ 进入操作区间,但重评结果: {reason}" \ No newline at end of file diff --git a/data/mofin.db-shm b/data/mofin.db-shm index 5b28b44d..73e13565 100644 Binary files a/data/mofin.db-shm and b/data/mofin.db-shm differ diff --git a/data/mofin.db-wal b/data/mofin.db-wal index 4e47ccd8..a16f13c3 100644 Binary files a/data/mofin.db-wal and b/data/mofin.db-wal differ diff --git a/data/price_events.json b/data/price_events.json index 3f32a053..e761208b 100644 --- a/data/price_events.json +++ b/data/price_events.json @@ -2589,6 +2589,66 @@ "event_label": "加仓区间", "timestamp": "2026-07-09T10:31:57.651960", "date": "2026-07-09" + }, + { + "code": "000850", + "name": "华茂股份", + "event_type": "entry_zone", + "price": 3.73, + "trigger_value": "3.73~3.84", + "event_label": "加仓区间", + "timestamp": "2026-07-09T10:34:42.295064", + "date": "2026-07-09" + }, + { + "code": "000850", + "name": "华茂股份", + "event_type": "entry_zone", + "price": 3.73, + "trigger_value": "0.0~4.04", + "event_label": "止盈区间", + "timestamp": "2026-07-09T10:35:03.236599", + "date": "2026-07-09" + }, + { + "code": "001309", + "name": "德明利", + "event_type": "entry_zone", + "price": 815.0, + "trigger_value": "808.5~841.5", + "event_label": "加仓区间", + "timestamp": "2026-07-09T10:35:10.956306", + "date": "2026-07-09" + }, + { + "code": "002396", + "name": "星网锐捷", + "event_type": "entry_zone", + "price": 28.06, + "trigger_value": "0.0~30.69", + "event_label": "止盈区间", + "timestamp": "2026-07-09T10:35:22.935085", + "date": "2026-07-09" + }, + { + "code": "300548", + "name": "长芯博创", + "event_type": "entry_zone", + "price": 215.81, + "trigger_value": "0.0~219.98", + "event_label": "止盈区间", + "timestamp": "2026-07-09T10:35:37.247954", + "date": "2026-07-09" + }, + { + "code": "600111", + "name": "北方稀土", + "event_type": "entry_zone", + "price": 42.51, + "trigger_value": "0.0~50.13", + "event_label": "止盈区间", + "timestamp": "2026-07-09T10:35:48.187277", + "date": "2026-07-09" } ] } \ No newline at end of file diff --git a/data/price_history.json b/data/price_history.json index 8d12c228..c4d1e11a 100644 --- a/data/price_history.json +++ b/data/price_history.json @@ -4,9 +4,9 @@ "date": "2026-07-09", "high": 28.59, "low": 26.45, - "close": 27.94, - "volume": 781435.0, - "amount": 217305.0 + "close": 27.92, + "volume": 794409.0, + "amount": 220949.0 } ], "300548": [ @@ -14,19 +14,19 @@ "date": "2026-07-09", "high": 227.76, "low": 214.32, - "close": 216.93, - "volume": 58263.0, - "amount": 127706.0 + "close": 215.3, + "volume": 59358.0, + "amount": 130075.0 } ], "000850": [ { "date": "2026-07-09", "high": 3.86, - "low": 3.74, - "close": 3.74, - "volume": 35062.0, - "amount": 1330.0 + "low": 3.73, + "close": 3.73, + "volume": 36831.0, + "amount": 1396.0 } ], "001309": [ @@ -34,19 +34,19 @@ "date": "2026-07-09", "high": 849.99, "low": 810.0, - "close": 816.5, - "volume": 63185.0, - "amount": 526538.0 + "close": 812.95, + "volume": 64431.0, + "amount": 536681.0 } ], "600111": [ { "date": "2026-07-09", "high": 45.98, - "low": 42.43, - "close": 42.75, - "volume": 687127.0, - "amount": 302373.0 + "low": 42.36, + "close": 42.37, + "volume": 732957.0, + "amount": 321872.0 } ], "601101": [