Commit Graph
100 Commits
Author SHA1 Message Date
知微 69c6c5633a feat: 筹码S/R集成到reassess_strategy
- calc_chip_sr(): 从筹码分布计算支撑/阻力
- reassess_strategy新增筹码S/R输出+共振检测
- 止损用枢轴(短期),目标参考筹码(中线)
- 两者差距<3%时标记共振
2026-07-02 00:57:54 +08:00
知微 7f8b27df3b feat: 筹码因子模块 + 分钟K线 + 历史数据回填
scripts/chip_factors.py:
- _build_chip_distribution(): 从60日日线OHLCV估算筹码分布
- calc_all(): 计算三大筹码因子(穿透率/当日穿透率/乖离率)
- batch_calc(): 批量计算全部持仓+自选
- chip_cache/: 缓存每日筹码状态(支持因子滚动计算)

mo_provider.py:
- get_minute_kline(): 1分钟K线获取(1s限流, 单次最多240条)

首次运行结果: 33只股票完成筹码分布计算
最高亏损筹码占比: 万科99.5% 神华98.6% 比亚迪股份98.7%
最低亏损筹码占比: 建滔4.0% 药明康德2.1%
2026-07-02 00:36:35 +08:00
知微 c1cdec6edc feat: 分钟级K线 get_minute_kline() + 1s限流保护 2026-07-02 00:22:42 +08:00
知微 c91a2b47e4 docs: CHANGELOG — mo_data + cash_log 2026-07-01 23:48:11 +08:00
知微 6305204c7a feat: mo_data.py unified read layer (DB-first, JSON fallback) + cash_log table + batch JSON→DB migration (16 files) 2026-07-01 23:45:30 +08:00
知微 864d924012 docs: CHANGELOG 2026-07-01 — DB migration + single price source + health check 2026-07-01 23:28:29 +08:00
知微 6918dffd10 fix: restore 0.1s sleep between Eastmoney HK requests (anti-scraping) 2026-07-01 23:21:40 +08:00
知微 0faa58d211 perf: remove 0.2s sleep between Eastmoney HK requests (9 stocks < 1s, batch not supported by API) 2026-07-01 23:15:39 +08:00
知微 671fe4ecc2 feat: price_monitor cron entry + health check script (DB freshness monitoring) 2026-07-01 23:07:24 +08:00
知微 ec285669c4 fix: deploy scripts/ files properly (correct directory) 2026-07-01 23:00:28 +08:00
知微 b2822cec15 feat: all remaining Tencent API price fetchers now DB-first (8 files) 2026-07-01 22:59:17 +08:00
知微 0aef122b69 feat: mofin_db get_price_from_db/get_prices_batch helpers + strategy_evaluator DB-first 2026-07-01 22:56:24 +08:00
知微 8ed755bff9 feat: strategy_lifecycle + stale_detector + server — DB-first price reads, Tencent API as fallback only 2026-07-01 22:48:48 +08:00
知微 849495c4ba fix: remove stale_push_wlin hardcoded 0.87 fallback — imports mo_models directly, no shadow functions 2026-07-01 22:39:20 +08:00
知微 f50b93d427 feat: eliminate duplicate price fetches — stale_push_wlin + per_stock_reassess now read from DB instead of self-pulling Tencent API 2026-07-01 22:32:30 +08:00
知微 82024a6d7f 给笑笑的接手说明 — refactor-for-xiaoxiao.md 2026-07-01 22:05:01 +08:00
知微 e8653acd37 sync: 全部cron脚本同步+游离代码归位+关键依赖部署
- 11个不一致cron脚本同步(MoFin→profile)
- 4个游离代码收入MoFin(300308_monitor/monitor_300308/refresh_mtf_cache/strategy-staleness-check)
- 6个关键依赖部署到profile(mo_models/mo_config/mo_provider/hk_rate/data_governance/data_validate)
2026-07-01 00:02:56 +08:00
知微 00b0e643d1 feat: holdings_reconciliation + process_trade + import_holding_xls → DB writes 2026-06-30 23:56:51 +08:00
知微 e3bf196a59 fix: ALTER TABLE migrations must run before CREATE TABLE + currency validation in write_holdings_batch 2026-06-30 23:53:57 +08:00
知微 1c2344d217 feat: strategy_lifecycle regenerate_all now writes to DB (holdings+strategies+watchlist) 2026-06-30 23:47:59 +08:00
知微 dc68739ac4 feat: DB migration — enforce currency constraints on holdings/strategies/watchlist/summary tables + price_monitor DB writes 2026-06-30 23:46:08 +08:00
知微 236e67fa71 fix: NEAR_SL false alarm — add cost check, relabel as PROFIT_PROTECT when floating profit >5% 2026-06-30 23:33:37 +08:00
知微 0a6c659e45 sync: system_audit.py cache审计(笑笑) 2026-06-30 23:12:53 +08:00
知微 28c001684e 币种标记标准化 + data-pipeline诊断文档
stale_detector: HK股价格输出加(HKD)标记,防止LLM混读CNY/HKD
per_stock_reassess: 写回decisions.json的HK股加上currency: HKD
docs/data-pipeline-diagnosis.md: 完整数据管道重构需求文档

