Commit Graph

13 Commits

Author SHA1 Message Date
知微 24a73103ed price_monitor港股币种修复+calc_total_mv汇兑处理
问题链:
  price_monitor 从东方财富/腾讯拿HK股价(HKD) → x0.87转CNY写portfolio
  → DB存CNY→下游混读→建滔显示-24%浮亏(实为-0.6%)
修复:
  price_monitor不转CNY,港股存HKD原值
  calc_total_mv()增加币种判断:HK股用get_hk_rate()转CNY再汇总
  portfolio.json/watchlist的HK股价全部HKD原值
  DB同步修正所有HK股价格为HKD
  price_monitor DB写入加3次重试+database locked timeout
验证:
  建滔 87.7 HKD 浮亏-0.6%(不是-24%)
  现金 132,121.93 总资产 956,714.68
2026-07-03 10:19:09 +08:00
知微 1bb83c715d data_snapshot统一数据入口+DB银行locked修复+建滔/现金修正
data_snapshot.py: 所有报告脚本的唯一数据入口(通过mo_data读DB)
price_monitor.py: DB写入加了3次重试+PRAGMA busy_timeout=5000
quality gate: 新增GATE_PROFIT_EXISTS(止盈=0拦截)+GATE_9D_ANALYSIS
建滔(01888) DB已修正: price=84.9 HKD, cost=88.23 HKD, 浮亏-3.8%
现金已修正: 132,121.93 (frozen=0)
2026-07-03 10:12:21 +08:00
知微 e31bb9e089 所有LLM cron prompt移除JSON读取,全部走DB
开盘简报/收盘简报/盘前中监控/午后监控/策略评估-每日/系统全局审计
6个LLM cron的prompt统一改为:
  from mo_data import read_portfolio, read_decisions, read_watchlist
  禁止执行 json.load(portfolio.json/decisions.json/watchlist.json)
  港股价格统一标注HKD
  总资产/现金/仓位从digital twin字段读,不自算
2026-07-03 10:03:00 +08:00
知微 cd8eba74e4 HK股数据清洗:成本/价格双币种标记
portfolio.json: 港股cost_currency=HKD, cost_cny, price_hkd字段
decisions.json: 港股currency=HKD, 所有价格字段分存_hkd/_cny
修复建滔积层板浮亏-24%→-12.8%问题
根因:cost=88.22HKD被标成CNY,脚本转换价后错算浮亏
2026-07-03 09:31:27 +08:00
知微 9e5ea52c1e 策略质量门禁三段自动修复
enforce_strategy_quality() 重写为3轮重试:
- Round 1: ta.full_analysis 技术位
- Round 2: DB行业 + price%推算
- Round 3: 最低可用策略(强制fallback)
3轮全不过 → review_needed

对应模塑空壳策略问题:
之前只修一轮→不过就直接review_needed
现在轮修到通过为止再不通过才review
2026-07-02 14:12:31 +08:00
知微 400e4ee34d review_needed 跟进机制 + 质量门禁文档
新增 review_needed_watchdog.py:
- 每30分钟扫描 review_needed 策略
- 自动调 per_stock_reassess 重评
- 重试3次仍失败 → 推Dad XMPP人工介入
- cron: 交易日 9:30~15:30

news-flow-analysis skill 文档同步更新:
- 完整 review_needed 流程链
- 自动修复→重检→跟进→上报 闭环
2026-07-02 14:04:15 +08:00
知微 6f8644b327 质量门禁自动修复 — CRITICAL失败不再退回, 调技术分析补全
enforce_strategy_quality() 新增自动修复层:
GATE_LOSS_EXISTS → 调 ta.full_analysis() 算弱支撑
GATE_PROFIT_EXISTS → 调 ta.full_analysis() 算阻力位
GATE_ENTRY_RANGE → 从止损/止盈或现价推算
GATE_9D_ANALYSIS → 从 DB 补行业、自动填因子
修复后重检质量, 通过则正常写入, 不进 review_needed

Dad要求: 不是挡, 是打回重评直到有正确结果
2026-07-02 13:57:50 +08:00
知微 c36479f481 第4条CRITICAL红线:GATE_9D_ANALYSIS
质量门禁新增9维交叉验证检查:
- sector_context不空且非neutral
- signal_factors≥1个因子 或 tech_snapshot含技术位
不通过→标记review_needed不写入DB
防止模塑科技式空壳策略(无止盈/无行业上下文/无分析过程)
2026-07-02 13:50:53 +08:00
知微 7c0e85af28 硬性策略质量门禁 validate_strategy()
新增 STRATEGY_QUALITY_GATES 检查清单(9条红线):
CRITICAL: 止损/止盈存在+>0, 买入区下沿<上沿
HIGH: 止损≤买入区, 买入推荐含RR≥1.5, 港股标currency=HKD
MEDIUM: signal短词, tech_snapshot含技术位

enforce_strategy_quality() 插在写入链的两处:
1. reassess_with_context() return前 → 单只重评必过
2. regenerate_all() for d in decisions: 写DB前 → 批量重评必过

不过的:status=review_needed, signal降级→信号不充分
不会写进DB/JSON,除非修复了CRITICAL问题
2026-07-02 13:46:53 +08:00
知微 9a702a66f7 A/H跨市场去重:药明康德不再推H股
药明康德(02359) timing_signal=买入、多头排列,但Dad已持有
药明康德A股(603259)。同股同权,H折CNY还贵7.4%。

新增:stale_push_wlin在推荐前检查portfolio中是否有
同名不同代码的持仓。有则跳过推荐。

测试:之前推H股,现在静默(0可操作→无输出)
2026-06-24 15:35:58 +08:00
知微 4ab95ecbcb 策略质量过滤:信义光能不应被推荐
修复:stale_push_wlin 没有检查 timing_signal 和 sector_context

信义光能(00968)被推荐的原因:
  timing_signal='行业偏弱'  sector='房地产开发大跌-294%'
  RR=7.2看起来很高,但趋势完全空头且行业崩塌
  → 原代码只查RR>=3+价格在买入区,没查信号质量

新增两条过滤:
1. timing_signal含[偏弱/弱势/观望/卖出/回避] → 跳过
2. sector_context含'大跌' → 跳过(行业崩时不推荐)

实测:加过滤前7只,加后1只(仅药明康德)
2026-06-24 14:40:31 +08:00
知微 06b8388887 docs+fix: 生命周期管理文档 + signal_news processed标记
- docs/lifecycle-management.md 完整生命周期规范(5大对象)
  - 信号、股票、策略、建议、评估的完整状态流转
  - 自我提升循环:信号→评估→执行→对比→修正→验证
  - 当前缺口与修复清单
- signal_news 加 processed 列,处理完标记不重复
- 两个盯盘cron prompt同步更新:读未处理信号(WHERE processed=0)+标记已处理
2026-06-22 20:12:00 +08:00
知微 b32e2fd803 feat: 新增行业领涨股扫描 xiaoguo_scanner
- 新增 fetch_sector_leaders() 从 market.json 读取热门行业领涨股
- 三路并行:同花顺技术榜 + 行业领涨 + 东财热榜(502降级)
- 优先级排序:行业领涨 > 同花顺榜 > 东财热榜
- 名称→代码映射使用本地缓存,避免频繁调用akshare
- 更新文档
2026-06-22 20:00:40 +08:00