# 知微分析师知识日志 ## 2026-06-11 ### 新增条目 - [BUG] 华恒生物688639 触发止损但 cron 报告里还显示"剩余空间很大" - 场景:2026-06-11 14:00 触发止损,策略状态已变 - bug:cron_report 读 stale 数据 → 跟实际不一致 - 修复:stale_push_wlin.py 加价格比对的权重 ## 2026-06-29 ### 修复 - [BUG] intraday_health_check.py 价格监控误报 - 问题:check_price_monitor() 用 pgrep 查进程(price_monitor是no_agent cron,不是daemon,必然找不到) + 用 price_events 表做心跳检测(平静市场0事件=误报) - 表现:TODO #27 "cron无最近运行记录" + TODO #29 "进程不在运行" → 自愈执行器误启动LLM处理 - 修复:改用 cron jobs.json 的 last_run_at(主指标)+ portfolio.json 的 updated_at(副指标) - 文件:intraday_health_check.py → check_price_monitor() 函数重写 - 验证:手动执行 intraday_health_check.py → [SILENT] 盘中自检通过 | 6项正常 - [CLEANUP] 关闭残留TODO #27 和 #29(已自愈,价格监控正常) - [BUGFIX] macro_context_collector.py 关键词红绿灯误报(33条HIGH→7条) - 问题1:'核'独立匹配触发22条误报(核聚变/硬核科技/核心等非风险词匹配) - 问题2:'苹果.*涨价'触发合作类新闻(苹果牵手长鑫存储,MLCC涨价→非风险) - 问题3:'英伟达|' 分组的alternation导致单"英伟达"关键词即触发(应该是英伟达+负面词才触发) - 修复:战争/核正则移除过宽匹配;苹果正则加合作类负向排除;英伟达正则修正分组 - 效果:10:05的198条新闻测试:33 HIGH→7 HIGH(3条真实+2条MEDIUM级+2条分析文引用) - 文件:macro_context_collector.py → HIGH_PATTERNS (行30-61) ### 自愈 - [BUG] intraday_health_check.py 宏观风险HIGH TODO无详情 - 问题:TODO #28 宏观风险HIGH 详情为空。intraday_health_check.py 读 risk.get("reason", ""),但 macro_risk_state.json 用 signals[].summary,没有 reason 字段 → reason始终为空 - 修复:改成读 signals[0].summary 提取原因描述 + 增加 expired 标志检查(过期HIGH不报异常,改报⏳信息) - 文件:MoFin/scripts/intraday_health_check.py → check_signal_pipeline() 中宏观风险检查段 - 验证:修复后运行 → [SILENT] 盘中自检通过 | 6项正常(不再因过期HIGH误报) - [BUG] portfolio.json总资产计算错误 — 双重原因 - 问题1:holding导入用了硬编码现金默认20,230,Dad截图现金73,758没用上 - 问题2:import_holding_xls.py 对港股 double-conversion:券商的「最新市值」已经是人民币(shares × HKD价 × 汇率),脚本又做了 mv_cny = mkt_val × rate,导致港股市值少算约13.24% - 问题3:per_stock_reassess.py 更新了个股价格后,总资产没有随之更新(仍用导入时的旧值) - 修复:portfolio.json用 shares*price 重新求和(858,542)+ 现金73,758 = 总资产932,300 - 文件:portfolio.json, import_holding_xls.py(去掉港股double-conversion + 去硬编码现金默认) - 经验:Dad的现金=截图现金,holding文件没有现金行。券商最新市值已经含汇率换算。