Files
MoFin/analyst-knowledge-log.md
T
知微 13b4dcbcf0 三维分析框架固化(news-flow-analysis skill)
知识库、日志、报告格式自检清单同步更新。协鑫能科分析完成。
2026-06-28 22:06:24 +08:00

123 lines
6.3 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系统的缺陷修复和知识萃取项。
## 2026-06-23 09:00 数据采集脚本修复
**发现了什么:** `market_watch.py` cron任务报错,exit code 1
- 错误:`ModuleNotFoundError: No module named 'mofin_db'`
- 原因:脚本在 `/home/hmo/.hermes/scripts/` 下运行,Python路径不包含 `/home/hmo/MoFin/`
**修改了什么:**
- 文件:`/home/hmo/.hermes/scripts/market_watch.py`
- 在第19行(`from mofin_db import` 之前)插入:
```python
import sys
sys.path.insert(0, '/home/hmo/MoFin')
```
**效果预期:** 下次cron触发时脚本能正常导入mofin_db并完成市场数据采集+SQLite写入。
**同步发现的策略检查问题:**
- 自选股18只全部处于买入区(价格距离买入区<3%),属正常范围
- 其中2只策略为空(楚江新材、中谷物流)— 需补充
- 整体仓位93.02%,弱势+深套占比41.9%>40%
## 2026-06-25 11:50 价格监控updated_at修复
**发现了什么:** 健康检查误报"价格数据649秒未更新(portfolio.json"
**根因链:**
1. `price_monitor.py` 写 portfolio.json 时仅在价格变化时写入,且不更新 `updated_at` 字段
2. 盘中价格稳定(如午盘横盘)→ portfolio.json 长时间不更新 → `updated_at` 停留在上次变动时间
3. `intraday_health_check.py` 检查 `updated_at` 是否超过10分钟无更新 → 触发误报
**修改了什么:**
- 文件:`/home/hmo/MoFin/price_monitor.py`(同步到 profile scripts 副本)
- 逻辑变更:
- 价格变化写入时:同时更新 `pf['updated_at']` 为当前时间
- 价格无变化时:每10分钟强制刷新一次 `updated_at`,避免横盘期误报
**效果预期:** 价格稳定横盘时 portfolio.json 的 updated_at 仍每10分钟刷新一次,健康检查不再误报。
## 2026-06-25 13:20 stale_push_wlin 流程修复:先重评后推送
**发现了什么:** 自选买入提醒中推送的策略数据可能滞后。例如13:11报告中德明利止盈810.78但现价882已超过。
**根因链:**
1. stale_push_wlin 只在 `[STRATEGY_STALE]` 标记的票触发重评,非stale的票直接推旧策略
2. 策略的止盈/止损/信号在推送前未刷新,可能出现推了止盈位但价格已超过的情况
3. Dad 指出正确流程应该是:推荐前先重评 → 重评确认有效再推
**修改了什么:**
- 文件:`/home/hmo/.hermes/profiles/position-analyst/scripts/stale_push_wlin.py`
- 逻辑变更:
- 收集所有在买入区的自选(stale + 非stale),统一先调 trigger_regen_sync() 重评
- 重评完成后重新读取 decisions.json 获取最新策略数据
- 用重评后的 timing_signal 重新判断是否可推(不再用旧 is_stale 标记)
- 同一次推送中可能有多只票,全部用新数据出报告
**效果预期:** 每次推送自选提醒前,所有预推票都经过最新一次策略重评,止盈/止损/信号不滞后。
## 2026-06-25 14:00 三点联动修复
**发现了什么:** Dad反馈三个问题:(1) price_monitor的区进区出/重评告警太吵 (2) 现金只有total字段,没有区分可用/冻结,买力算错 (3) 德明利卖出后未及时更新止盈
**修改了什么:**
**① price_monitor XMPP推送降噪**
- 文件:`/home/hmo/MoFin/price_monitor.py`
- 原:所有outputs(⚡进入买入区 🔄重评 📊新策略 ✅全量重评)全部推XMPP
- 改:只推 ⚠️止损跌破 和 🌀情景切换,其余只local print不推
**② 现金三级结构**
- 文件:`/home/hmo/MoFin/data/portfolio.json`
- 新增 `cash_available`(可用买力)和 `cash_frozen`(冻结在途)字段
- stale_push_wlin.pyload_cash() 和 calc_position() 优先读 cash_availablefallback到 cash
- 推荐中的买力计算现在用可用现金而非总现金
**③ 德明利自选策略重评**
- 文件中:`/home/hmo/MoFin/data/decisions.json`
- 原止盈810.78(已被涨停突破)
- 新止损810.0 新止盈1153.26 新买入区873.18~908.82 | RR=3.24
- 已保证自选策略和其他自选一样走自动重评流程
**效果预期:** 系统不再推送区进出/重评噪音,推荐用可用现金算买力,德明利自选随时可重新入场。
## 2026-06-25 14:50 price_monitor 自选止损止盈告警屏蔽
**发现了什么:** 德明利(001309)已清仓转自选,但 price_monitor 仍对其推送止盈警报("⚡ 德明利进入止盈区间"),数据无误但信号无意义,在Dad卖飞后伤口撒盐。
**根因:** get_trigger_zones() 对自选和持仓一视同仁返回止损/止盈区间,price_monitor检查所有active decision。
**修改了什么:**
- 文件:`/home/hmo/MoFin/price_monitor.py`
- 函数 `get_trigger_zones(d)`
- 买入区间:自选和持仓都监控(自选需要zone to trigger重评)
- 止损+止盈:仅持仓(share>0)才监控,自选不生成止损/止盈zone
**效果预期:** 已清仓的德明利/药明康德等自选不再推送止损止盈告警。买入区进出仍触发重评(内部不推送),保证策略持续更新。
## 2026-06-27 三维分析框架固化(news-flow-analysis skill
**发现了什么:** 协鑫能科(002015)分析暴露三个系统性问题:
1. 之前分析脱离大盘环境看个股,给出孤立判断
2. 资金流数据只看单日暴量不看连续性,被6/24→6/25反向流误导
3. 没有离场预警框架,只关注买入机会不关注风险信号
**新设了什么:**
- Skill: finance/news-flow-analysis — 新闻+资金流+大盘三维分析法
- 四个层面印证框架(消息面→技术面异常→资金流验证→资金性质追踪)
- 反向框架(离场预警信号)
- 六项报告输出规则(大盘→板块→个股异常→资金验证→资金性质→明确结论)
**自检清单(所有报告产出必须检查):**
□ 有没有考虑大盘环境?
□ 有没有考虑板块背景?
□ 逆势信号有没有识别?
□ 资金流向有没有验证?
□ 是单日暴量还是连续趋势?
□ 有没有离场预警的反向思考?
□ 结论有没有具体价格?
□ RIP原则:数据是否已核实(非模拟伪造)?
**效果预期:** 所有个股分析自动走三维印证流程,避免孤立判断。资金流分析看趋势不看单日。每份报告自带离场预警条件。