From 06b8388887e70b169bb55fd9e21aaa90412ab7dc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=9F=A5=E5=BE=AE?= Date: Mon, 22 Jun 2026 20:12:00 +0800 Subject: [PATCH] =?UTF-8?q?docs+fix:=20=E7=94=9F=E5=91=BD=E5=91=A8?= =?UTF-8?q?=E6=9C=9F=E7=AE=A1=E7=90=86=E6=96=87=E6=A1=A3=20+=20signal=5Fne?= =?UTF-8?q?ws=20processed=E6=A0=87=E8=AE=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - docs/lifecycle-management.md 完整生命周期规范(5大对象) - 信号、股票、策略、建议、评估的完整状态流转 - 自我提升循环:信号→评估→执行→对比→修正→验证 - 当前缺口与修复清单 - signal_news 加 processed 列,处理完标记不重复 - 两个盯盘cron prompt同步更新:读未处理信号(WHERE processed=0)+标记已处理 --- data/mofin.db-shm | Bin 32768 -> 0 bytes data/mofin.db-wal | Bin 41232 -> 0 bytes docs/lifecycle-management.md | 313 +++++++++++++++++++++++++++++++++++ 3 files changed, 313 insertions(+) delete mode 100644 data/mofin.db-shm delete mode 100644 data/mofin.db-wal create mode 100644 docs/lifecycle-management.md diff --git a/data/mofin.db-shm b/data/mofin.db-shm deleted file mode 100644 index d7bc782e364b5e6cb31e974728a203545f05e5bd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 32768 zcmeI*zik3B6bInP|3H;0qCkQgi5?`TVE~F`fTYSMFvE$08CW5qMiCQ$O?3qY*G1g- zr026N`{duZfQP@c$kj~Uh31G1?q{Cc}#R^S^U- zQeR4STPzK&G+(FTGxb;Me205$r6Z;U2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009Cu5okuQCP~F4 zK!89U1RBw;LrfV75FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7e?KNaXiex*ne rAV7cs0RjXF5FkK+KsA9@yi_}2H-V=SXh;8PvIs(e009C79u>F(_x&tw diff --git a/data/mofin.db-wal b/data/mofin.db-wal deleted file mode 100644 index d666b340360154ead50540d1ae38b7d47c389c90..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 41232 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 LaX(}%(jELCW 版本: v1.0 | 最后更新: 2026-06-22 +> 核心理念:每个对象都有完整的生命周期,从生到死都有流程覆盖,不留孤儿。 + +--- + +## 一、总览:五大对象及其生命周期 + +``` + ┌──────────┐ + │ 信号Signal │ + └────┬─────┘ + │ 评估分流 + ▼ +┌──────────┐ ┌──────────┐ ┌──────────┐ +│ 候选股 │ → │ 自选股 │ → │ 持仓股 │ +│ (watching)│ │ (watchlist)│ │ (holdings)│ +└──────────┘ └────┬─────┘ └────┬─────┘ + │ │ + ▼ ▼ + ┌──────────┐ ┌──────────┐ + │ 策略 │ ← │ 建议 │ + │ (strategy)│ │ (advice) │ + └────┬─────┘ └────┬─────┘ + │ │ + ▼ ▼ + ┌──────────┐ ┌──────────┐ + │ 评估结果 │ │ 执行结果 │ + │ (evaluation)│ │ (result) │ + └──────────┘ └──────────┘ + ↘ ↙ + ┌──────────┐ + │ 反馈修正 │ + │ (feedback)│ + └──────────┘ +``` + +--- + +## 二、对象一:信号(Signal) + +### 定义 +xiaoguo_scanner 或 trend_detector 产出的原始信号,表示一只股票在某方面有异常。 + +### 状态流转 +``` +source写入(signal_news表) + │ + ▼ + ┌──────┐ + │ 未处理 │ ←─ source='xiaoguo' 或 'xiaoguo_risk' 或 'trend' + └──┬───┘ + │ 知微(盯盘cron)读取并评估 + ├──────────────────────────────────────┐ + ▼ ▼ + ┌──────┐ ┌──────┐ + │ 已采纳 │ │ 已忽略 │ + │ → 入自选│ │ → 跳过 │ + └──────┘ └──────┘ +``` + +### 处理流程 +1. **写入**:xiaoguo_scanner(每5min) / trend_detector(每25min) → INSERT INTO signal_news +2. **读取**:盯盘cron(每15-25min) → SELECT FROM signal_news WHERE source LIKE 'xiaoguo%' ORDER BY id DESC +3. **评估**:五维全面分析(大盘→行业→个股,消息+基本面+技术面) +4. **分流**: + - 采纳 → 加入自选(watchlist) + 生成策略(decisions.json) + - 关注 → 加入关注列表(watchlist status=watching) + - 忽略 → 不处理 + +### 当前缺口 +- [x] signal_news 缺 processed 标记 → 已修复(6/22): 加processed列,cron处理完后UPDATE标记 +- [x] xiaoguo_risk 信号已接入(cron prompt处理) + +### 修复方案 +为 signal_news 表新增 `processed` 字段(0=未处理, 1=已处理),cron处理完后 UPDATE 标记。 + +--- + +## 三、对象二:股票(Stock) + +### 定义 +系统中出现的任何股票。按参与深度分四级。 + +### 状态流转 +``` + 发现(信号来) + │ + ▼ +┌──────────┐ +│ 关注中 │ status=watching | watchlist.json +│ (watching)│ 有价钱监控,无正式策略 +└────┬─────┘ + │ 条件触发:>3%波动 / 有新闻 / 价格入区 + ▼ +┌──────────┐ +│ 正式自选 │ status=默认 | watchlist.json + decisions.json +│ (watchlist)│ 有完整策略(买入区/止损/止盈) +└────┬─────┘ + │ 用户买入执行 + ▼ +┌──────────┐ +│ 持仓 │ holdings表 + decisions.json(type=持仓策略) +│ (holdings)│ 有成本+仓位+策略,全过程监控 +└────┬─────┘ + │ 清仓/卖出 + ▼ +┌──────────┐ +│ 已关闭 │ status=closed | decisions.json保留但隐藏 +│ (closed) │ 历史记录不删除,前端不展示 +└──────────┘ +``` + +### 参与流程 +- 关注中 → price_monitor覆盖(每2min刷新价钱) +- 正式自选 → price_monitor + multi_tf_cache(每天9:00) + stale_detector + 策略重评(9:00/12:00) + 盯盘cron +- 持仓 → 全部上述 + 止损/止盈监控 + 组合分析 + +--- + +## 四、对象三:策略(Strategy) + +### 定义 +一个股票的操作规则,包含买入区/止损/止盈/仓位。 + +### 状态流转 +``` + 创建评估 + │ + ▼ +┌──────┐ +│ 新建 │ 首次生成策略 +└──┬───┘ + │ 写入decisions.json生效 + ▼ +┌──────┐ +│active│ 正常运行中 +└──┬───┘ + │ 超过14天未更新 / 价格偏离买入区>20% + ▼ +┌──────┐ +│stale │ 标记需要重评 +└──┬───┘ + │ stale_detector发现 + 触发重评 + ▼ +┌──────┐ +│ 重评 │ regenerate_all() / per_stock_reassess() +└──┬───┘ + │ + ├── 参数更新 → active(新版本) + └── 清仓 → closed(停止监控) +``` + +### 触发重评的条件(三线) +1. **价格偏离**:超买入区上沿>20%轻度 / >35%严重 +2. **时间过期**:>14天未更新 +3. **事件触发**:财报/板块政策/大盘系统性风险 + +### 评估反馈 +每次重评对比旧策略: +- 旧止损/止盈是否正确? +- 哪些判断对了?哪些错了? +- 记入 changelog 供下次参考 + +--- + +## 五、对象四:建议(Advice) + +### 定义 +知微给出的具体操作指令,"现价XX买入XX股"、"止损设XX"等。 + +### 状态流转 +``` + 知微生成建议 + │ + ▼ +┌──────┐ +│pending│ /api/advice/record → decisions.json advice_timeline +└──┬───┘ + │ + ├── 老爸执行操作 → executed(+结果) → 闭环完成 + ├── 老爸确认看到 → confirmed + └── 无效/过时 → ignored +``` + +### 闭环要求 +- ✅ pending → 生成时记录 +- ✅ executed → 支持标记(已修复 6/22) +- ✅ result字段 → 支持记录结果 +- ❌ 自动化闭环缺失:没有机制在操作执行后自动关联到对应建议 + +### 评估反馈 +- 建议执行后,对比执行结果与建议预期 +- 准确率统计存 accuracy_stats 表 +- 每周建议对账:advice_reconciliation.py + +--- + +## 六、对象五:评估(Evaluation) + +### 定义 +对策略执行情况的定期检查结论。这是"自我提升"的核心。 + +### 双维度评估框架 +``` + 阶段一(理论维度):策略规划是否正确? + ├─ 当初的买入区/止损/止盈设置是否合理? + ├─ 基于当时的数据,判断逻辑是否有问题? + └─ 输出:策略本身的质量评分 + + 阶段二(实际维度):执行结果如何? + ├─ 策略执行后股价走势是否符合预期? + ├─ 止损/止盈是否被触发?触发了结果如何? + └─ 输出:执行效果评分 +``` + +### 评估频率 +- 每日21:00 → 策略评估-每日 cron(六维评估) +- 每周21:00周六 → 策略评估-每周 cron(双维度全面评估) +- 每周20:00周六 → 建议对账-每周 cron(advice准确率) + +### 反馈修正流 +``` +评估结果 + ↓ +发现策略偏差 → 记入 knowledge-log + ↓ +修正策略参数 → 触发重评 + ↓ +新策略上线 → 加入监控 + ↓ +下一轮评估验证修正效果 +``` + +--- + +## 七、核心:自我提升循环 + +### 循环结构 +``` + ┌────────────┐ + │ 产生信号/数据 │ + └─────┬──────┘ + │ + ▼ + ┌────────────┐ + │ 知微分析评估 │ + └─────┬──────┘ + │ + ┌─────┴──────┐ + │ │ + ▼ ▼ + ┌────────┐ ┌────────┐ + │ 执行操作 │ │ 记录结论 │ + └────┬───┘ └────┬───┘ + │ │ + └─────┬──────┘ + ▼ + ┌────────────┐ + │ 对比预期结果 │ ← 实际走势 vs 当初判断 + └─────┬──────┘ + │ + ┌─────┴──────┐ + │ │ + ▼ ▼ + ┌────────┐ ┌────────┐ + │ 对了→固化 │ │ 错了→修正 │ + │ 记入知识库 │ │ 调策略/规则 │ + └────────┘ └────────┘ + │ + ▼ + ┌────────────┐ + │ 下一轮验证 │ ← 回到顶部 + └────────────┘ +``` + +### 落地手段 +| 环节 | 机制 | 频率 | +|------|------|------| +| 产生信号 | xiaoguo_scanner / trend_detector | 5-25min | +| 分析评估 | 盯盘cron / 策略评估cron | 15min-每日 | +| 执行操作 | 老爸手动 / advice_timeline记录 | 按需 | +| 对比结果 | advice_reconciliation / 策略评估 | 每周 | +| 知识萃取 | 知识萃取cron + knowledge-log | 每日16:30 | +| 修正迭代 | stale_detector + regenerate_all | 每日9:00/12:00 | + +--- + +## 八、当前缺口与修复清单 + +### 信号层 +- [ ] signal_news 缺 processed 标记 → 知微处理完的信号下次不重复读 +- [ ] xiaoguo_risk 信号目前无人处理(盯盘cron只看持仓止损,不读xiaoguo_risk) + +### 股票层 +- [ ] 关注→正式升级的触发机制不够自动化(依赖cron LLM判断,无硬性触发器) +- [ ] 已关闭股票不会主动从 watchlist 移除,只标记 status=closed + +### 策略层 +- [x] stale_detector 已实现(价格偏离+时间过期) +- [x] per_stock_reassess 已实现(盘中触发) +- [ ] 策略版本对比未自动记录到 changelog(手动的有,自动的无) + +### 建议层 +- [x] /api/advice/record 去重(6/22修复) +- [x] /api/advice/confirm 支持executed(6/22修复) +- [ ] 建议执行后自动回写result(需对接用户交易数据) + +### 反馈层 +- [x] 知识萃取cron已运行(每日16:30) +- [ ] 知识萃取结果自动触发系统修改(目前只记录不改) +- [x] 建议对账每周跑(advice_reconciliation.py)