避免建滔积层板CNY/HKD错配类问题复发
2026-06-30 11:13:45 +08:00
知微 28afb14769 建滔价格错误修复 + 币种标记标准化
per_stock_reassess.py: 写入HK股时加currency: HKD标记
防止报告脚本混读CNY vs HKD导致止损判断错位
2026-06-30 11:11:22 +08:00
知微 8e738404d4 fix: 全线港股前缀修复 + 币种统一
per_stock_reassess.py:
  - 港股5位代码前缀优先(0开头不匹配sz)
  - 删除CNY转换,存Tencent原始HKD值
stale_push_wlin.py fetch_trend_data:
  - 港股5位代码前缀优先
strategy_review.py (x2):
  - 港股5位代码前缀优先
验证:
  建滔 price=97.2 HKD SL=94.62 HKD ✓
  腾讯 price=421.2 HKD SL=409.73 HKD ✓
  中芯H price=88.8 HKD SL=84.8 HKD ✓
  A股不受影响 ✓
2026-06-30 10:38:18 +08:00
知微 e1057bc747 docs: 数据管道诊断报告(交笑笑重构参考)
涵盖:系统数据架构总图、港股币种不统一问题、
总资产计算路径问题、现金管理缺失问题、
建议重构方向(单一日志数据源、统一价格写入路径、
现金 changelog 系统、币种感知比较)、
当前文件清单和 TODO
2026-06-30 09:34:59 +08:00
知微 6cbc433c20 fix: 莫荷审计三个问题修复
1. macro_context_collector DB路径修复(__file__相对路径→绝对路径)
2. system_audit双cron移除no_agent版(保留LLM版,17:30单次)
3. deliver=origin问题已记录,属架构层需统一改deliver=local+中转
2026-06-30 03:20:47 +08:00
知微 fb74c8bbb5 fix: capital_flow_collector+per_stock_reassess归位 2026-06-30 03:12:59 +08:00
知微 12025d58a0 docs: 更新交接文档(含笑笑架构改革) 2026-06-30 03:04:26 +08:00
知微 04c98c23e1 docs: session交接文档 2026-06-30 03:02:29 +08:00
知微 6915fd9cbf fix: 添加venv到gitignore+移除跟踪 2026-06-30 02:57:11 +08:00
知微 fa45d8aa5f fix: 小果地址统一node122(兼容LAN+EasyTier)
- health_checklist.json: 192.168.1.122→node122
- ocr_client.py: docstring IP→node122
- docs/market-data-requirements.md: IP→node122
- 所有API调用通过ProxyHandler({})绕过系统代理
  Privoxy对node122:18003返回500,直连正常
2026-06-30 02:56:35 +08:00
知微 8f0ee37aa4 sync: 游离代码归位+node122地址
- stale_push_wlin.py/stock_scorer.py/xiaoguo_signal_consumer.py →
  同步MoFin(含mo_models更新)到profile
- xiaoguo_scanner.py → 从profile收入MoFin(游离归位)
- 小果地址从硬编码192.168.1.122改为node122(兼容内外网自动切换)
2026-06-30 02:48:27 +08:00
知微 7d49470aeb 总资产公式修复+数据模型文档
bugfix: price_monitor写total_assets时漏算frozen_cash
  公式修正: total_assets = market_value + cash + frozen_cash
  影响: price_monitor两处公式 + stale_push_wlin fallback路径

docs: portfolio-data-model.md 新增
  数据模型字段说明
  现金流更新规则
  常见错误清单
2026-06-29 22:35:07 +08:00
知微 5a2d616dfd 现金冻结修复:price_monitor不再重算cash
根因:price_monitor每2分钟用av+fz重算cash,
但av/fz是旧数据(含法拉电子卖出前冻结),
覆盖了Dad交易截图后的正确现金92,679。

修复:
1. price_monitor只更新market_value,不碰cash
2. cash设回正确值92,678.85(含法拉电子+18,920)
3. 加cash_history追踪每次修改
2026-06-29 22:24:12 +08:00
知微 0b0323eb23 cash/总资产循环依赖修复
问题:price_monitor从strategy_staleness_report读cash→
stale_report由stale_push_wlin从portfolio.json写cash→
循环依赖导致cash值被污染(92,678→正确的应是113,240)

修复:
1. price_monitor改成优先用available_cash+frozen_cash字段
   (来自Dad截图确认值),不再从stale_report读
