Commit Graph
100 Commits
Author SHA1 Message Date
xxm 896d0bb002 fix: check_codes拉价集合兜底——trig空但主层有止损/区间/止盈的策略也纳入(603920盲区第二环:zones兜底修了但价格根本没拉,price_info=None仍跳过) 2026-08-24 14:34:39 +08:00
xxm 69cd0478af fix: zones监控盲区根治——trigger_json='{}'的版本化策略(76/112条)完全脱离止损/止盈/买入区监控,zones循环改用主层字段兜底构建(603920破止损36.57无告警根因;8/21版本化改造写入trigger_json='{}'所致) 2026-08-24 14:23:26 +08:00
xxm f1cb4edad7 fix: anomaly_monitor push_anomaly强推XMPP→messenger broadcast(老莫:异动无操作建议且过于频繁没意义,只归档)——job delivery只控stdout,notify ACTION直推通道才是真正的噪音源 2026-08-24 13:37:27 +08:00
xxm 9a3a6c782a fix: install_stdio_hook幂等化——库文件(market_regime等)模块级_msh()被import时不再重复包装stdout(双写根因:per_stock_reassess→strategy_lifecycle→market_regime链,N层hook=N个buffer各flush一次=broadcast整块重复) 2026-08-24 12:10:59 +08:00
xxm 91464a7cb7 fix: fund_flow_alert补漏——重评timeout120→300+name缺失查stocks兜底(随051b56cd同批) 2026-08-24 11:52:54 +08:00
xxm 051b56cdd6 fix: fund_flow_alert三修——①重评timeout120→300(LLM12维实测104-200s,120必超时致'重评异常')②name缺失查stocks兜底(603920显示代码)③资金流异动无操作建议→只进broadcast不推XMPP(老莫新规则) 2026-08-24 11:51:08 +08:00
xxm 19a10ed8f9 feat: broadcast消息事件块化——stdout hook从逐行碎片改为缓冲聚合(静默2s/满25行/atexit切块),相邻重复行去重,单连接写入(老莫:每条消息详情=摘要无信息量) 2026-08-24 11:41:48 +08:00
xxm f15752485e feat: 推荐推送附12维完整分析——push_recommend_alert单只推荐/flush摘要依据段均附full_analysis全文(老莫:不能只有一行文字) 2026-08-24 11:15:50 +08:00
xxm 30dbb8a667 fix: 推荐链路+消息路由5修——①push_recommend_alert notify未导入(推荐推送全灭根因)②action判重(深套持有重复)③518880成本列错位h[2]shares→h[3]cost④_push_action分类路由:操作信号才上XMPP,异动/止损/急跌只进broadcast⑤anomaly_monitor delivery→broadcast 2026-08-24 11:08:16 +08:00
xxm f621e5466c fix: 重评链路全修——①strategy_lifecycle 942行detect_scenario残留(8/20四态废弃漏改,所有12维重评NameError全崩)②_do_llm_reassess子进程rc校验+reassessed_at新鲜度校验(防旧策略冒充重评结论)③952行result None判空(每2分钟NoneType刷屏)④重评未生效发原始告警+人工核查标注(02202鬼消息根治) 2026-08-24 10:29:56 +08:00
xxm 62d52d5d04 fix: 审计交易时间窗口9-16→10-15(盘前采集窗口内数据停上一交易日是正常的,9:18误报macro_context_log) 2026-08-24 09:23:37 +08:00
xxm 9970886156 fix: 卫生审计三处误报——指令冻结活跃度列名created_at→timestamp(死session误报8个),进程白名单+ocg_router/guard_monitor,stale_table非交易阈值48→72h覆盖周末 2026-08-24 09:13:09 +08:00
xxm 3c9fee6c14 docs: 红线13——股票代码是唯一权威标识,名称只是显示属性(禁止name匹配/join,name缺失禁止用code冒充,劣化由hygiene周频自愈) 2026-08-22 16:54:12 +08:00
xxm 761706ca8f feat: stock_name_hygiene 周频任务——akshare官方名剥XD标记比对,stocks/candidates/holdings截断名与ST变更自愈 2026-08-22 12:22:09 +08:00
xxm 0afff445b6 fix: price_monitor record_event 名称守卫(上次被deploy_guard回滚,重打) 2026-08-22 12:03:02 +08:00
xxm 34030aa83b fix: 股票名称治理——price_monitor/mofin_db写入stocks时名称守卫(stocks已有真名→复用,无→腾讯quote兜底,REPLACE不再覆盖真名),回填stocks 341行+candidates 201行真名,指数行正名,删6行垃圾code行 2026-08-22 12:00:46 +08:00
xxm b787157dbe fix: renderAlerts末尾多余大括号导致全站JS解析失败(昨日异常浮窗改动引入) 2026-08-22 11:29:03 +08:00
xxm d82d67246f 重构: 移除信号Tab(与市场Tab重复+死数据), 市场Tab改为温区regime+板块排行, 候选池迁入选自Tab, /api/market加regimes, 删/api/signals, 修change_pct显示bug和market.json兜底 2026-08-22 11:14:54 +08:00
xxm 0c1c6cabeb docs: 消息架构重构阶段总结文档+broadcast/messenger spec+INDEX更新 2026-08-22 10:29:19 +08:00
xxm fb5a1adcec feat(alert_helper): notify同时写broadcast_messages(deploy_guard等告警进统一消息源) 2026-08-22 10:18:25 +08:00
xxm 2cc8341dcb feat(alert): 异常浮窗数据源改为broadcast_messages的system_error类(24h,统一消息源) 2026-08-22 10:11:47 +08:00
xxm 6efcdf75e0 feat(alert_logger): record_alert同时写broadcast_messages(统一消息源,异常=system_error类) 2026-08-22 10:09:12 +08:00
xxm 26d751b071 feat(alert): 异常浮动新行为——24h过滤+新异常3秒展开折叠+已展开不重复+首次加载不弹旧异常 2026-08-22 09:56:43 +08:00
xxm c93dcdf8ab refactor(daily_kline): 取消拆分,统一no_agent=True+超时1800s解决超时问题 2026-08-22 02:04:59 +08:00
xxm a967295785 fix(daily_kline): sh拆分sh_a/sh_b按排序均分(解决600s超时,no_agent保持True) 2026-08-22 01:46:45 +08:00
xxm 0feb486a54 fix(promote_candidates): 补_exec_retry定义(DB锁自动重试) 2026-08-22 01:30:57 +08:00
xxm 8e9b280442 fix(promote_candidates): DB锁自动重试(busy_timeout+指数退避5次) 2026-08-22 01:27:46 +08:00
xxm 89ac3b688a fix(xmpp_logger): 修复score函数usage_percent为None时的TypeError(健康API 500) 2026-08-22 00:31:59 +08:00
xxm 58c7b223bf fix(health): 移除功能树中已禁用/归档的job节点(策略评估/分支自成长/元自成长/建议对账/cron报告推XMPP) 2026-08-22 00:24:38 +08:00
xxm 626465960e fix(mofin_health): 修复cycDelivery非法正则(\\x00-\\x7F→[^ -~])导致整个JS崩溃switchTab未定义 2026-08-22 00:11:36 +08:00
xxm 20c05b6e7c feat(messenger): 全部77个活跃cron脚本接入统一消息通道(install_stdio_hook) 2026-08-21 22:34:25 +08:00
xxm 5e0141eb28 fix(messenger): 修复hook递归——写broadcast表直接操作DB不经send(防无限循环) 2026-08-21 22:27:53 +08:00
xxm d56981d38f feat(messenger): hook自动将脚本stdout写入broadcast表(消费者接管消息归档) 2026-08-21 22:24:05 +08:00
xxm c830e005ce feat(messenger): 添加install_stdio_hook统一拦截脚本stdout按通道分发 2026-08-21 22:20:29 +08:00
xxm e4440379df fix(broadcast): 添加esc函数(修复播报页esc is not defined) 2026-08-21 21:54:58 +08:00
xxm 8433d46ed7 feat(mofin_db): flush_rec_digest推荐输出接入messenger(broadcast归档+xmpp推送) 2026-08-21 20:36:57 +08:00
xxm 91386530ee feat(market_watch): 接入messenger——温区更新走broadcast通道 2026-08-21 20:33:12 +08:00
xxm d6e101c4df feat(health): cron列表加消息通道列+可切换API(toggle_delivery) 2026-08-21 20:23:33 +08:00
xxm 6577534130 feat(health): pipelines加delivery消息通道字段 2026-08-21 20:19:19 +08:00
xxm b3c2c4f8d9 feat(price_monitor): 接入统一messenger——操作推荐归档broadcast+xmpp推送 2026-08-21 20:13:59 +08:00
xxm ed83fddcf4 feat(messenger): 统一消息处理者——生产者(脚本/job)驱动通道,不按内容判通道 2026-08-21 20:11:57 +08:00
xxm 548fd4bab1 fix(broadcast): 修复播报Tab loading问题(renderTab增加broadcast case) 2026-08-21 16:37:12 +08:00
xxm c549bc57df feat(broadcast): 播报Tab添加到index.html 2026-08-21 15:23:12 +08:00
xxm 5eeb31668d feat(broadcast): 播报系统Tab+API+历史查询+消息分类 2026-08-21 15:09:48 +08:00
xxm 981d35e1cf fix(mofin_health): 今天已运行的LLM job不报output_missing误报 2026-08-21 14:13:50 +08:00
xxm 6ed49a62de fix(mofin_health): 清理已归档模块引用(meta_watchdog/branch_*/prune_branches)+修复语法 2026-08-21 12:56:16 +08:00
xxm 389cf06f4a fix(mofin_health): 移除已归档模块引用(meta_growth/meta_watchdog/branch_*/prune_branches/stale_detector/watchlist_auto_exit) 2026-08-21 12:50:07 +08:00
xxm 34992de898 fix(realtime_indicators): 用live_prices实时价格替代stock_daily收盘价,确保今日数据写入 2026-08-21 11:40:16 +08:00
xxm 7075bd47d2 fix(realtime_indicators): 修复no such column id(stock_indicators表无id列) 2026-08-21 11:31:38 +08:00
xxm 4fe2c43310 fix: 复制alert_logger.py到deploy/profile-scripts(修复price_monitor ModuleNotFoundError) 2026-08-21 11:19:07 +08:00
xxm 37867f378c docs: 补充E组文档+加工层架构(strategy_lifecycle+realtime_indicators) 2026-08-21 11:12:50 +08:00
xxm b3cfe59770 chore: 重新归档meta_growth/meta_watchdog/ab_research_daily(上次被deploy_guard回滚) 2026-08-21 11:08:00 +08:00
xxm 15edc92371 feat(加工层): 实时技术指标计算+price_monitor联动+collect_data改为读stock_indicators
- 新增realtime_indicators.py: 盘中实时计算MA/支撑阻力/RSI/bias60/dist_ma20/ATR/candle_pattern
- price_monitor: 更新价格后联动计算实时指标写入stock_indicators
- batch_reassess collect_data: 从stock_indicators读取(不再重新计算ta.full_analysis)
- stock_indicators表: 新增strong_support/weak_support/pivot/weak_resist/strong_resist/candle_pattern字段
2026-08-21 05:12:18 +08:00
xxm eb78517f20 fix: 修正残留注释 2026-08-21 04:12:35 +08:00
xxm bf75aba72a fix: evo-box移到策略评估子tab,统一函数名为loadEvoLog 2026-08-21 04:10:26 +08:00
xxm fdb3757895 fix: 研究tab-evo子tab改为effectiveness数据展示 2026-08-21 04:01:18 +08:00
xxm 209595fc00 fix: 彻底移除evolution/evaluation旧代码,研究tab改用effectiveness 2026-08-21 03:54:28 +08:00
xxm 0035a3fdc3 fix(server): 添加deploy/profile-scripts到sys.path(修复mo_models导入) 2026-08-21 03:42:43 +08:00
xxm 407389946e refactor: 移除旧评估tab+evolution路由,研究tab改用effectiveness
- 移除评估tab(旧功能被strategy_effectiveness替代)
- 移除evolution API路由(引用已删除的evolution目录)
- 移除旧evaluation/stats/accuracy路由
- 研究tab: 策略自我进化→改为读取effectiveness/summary
- effectivenes.html仍可通过直链访问
2026-08-21 03:21:50 +08:00
xxm 207066e76b fix(server): effectiveness路由移到app.run()之前(修复404) 2026-08-21 03:00:36 +08:00
xxm 5b9d46efc6 refactor: 归档策略进化模块+新建评估页面+API
- 归档 evolution/ + meta_growth/meta_watchdog/ab_research_daily
- docs/evolution-archive-readme.md: 归档说明(旧模块功能+替代方案)
- server.py: 新增 /api/research/effectiveness + effectiveness/summary + recommendation_log + execution_log
- static/effectiveness.html: 新评估页面(概览/详细评估/推荐记录/执行记录)
- 策略进化改为人驱动闭环(评估→用户决策→调整)
2026-08-21 02:47:38 +08:00
xxm 8dd12ca1e8 docs: 更新架构文档——记录A-D组改动/策略版本化/两份历史记录/策略到期评估 2026-08-21 02:30:41 +08:00
xxm c0cfb89757 chore(D组): 禁用strategy_evaluator/advice_reconciliation cron+清理残留引用 2026-08-21 02:26:46 +08:00
xxm 83e2953f89 refactor(D组): 归档strategy_evaluator+advice_reconciliation,功能合并到strategy_effectiveness
- 归档strategy_evaluator.py/advice_reconciliation.py(功能已被strategy_effectiveness替代)
- strategy_effectiveness扩展: 读取recommendation_log+execution_log增强评估
- mofin_db新增: log_recommendation/log_execution/match_recommendations_executions
- 新表recommendation_log(推荐历史)+execution_log(执行历史)
2026-08-21 02:25:06 +08:00
xxm 3e7c7df38d feat(versioning): 策略版本化+到期评估模块
- mofin_db.py: 新增write_holding_strategy_versioned(对比关键字段→supersede/new)
- strategy_effectiveness.py: 策略到期后用完整K线评估区间职责履行
- holding_strategies新字段: strategy_source/cycle_start/buy_zone_expected_days/take_profit_expected_days
- strategy_effectiveness表: 记录策略评估结果(买入区/止损/止盈/时间准确性+改进建议)
2026-08-21 01:56:31 +08:00
xxm e0bd7fe2a6 refactor(trade_capture): 最大容错版——不限截图类型/不限股票数量/逐只独立处理 2026-08-21 00:36:10 +08:00
xxm 4d71075ee9 refactor: 截图识别重构为LLM执行协议(trade_capture模块+server.py集成) 2026-08-21 00:29:34 +08:00
xxm 61c3cb52b2 docs: LLM执行协议开发规范+可复用JSON schema
- docs/llm-execution-protocol.md: 从重评流程提取的通用协议(输入/prompt/解析/校验/写入/错误处理)
- specs/schemas/reassess-output.json: 重评LLM输出节标题schema
- specs/schemas/trade-capture-output.json: 截图识别LLM输出schema
- 可复用组件: _section_line/snapshot_strategy_history/write_holding_strategy/门禁模式
2026-08-21 00:08:09 +08:00
xxm 6a036faa28 fix(import_holding_xls): 导入后调用clean_watchlist清理自选池 2026-08-20 23:13:28 +08:00
xxm 4dfc77ace2 refactor(clean_watchlist): 重写为main()函数,可被import_holding_xls调用 2026-08-20 23:09:52 +08:00
xxm 29f9c3ff86 fix(clean_watchlist): 修复main()缩进问题 2026-08-20 23:00:37 +08:00
xxm 6347d9b88b fix(clean_watchlist): 修复main()函数化缩进 2026-08-20 22:59:14 +08:00
xxm 99cce27a2c refactor(C组): clean_watchlist改为函数+import_holding_xls增加调用+premarket_full_review增加兜底对账 2026-08-20 22:54:46 +08:00
xxm 8c880e1b7c fix(batch_reassess): 价格从stock_daily读,PE/市值从stock_fundamentals读,移除所有curl API调用 2026-08-20 22:17:19 +08:00
xxm 6e7e9ca061 fix(batch_reassess): 价格从stock_daily/live_prices读取,移除curl API直接调用 2026-08-20 18:22:36 +08:00
xxm 6396d6fe86 refactor: 归档stale_push_wlin(price_monitor已覆盖其功能)+清理残留引用+禁用cron job
- stale_push_wlin归档(price_monitor每2分钟监控所有持仓+自选的买入/止损/止盈区间,已完全覆盖)
- market_config/mofin_health/signal_ledger注释引用更新
- jobs.json禁用stale_push_wlin cron job
2026-08-20 17:33:04 +08:00
xxm 9899be4bcd fix(prompt): 修复stock_indicators查询—移除不存在的bias20列,补dist_ma20/vol_ratio 2026-08-20 16:18:26 +08:00
xxm cca20cf0e2 fix(prompt): 修复_sector_extra未定义(行业强度注入) 2026-08-20 16:14:58 +08:00
xxm f1d3862480 fix(prompt): 修复数据断裂——行业强度进LLM+移除死数据
- collect_data(): 从sector_snapshots读取行业涨跌/排名
- build_prompt(): 注入行业强度数据(行业涨跌%+排名)
- 移除current_regime_strategies死数据(旧策略名不匹配strategy_defs)
- 港股缺资金流(数据采集层限制,非代码问题)
2026-08-20 16:07:54 +08:00
xxm 228fefd328 feat(prompt): 技术指标注入LLM prompt——collect_data增加ta/mtf/factor,build_prompt增加_tech_str
- collect_data(): 从ta.full_analysis获取支撑阻力/MA/形态,从mtf获取多周期趋势/RSI,从stock_indicators获取mcap_q/pe_q/bias60
- build_prompt(): 在技术面段注入_tech_str(MA/dist_ma20/RSI/多周期趋势/基本面分位)
- LLM现在能看到11个策略所需的全部输入数据
2026-08-20 15:51:42 +08:00
xxm 118bcebb1b feat(prompt): 技术指标注入LLM prompt——collect_data增加ta/mtf/factor,Build_prompt增加_tech_str数据段
- collect_data(): 从ta.full_analysis获取支撑阻力/MA/形态/量价,从mtf获取多周期趋势/RSI,从stock_indicators获取mcap_q/pe_q/bias60等
- build_prompt(): 在技术面段注入_tech_str(MA20/dist_ma20/RSI/多周期趋势/基本面分位)
- LLM现在能看到11个策略所需的全部输入数据(之前只有tech_snapshot文本摘要)
- 语法验证通过(176脚本OK)
2026-08-20 15:49:25 +08:00
xxm 04faf4ed15 refactor(B组清理): 归档strategy_tree/branch_evaluator/prune_branches/branch_scanner,detect_scenario→market_regime
- 归档4个B组模块: strategy_tree.py/branch_evaluator.py/prune_branches.py/branch_scanner.py
  按方法论:只有重评才能改信号和操作,B组的分支扫描/评估/剪枝越权
