docs+fix: 生命周期管理文档 + signal_news processed标记
- docs/lifecycle-management.md 完整生命周期规范(5大对象) - 信号、股票、策略、建议、评估的完整状态流转 - 自我提升循环:信号→评估→执行→对比→修正→验证 - 当前缺口与修复清单 - signal_news 加 processed 列,处理完标记不重复 - 两个盯盘cron prompt同步更新:读未处理信号(WHERE processed=0)+标记已处理
This commit is contained in:
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,313 @@
|
||||
# MoFin 对象生命周期管理 — 完整规范
|
||||
|
||||
> 版本: 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)
|
||||
Reference in New Issue
Block a user