2. portfolio.json清理重复字段,统一用available_cash+frozen_cash
3. total_assets = total_market_value + available + frozen
4. 正确的数:市值835,552+可用73,758+冻结39,481=总资产948,792
2026-06-29 22:17:28 +08:00
知微 9709c43ccb 总资产权威数据源统一修复
问题:总资产每次报告重新计算,数字不一致。
根因:cash字段错误(92664→73759),stale_push_wlin二次×0.866,
      报告各算各的。

修复:
1. portfolio.json cash 修正为Dad截图确认值73,758.85
2. price_monitor 每轮写入 total_mv + total_assets 到portfolio.json
   (从此所有报告只读这个字段,不自算)
3. stale_push_wlin 删除重复的 hmv *= 0.866(数据已CNY)
4. portfolio.json 加 currency: CNY 标记防混淆
5. 日志记录本次修复
2026-06-29 21:39:06 +08:00
知微 a8d5418726 price_monitor 汇总值重算 + total_assets修正
问题:price_monitor每2分钟更新个股价,但不更新
total_market_value/total_assets/cash/position_pct,
这些字段停留在import_holding_xls快照值,已严重过期。
导致报告显示错误的总资产和仓位。

修复:
- 每次更新个股价后,实时重算 total_market_value = sum(shares*price)
- cash 从 stale_report(Dad截图确认的可用现金)同步
- total_assets = market_value + available_cash + freeze
- 避免价格无变化时不触发更新(timeout fallback保留)
2026-06-29 20:20:24 +08:00
知微 d82de939ff revert(币种统一): 回退CNY转换
港股价格存原币(HKD),不存CNY。
Dad需要在股软里看港币价下单操作。
2026-06-29 17:46:14 +08:00
知微 6aa338ee4d 币种统一全覆盖审计 + 修复
审计范围:price_monitor/per_stock_reassess/stale_push_wlin/stale_detector/system_audit/all-cron-prompts

问题根因:系统三年前设计时港股用HKD存储,最近portfolio
统一CNY但decisions.json没同步。所有API拉价(HKD)和文件
读价(CNY)交叉比较时产生币种错配。

修复:price_monitor每轮同步 + per_stock_reassess/fetch_trend_data
本地API拉价时转CNY + stale_push_wlin
+
2026-06-29 16:58:18 +08:00
知微 1ad2c20493 CNY币种统一修复 — decisions.json所有价格字段统一CNY
问题:港股在decisions.json存HKD、portfolio.json存CNY,
报告交叉读取导致建滔积层板止损判断错位(CNY价vs HKD止损)。
修复:
price_monitor.refresh_data_prices() 每次拉价后,
对港股5位代码的全部价格字段(price/stop_loss/take_profit等)
及嵌套analysis/trigger字段,统一xHK_RATE→CNY
保证所有文件价格口径一致
2026-06-29 16:28:59 +08:00
知微 4bcc51f219 数据新鲜度铁律+违规记录
1. analyst-knowledge-log 追加6/29数据新鲜度违规记录与修复规则
2. 第一行代码铁律:任何分析必须先拉腾讯实时报价
3. 禁止从缓存文件读价格来推操作建议
4. 建滔积层板止损建议是错误的(盈利股不说止损)
5. SOUL未改动(之前说写入SOUL是口头错误)
2026-06-29 15:52:29 +08:00
知微 aa4f013ee5 数据新鲜度防御体系(致命错误防御)
根因:今下午报告用周五多周期缓存(multi_tf_cache)作周一操作建议,
中芯国际H浮盈+10%被错报破止损。

修改:
1. price_monitor 新增 live_prices.json 写入(每2分钟刷新所有实时价)
2. 新增 data_freshness.py — data_freshness check function
3. intraday_health_check price_monitor检测从10min收紧到5min
4. 新增 midday MTF cache refresh (11:00+14:00)
5. cron-report-format pre-flight checklist 新增数据新鲜度检查项

所有报告产出前必须先跑 data_freshness,过期则禁止出操作建议
2026-06-29 15:23:32 +08:00
知微 6a97d93018 现金更正 + 法拉电子清仓记录
截图确认:
- 可用资金 92,664.20(含天添利)
- 冻结 39,481.40
- 总现金 132,145.60
- 总资产 = 持仓市值1,107,670 + 现金132,145.60 = 1,239,815.60

法拉电子 189.20卖出100股已记录
2026-06-29 12:40:50 +08:00
知微 13b4dcbcf0 三维分析框架固化(news-flow-analysis skill)
知识库、日志、报告格式自检清单同步更新。协鑫能科分析完成。
2026-06-28 22:06:24 +08:00
知微 1abb6bb7fd 自选正反自动同步
clean_watchlist.py 双向:
  买入→持仓→移出自选  (已完成)
  清仓→自动加回自选  (新增)