- stale_push_wlin.py: detect_scenario→market_regime.load_market_regime()
- strategy_lifecycle.py: detect_scenario→market_regime.load_market_regime(),筹码权重改用温区
- import_holding_xls.py: 移除init_default_branches调用(分支概念已移除)
- per_stock_reassess.py: 移除init_default_branches调用(分支概念已移除)
- 清理mofin_db.py/strategy_lifecycle.py残留注释引用
- 关键脚本语法全部通过
2026-08-20 14:20:14 +08:00
xxm 80eb051e6f chore(cleansweep): 修复重复import+清理过时注释——25个文件56处重复import已修复,5个辅助模块注释更新
- run_all_tests.py: 移除未使用的write_holding_strategy import
- strategy_tree.py: 移除重复import行(21-22行完全重复)
- 25个文件的模块顶层重复import已清理(跳过try/except lazy loading)
- holdings_reconciliation/clean_watchlist/branch_scanner/advice_reconciliation/prune_branches: 注释从decisions.json更新为holding_strategies表
- 关键脚本语法全部通过
2026-08-20 11:46:48 +08:00
xxm c68f987653 chore(cleansweep): 代码大扫除——归档hermes 111个死工具+4个废弃scanner,收敛MoFin/scripts重复副本,删除根旧版mo_models
- archive/hermes-dead-tools-20260820/: hermes独有不在cron不被import的111个一次性排查/测试工具
- archive/hermes-dead-tools-20260820/: 4个废弃scanner(btd1_v3/market_scanner/market_thermometer已废弃/s2v2)
- archive/legacy-cleanup-20260820/: MoFin根2旧版(mo_models/technical_analysis)+/home/hmo/scripts无引用旧项目+MoFin/scripts重复prepare_report_data
- 删除MoFin根mo_models.py(根旧版,deploy/profile-scripts权威保留)
- 保留: mofin_db.py/mo_data.py硬链接(server.py多层sys.path需各目录访问同一inode,非冗余)
- fix_gateway.py保留(Gateway看门狗fix_gateway_port.py的活跃依赖,勿误删)
- 验证: cron所有脚本引用无缺失, key模块import正常
- hermes独有从116收敛到5核心(alert_logger/market_screener/prepare_report_data/self_todo_executor_v2/xmpp_zhiwei_bot)
2026-08-20 10:36:25 +08:00
xxm 0ec90ec893 feat(docs-tab): 文档分类更新——运维参考加operations-index/scheduler-mechanism,新增架构治理分类(新文档正确归类) 2026-08-20 07:49:48 +08:00
xxm 492bc75d13 docs: 索引+版本记录更新(运维索引/调度机制/架构治理分类,记录8/19-20大扫除) 2026-08-20 07:49:05 +08:00
xxm b8f6e611c0 docs: 运维操作索引——问题场景→文档/命令定位(改调度/查重评/数据流/文档导航) 2026-08-20 07:44:25 +08:00
xxm 50629f1b70 docs: hermes cron调度机制——改时间只改schedule.expr,next_run_at是派生值由croniter自动重算(2026-08-20改7:10教训,避免再踩坑) 2026-08-20 07:39:13 +08:00
xxm d47be18579 fix: 每日盘前重评补全自选池——batch_reassess同时启动holding+watchlist(老莫第4类重评要求所有池子一一重评,原只评持仓) 2026-08-20 06:46:07 +08:00
xxm f679b83f34 chore: 小果收尸补漏——mofin_health移除xiaoguo_signal_consumer/xiaoguo_scanner残留描述,删hermes残留副本 2026-08-20 05:36:48 +08:00
xxm cf9b87ef4d fix: price_monitor三处进区触发改为真12维LLM重评(_do_llm_reassess调per_stock_reassess)+30min冷却(补上次被回滚的commit,根治技术快算) 2026-08-20 05:33:56 +08:00
xxm 44e56089f3 chore: 小果收尸完成——server.py停用/api/xiaoguo-scan,xiaoguo_scanner.py移除,恢复.sh执行权限 2026-08-20 01:08:17 +08:00
xxm 7df2758873 chore: 小果(xiaoguo)收尸——删表/删建表/停API/归档脚本/移除监控描述(铁律10,已确证废弃7/20归档) 2026-08-20 01:06:58 +08:00
xxm 5b767411af docs: 系统大扫除记录20260819(备份/数据流地图/白名单参数保护/死表清理/重评路径纠正) 2026-08-20 00:50:51 +08:00
xxm a5dcb9136d fix: 策略参数权威保护改白名单机制——只有per_stock_12d/batch_12d/promote能写参数,辅助模块(clean_watchlist/branch_scanner等)无法覆写(根治00020等无快照票被反复覆写参数) 2026-08-20 00:42:52 +08:00
xxm 5674d3e66a docs: 数据流地图(顺瓜摸藤)——56表读写方+多写方风险,为系统大扫除提供依据 2026-08-20 00:31:13 +08:00
xxm a817d303a9 feat: 数据实体Tab加多写方风险维度(老莫思维提升)——holding_strategies 10写方等高风险标红,孤立死实体标注。修复mofin_db elif缩进 2026-08-19 23:44:37 +08:00
xxm fea6340228 docs: 补全4类重评体系(3.3b)——选股/买触发/卖触发/盘前全量,明确12维必须LLM+进区触发重评维持才发+冷却期三原则(老莫,2026-08-19) 2026-08-19 23:00:44 +08:00
xxm 3be8e53b13 docs: 架构修复记录——holding_strategies多写入方+快照污染(P2深挖发现/计划/结果) 2026-08-19 16:47:06 +08:00
xxm 3cbd76f7ee feat(P2-B+C): 权威保护加固——per_stock重评24h内其他源不得覆写参数(解决参数覆盖反复出bug)。A+D快照瘦身已前置 2026-08-19 16:40:25 +08:00