每日09:05 cron自动执行
2026-06-28 00:18:11 +08:00
知微 4477b06f12 Watchlist↔Holdings双向自动迁移
regenerate_all() 每次全量重评时自动:
① 自选股变成持仓(>0股) → 从watchlist移除
② 持仓清仓(股数归零) → 自动加回watchlist(有买入区才加)
Dad要求的双向自动同步,避免手动清理遗忘
2026-06-28 00:15:37 +08:00
知微 91d2957ab0 自选清理+新增策略
1. 13只已持仓自选股移除(watchlist 32→19)
2. 贵州茅台(600519) 买入区1101~1184 止损1068 止盈1300 RR=1.3
3. 中国平安(601318) 买入区43~46.8 止损41.4 止盈58.9 RR=2.0
4. 两股均空头排列,信号=等待企稳
2026-06-28 00:12:31 +08:00
知微 8474effcad feat: --verify-new-cron模式 + MEMORY.md流程
- 新增 --verify-new-cron 参数:创建cron后立即验证文档+注册完整性
- 自动检查cron-catalog.md和pipeline_registry.json
- 缺失时读脚本docstring自动补全
- MEMORY.md更新新增组件流程,强调"趁上下文还热"验证
2026-06-27 02:31:18 +08:00
知微 2912b127e3 docs: 38个cron完全手册
- 全部32个脚本+8个LLM cron的设计意图/数据流/代码结构
- 暂停/废弃说明
- 每个cron关联脚本和调用链
- 自动注册脚本时参考此文档推断数据流

新增cron时应该在此文档追加条目,否则注册表审计只能推断不能确认
2026-06-27 02:26:34 +08:00
知微 c3c1895896 fix: 自动注册读脚本docstring推算数据流,不再是"未知" 2026-06-27 02:22:34 +08:00
知微 d89351fbfe fix: 管道注册表自动修复——新组件自动登记占位
未注册脚本不再只报警——体检自动在pipeline_registry.json中
添加占位记录(verified=false, gap=自动发现待确认)。
Dad不需要做任何事,系统自愈。
2026-06-27 02:19:12 +08:00
知微 10caef1853 fix: 管道审计改为动态读jobs.json,无需手动维护脚本列表 2026-06-27 02:16:46 +08:00
知微 44d0a435a0 fix: 管道注册表自发现+未登记组件报警
- 自动发现:对比重要脚本列表和管道注册表
- 漏登记的不但要手动注册,体检会报"N个组件未注册管道"
- 逼着新增组件时把数据流定义进pipeline_registry.json
2026-06-27 02:08:21 +08:00
知微 120f35671d feat: 数据管道注册表+宏观风险集成+管道完整性审计
1. 新增 data/pipeline_registry.json — 数据管道注册表
   - 记录每条数据流的source→consumer→end_user
   - verified字段标记是否验证通过
   - 新增组件时必须在此注册,否则体检会报未验证

2. 宏观预警集成(修复管道缺口)
   - intraday_health_check: 读macro_risk_state.json,HIGH风险时报警
   - morning_health_check: 新增管道注册表审计项
     读pipeline_registry.json,未验证的管道标为异常

3. 管道完整性自发现机制
   注册表中verified=false的管道会在每日体检中标记
   逼迫新增组件时注册管道,否则睡不好觉
2026-06-27 02:04:22 +08:00
知微 b4f957f80d fix: guardian每日调gateway清理memory, 花token但省心 2026-06-27 01:37:18 +08:00
知微 56249428fe fix: MEMORY.md补全现金铁律+报告规则, guardian支持模式清理 2026-06-27 01:34:48 +08:00
知微 2bda688a30 feat: 记忆守卫每日cron(按SOUL规则自检memory)
- memory_guardian.py: 每日7:00检查MEMORY.md存在/容量/共享memory健康
- 有问题推报告给Dad,没问题SILENT
- 配合SOUL记忆规则,防止profile专属内容污染共享memory
2026-06-27 01:30:27 +08:00
知微 cb779b692c revert: 去掉我误建的macro_index_collector(莫荷的macro_context_collector已覆盖)
爹在XMPP里和我(知微)商量的宏观预警系统就是这3个文件:
  macro_context_collector.py — 宏观新闻采集+指数采集+红绿灯
  divergence_detector.py — 跨市场背离
  macro_signal_consumer.py — 风险信号消费
我不该另建macro_index_collector,现已删除,cron已恢复指向原文件
2026-06-27 01:16:22 +08:00
知微 54915e9b7e feat: 宏观指数采集独立(macro_index_collector) + 莫荷宏观预警系统入库
- 重建 macro_index_collector.py: 原macro_context_collector(index采集)独立
  避免与莫荷的 macro_context_collector(宏观新闻采集)冲突
- 纳入莫荷的宏观预警系统:
  divergence_detector.py — 跨市场背离监测
  macro_context_collector.py — 宏观新闻采集+红绿灯(莫荷版)
  macro_signal_consumer.py — 宏观风险信号消费
- cron修正: 宏观采集-早/午间 → macro_index_collector.py
2026-06-27 01:14:00 +08:00
知微 8b5705beae fix: 私聊回复去重(去掉send_stanza双发) 2026-06-26 23:23:38 +08:00
知微 40d74f89ff feat: xmpp bot最终修复版+skill文档同步
xmpp_agent_core.py 当前工作配置记录:
1. send_presence() — presence = available, 否则私聊进离线
2. 入站消息队列(_inbound_queue) — 崩了不丢, 重试3次
3. 出站队列(_outbound_queue) — 崩了自动重启
4. XMPP心跳检测(xep_0199 ping) — run_filters死后15s内重连
5. 私聊回复双通道: send_message(指定resource) + send_stanza(裸JID)
6. AGENT_MENTION动态解析(群聊@知微识别)
7. session_id保持xmpp-zhiwei-v2不变(不因重启换session)
8. 断线重连2秒延迟(防资源冲突)
2026-06-26 23:17:21 +08:00
知微 ef7c83a3ed feat: 换仓策略整合深套解套+T+2前瞻
- T+2前瞻: 扫描自选股中价格距买入区5%以内的A股
  - 提前评估现金是否足够
  - 不足则评分港股持仓,推荐提前卖出最低评分港股
  - T+2到账后目标股入买区时现金已到位
- 深套股在换仓评估中自然排后(score_future_outlook)
  - 不需专门解套方案,通过换仓机制逐步清理
- 数据治理: holding_strategies去重+中际旭创补策略
  每周六cron自动检查
2026-06-25 21:32:01 +08:00
知微 fa3fc93f25 feat: 数据治理+深套解套方案
- data_governance.py: holding_strategies去重(1642→345)
  - 检查缺失策略的持仓(中际旭创已补)
  - 深套持仓统计
- 中际旭创(300308)技术面策略已生成
  - 止损1287 止盈1453 买入区1297~1350 RR=3.59
- 深套解套方向:
  丘钛科技 -48% → 反弹到9.7卖1/3
  万科企业 -53% → 反弹到2.8卖1/3
  紫金矿业 -36% → 反弹到30.4卖1/3
  比亚迪股份 -27% → 反弹到89.8卖1/3
  中科电气 -32% → 反弹到18.6卖1/3
2026-06-25 21:22:59 +08:00
知微 b63475402e feat: 港股ATR波动率止损校验
- 新增 is_hk_stock(code): 港股判断(5位代码)
- 新增 calc_atr(code): 腾讯API K线→ATR(14)计算
- 港股止损增加ATR校验:止损距现价不得小于1×ATR
  技术位仍为主依据,ATR仅作为港股高波动下的间距底线
  A股不受影响保持原有逻辑
- 不违背"技术位优先,不机械乘系数"原则
2026-06-25 21:11:07 +08:00
知微 dff8e17d68 feat: 止损洗盘检测(60日K线反弹验证)
- 止损触发后检查是否反弹回SL以上3%→标记"洗盘"
- 模塑科技这类: 差两分钱触发+后来反弹=洗盘
- 执行层统一处理: 卖飞/洗盘/临界触发 三类边缘案例
2026-06-25 20:33:34 +08:00
知微 127a0ff021 feat: 复盘每日cron + 卖飞检测(60日最高价)
- 新增 cron: 策略复盘-每日 (20:00, no_agent, deliver=origin)
- 执行层增加60日K线最高价检查
  - 止盈触发后价格继续涨→标记"卖飞(X%)" + tp_too_close
- 德明利这类情况: 综合层=赚钱, 执行层=卖飞(止盈过近)
- 优化K线拉取性能(只对有TP的票拉, curl --max-time 3)
2026-06-25 20:27:53 +08:00
知微 29ec09530a feat: 三层策略复盘框架
信号层/执行层/综合层独立评估,输出每层判断+整体评级。

当前结果(38条):
  正确 6 | 错误 1 | ⚠️部分 20 | 待定 11
  信号层: 方向看反1次
  执行层: 止损过紧1次

大部分待定是因为策略太新(<7天),需要时间积累数据才能做出有效评估。
2026-06-25 20:04:44 +08:00
知微 b053103377 feat: 策略复盘闭环 Phase1
- 新增 scripts/strategy_review.py: 遍历所有active策略
  - 腾讯API实时价对比止损/止盈/入场点
  - 分类: correct/wrong/partial/pending
  - 失败模式归因: 止损过紧/入场过早/止盈过远等
  - 写入 accuracy_stats 表(首条真实数据)
- 新增 docs/strategy-review-loop.md: 完整闭环设计文档
- 含失败模式→修复方向映射表

Phase1 结果: 38条策略, 94.7%准确率(19条待定), 1条止损过紧
2026-06-25 19:58:00 +08:00
知微 147d6d0fa2 docs: 最终文档更新+全链路测试通过
自检结果: 8类48项全部运行正常
- 健康检查:  逻辑完整 43/48正常 (5项属预期行为)
- 盘中自检:  SILENT
- 执行器:  SILENT
- 信号消费:  SILENT
- 全库表:  所有数据表正常积累
2026-06-24 23:05:16 +08:00
知微 39ff4d95f7 feat: macro_context/market数据全部DB优先,JSON回退
- 建 macro_context_log 表,macro_context_collector.py 双写
- strategy_lifecycle.py load_macro_context() 优先DB
- strategy_tree.py detect_scenario() 优先DB
- stale_push_wlin.py load_macro_line() 优先DB
- xiaoguo_signal_consumer.py 大盘判断优先DB
- stock_profile.py load_macro() 优先DB
- system_audit.py 管道审计改查DB market_snapshots
- JSON保留作fallback,确保过渡期不中断
2026-06-24 22:34:08 +08:00
知微 843012e045 cleanup: 历史记录从JSON迁移到DB(health_check_log表)
- 移除health_check_history.json → health_check_log表
- 移除health_known_issues.json(未使用)
- 移除TODO_PATH(已用DB替代)
- 更新文档注释
2026-06-24 22:14:53 +08:00
知微 4c074b789e docs: 更新自愈循环+体检文档至最终版 2026-06-24 22:09:30 +08:00
知微 5a7335e583 fix: xiaoguo_scanner LLM超时恢复30s 2026-06-24 22:05:45 +08:00
知微 9b878001af fix: 小果LLM不可达降级处理
- xiaoguo_scanner.py: LLM超时/不可达→标记unknown继续扫,不跳过
- intraday_health_check.py: 小果无数据时不报严重错误(可能是正常离线)
- scanner profile目录同步
2026-06-24 22:04:18 +08:00
知微 d27dbcc6ad fix: 盘中自检增加进程级检查(price_monitor/xiaoguo_scanner)
- price_monitor:pgrep进程 + 最近10分钟事件数双重验证
- xiaoguo_scanner:pgrep进程 + 今日数据 + API可达三重验证
- 避免"停了两天不知道"的情况
2026-06-24 22:00:58 +08:00
知微 077f683878 feat: 三层自检+元自检+cron全局审计
- 盘中高频(每15分): XMPP/Gateway/Scanner/价格/信号管道
- 每日早检(8:00): 原有7层 + 新增cron全局审计 + 元自检
- cron审计: 检查所有启用的定时任务是否在24h内运行过
- 元自检: 昨日体检是否完成/checklist覆盖是否完整
- 自成长: auto_discovery自动追加新增cron到清单
2026-06-24 21:58:57 +08:00
知微 7a6fb103cb fix: 执行器结果通过zhiwei的XMPP发给Dad
- 新增 send_xmpp() 用hermes send经zhiwei发XMPP给hmo
- 每条TODO完成/失败/升级都调用send_xmpp
- Dad通过XMPP收到所有TODO流转结果
2026-06-24 21:50:15 +08:00
知微 0a7ad20f54 fix: 执行器输出LLM处理结果给Dad
- gateway API返回结果打印到Dad可见的输出
- 每个TODO在Dad面前出现1次(直接修复)或2次(创建+结果)
- LLM也搞不定的会在结果里说清楚
2026-06-24 21:49:03 +08:00
知微 629f154829 cleanup: 执行器失败带完整上下文调gateway API
- 升降级信息含完整description(体检原因/分类/详情)
- 含尝试的修复命令和失败输出
- gateway API是新session,有完整上下文才能分析
2026-06-24 21:41:14 +08:00
知微 526fcc4412 fix: 执行器失败直接发核心群,不走API
- 执行器修不了→hermes send到核心群,知微在群里收到就处理
- Dad也在核心群,能看到
- 不发gateway API(上下文隔离,Dad看不到)
- 无fix_action也走同一路径
2026-06-24 21:38:36 +08:00
知微 b766a5dbb1 fix: 执行器只试一次,失败直接needs_llm升级
- 去掉重试逻辑:每10分钟试1次,失败→立刻needs_llm
- 无fix_action也走needs_llm(不搁置)
- 执行器deliver=origin,needs_llm输出会到达Dad
- 知微启动时/被叫时检查needs_llm→直接处理
2026-06-24 21:30:49 +08:00
知微 11254c8834 fix: 取消blocked,改为needs_llm升级机制
- executor重试耗尽→needs_llm(需知微介入),非blocked
- health check报告尾段展示needs_llm项+失败原因
- derive_fix_action覆盖全部已知场景(cron errors/delivery等)
- TODO创建时注明"无法当场修复原因"
- 每个TODO必有fix_action,没有的不创建TODOs直接在报告列出
2026-06-24 21:26:23 +08:00
知微 b63c4f5879 fix: 干掉blocked状态+所有TODO必有fix_action
- 取消blocked状态:没有"搁着等"这回事
- executor改:fix_action失败→重试→重试用完等明天体检再说
- health check改:创建TODO时fix_action必须非空
  - 没有fix_action→不创建TODO,在报告里直接列出
- 新增derive_fix_action覆盖:delivery/价格监控/信号桥等场景
- 体检报告尾段:查出无fix_action的问题直接列出,不创建空TODO
2026-06-24 21:16:59 +08:00
知微 a55d241f30 feat: TODO DB迁移+no_agent执行器+阻塞升级机制
- 创建 mofin.db → todos 表(id/title/status/priority/fix_action/retry机制)
- 创建 self_todo_executor.py:no_agent脚本,纯代码逻辑
  - 有fix_action→执行→验证→标记completed
  - 无fix_action→标记blocked→输出通知
  - 失败重试3次→超限标blocked
  - 新blocked项首次输出后缓存不重复
- 修改 morning_health_check:
  - TODO写入DB取代JSON(sqlite3,无row_factory依赖)
  - 去重:含completed查重
  - 输出阻塞TODO列表
- 替换cron:LLM cron(2h间距) → no_agent(10min间距)
- 修复:deliver=origin两任务改为local
- 清理:废弃todo.json退役
2026-06-24 20:55:56 +08:00
知微 a76240b52d feat: TODO迁移到DB + no_agent自愈执行器
- 创建 mofin.db → todos 表(含fix_action/verification_check/retry机制)
- 创建 scripts/self_todo_executor.py(no_agent,纯代码逻辑,无LLM)
- 修改 morning_health_check.py:TODO写入DB而非JSON,新增derive_fix_action()
- cron替换:LLM cron → no_agent脚本,*/10 8-22高频轮询
- 成本:无pending时仅sqlite查询,约0.01s/次

处理链:
  health_check(8:00) → 可修直接自动修 → 不可修写DB(todos表) → 自愈执行器(每10分) → 有fix_action就执行 → 无fix_action标blocked留待人工
2026-06-24 20:44:36 +08:00
知微 26993c1d41 fix: 健康检查→自动修复→TODO三级处理
- 新增 auto_fix_issue(): 可自动修复的问题直接修复(汇率缓存/价格事件)
- 修复后的问题不写TODO,只有不可自动修复的才进TODO系统
- 修复 checklist 中港股汇率缓存路径(profile环境~解析差异)
- 输出增加🛠️自动修复和📋TODO写入摘要

处理流程:
  可自动修复(汇率刷新等)→ 立即修复,报告标记
  需人工/复杂修复(cron错误/delivery配置)→ 写入TODO
  TODO由self-todo cron在下一窗口(9:00/11:00/14:00等)处理
2026-06-24 20:26:47 +08:00
知微 4407f35027 feat: 自愈循环系统 + xiaoguo信号桥
- 新增 docs/self-healing-loop.md: 自愈循环设计文档
- 修改 morning_health_check.py: 发现异常后自动写入TODO系统
  - severity=critical→priority=high, error→medium, warn→low
  - 相同问题已completed→重新打开并升一级
  - 已有pending→不重复
- 新增 scripts/xiaoguo_signal_consumer.py: 知微消费小果扫描信号
  - 每30分钟盘中运行
  - 读signal_news未处理xiaoguo信号
  - 五维快速评估→加自选/关注/跳过
  - 标记processed=1
- 新增 cron: 小果信号消费-盘中 (15,45 9-15)
- 更新health_checklist自维护机制

自愈循环: 体检→TODO→修复→验证
2026-06-24 20:14:53 +08:00
知微 a24505ebef feat: 系统常规体检机制
- 新增 morning_health_check.py:分层分类全面体检脚本
- 新增 health_checklist.json:可动态维护的检查清单(自动发现新组件)
- 新增 docs/morning-health-check.md:完整设计文档
- 新增 skill: morning-health-check
- 修复:xiaoguo_scanner.py 同步到profile脚本目录
- 修复:system_audit.py 从symlink改为硬拷贝(解决脚本路径越界)
- 修复:morning_health_check.py 使用jobs.json而非cron.db(更可靠)

自动检查7层43项:
基础设施/SENSE/RESPOND/ADAPT/IMPROVE/数据文件/管道完整性
每天8:00开盘前自动跑一次
2026-06-24 20:09:10 +08:00
知微 4aa884ed31 TODO一口气4/6完成
T001: enrich_timing_signal RR参数降级
T002: price_monitor已有XMPP推送(514-525行)
T003: 自选扫描加15:00轮次
T005: 策略数据口径理解完成(非bug)
T006: trigger同步(已完成)
T004: 截图叙事清理待设计

system_health_check.py CRON_JOBS路径修正→正确的profile路径
2026-06-24 17:50:49 +08:00
知微 d4ad5a57ef trigger字段永久同步(strategy_lifecycle)+ 知微TODO系统
T006: regenerate_all() 新增 trigger 填充(stop_loss/entry_zone/take_profit_zone),
      price_monitor 依赖此字段检测止损区间/买入区/止盈区触发。
      历史数据已通过 fix_trigger.py 一次性补全39只。

新增 devops/self-todo skill + cronjob 自我驱动-TODO自动执行。
每天8轮检查pending任务,主动完成并报告进度。
TODO数据:~/.hermes/profiles/position-analyst/todo.json
2026-06-24 17:24:45 +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
知微 8f830b8de2 信义光能问题修复:两层级过滤+趋势检查
Bug 1 — strategy_lifecycle.py: enrich_timing_signal 用 factors[-1] 当信号
  信义光能: base_signal=neutral, factors=[大盘中性,行业偏弱,高估值]
  旧逻辑: factors[-1]='行业偏弱'→成为timing_signal→无效信号
  新逻辑: 先找有效操作方向(买入/加仓/观望/持有/关注/信号不充分),
          找不到→信号不充分。不再从上下文因子里拼凑信号。

Bug 2 — stale_push_wlin.py: 信号过滤太松
  旧逻辑: 只跳过特定关键词(等企稳/关注/信号不充分/持有)
  新逻辑: 信号必须含"买入"或"加仓"才进推荐,其他一律跳过

Check 3 — 趋势检查(新增)
  fetch_trend_data(): 取实时行情+30日K线计算MA排列
  空头排列/弱势震荡→不推荐
  药明康德通过(多头排列+买入信号)  信义光能不通过(空头+行业偏弱)
2026-06-24 14:39:50 +08:00
知微 e83dfc415d 持仓完成更新:现金20371 总资产1015540
OCR读取券商截图确认数据:
  资金余额: 20,371.53元
  可用资金: 17,645.31元
  股票市值: 995,168.79元
  仓位: 97.99%
  总资产: 1,015,540.32元

今日操作确认:
  卖出: 招商银行800、双一科技400、辽宁成大6600、阿里巴巴700
  买入: 海博思创200@266.89
  净现金: 20,371(含部分未交收资金)
2026-06-24 14:25:07 +08:00
知微 0ecdfbc861 上传OCR切换:小果GLM-OCR-8bit优先,Tesseract降级
MoFin/server.py 的 _ocr_image 改为:
1. 优先调小果 gateway (192.168.1.122:18003) 的 GLM-OCR-8bit
2. 失败/无响应则自动降级到本地 Tesseract(预处理+chi_sim+eng)
3. fallback逻辑保留原预处理管道(放大/锐化/二值化)

ocr_client.py 模块独立可调用,兼作CLI工具
2026-06-24 13:48:40 +08:00
知微 605c3d71d9 总资产修正:改用实时行情+holding文件汇率
之前用 holding.xls 的导出价,总资产总是少6万。
修复方案:
1. 读取 holding.xls 只取股数+成本+汇率
2. 当前价从腾讯实时行情API获取
3. 总资产=现金+∑(股数×实时价×汇率)

实时行情总资产 1,011,185 与Dad看到的1,013,xxx
仅差1815(正常盘中波动)
2026-06-24 13:30:46 +08:00
知微 3ab4f972f1 OCR集成+持仓更新:海博思创已买入
1. ocr_client.py — 通过小果GLM-OCR-8bit做截图识别
   用法: python3 scripts/ocr_client.py <图片路径> [提示文字]
   测试通过,成功读取券商成交明细截图

2. 海博思创成本更新为实际成交价266.89

3. 现金更新为5,667元(经OCR成交明细核验:
   卖招商800@36.99 + 卖双一400@22.87 + 买海博200@266.89
   原20230 → 5592,差额75为手续费,与5674基本吻合)
2026-06-24 13:29:13 +08:00
知微 b5b0f3d0e8 总资产修正+购车图标联动
Fix1: 总资产错误 — HK市价被当人民币算
  portfolio.json已有正确 total_assets(含港币→人民币换算),
  改为直接读取该字段,不再手动累加持仓市值
  原代码用 h.get('currency')=='HKD' 判断但strategy_lifecycle
  格式不保存currency字段 → 所有HK持仓被当CNY计算 → 总资产多出6.8万

Fix2: 换仓推荐时显示🛒⚠️
  原来用 lots==0 判断→永远⚠️,换仓推荐可让操作变为可行
  改为 lots>0 OR swap_text 时用 🛒(可操作)
2026-06-24 13:02:30 +08:00