Commit Graph
575 Commits
Author SHA1 Message Date
hmo 0708a5ffaa fix(rr): 卖出/止盈信号不计算RR(RR是买入区间的盈亏比,对卖无意义)
- recompute_rr检测到卖出信号直接写0返回
- 前端RR=0时显示'—'(已有逻辑)
- 补充: 卖出/止盈/关注/观望等非买入信号RR不显示
2026-07-27 10:02:40 +08:00
hmo 6f3a95601c chore: 清理generate_report.py+mo_alphasift_bridge.py影子副本 2026-07-27 09:56:48 +08:00
hmo 5d08353d44 fix(rr): 三值RR共用统一上方目标 根治中值>范围上下界的自相矛盾
- 上方目标基于区间中值统一定(非每个x单独算),确保rr_low>rr_mid>rr_high恒成立
- digest三值范围排序(小~大)显示,数学自洽
- 弹窗已用下沿/上沿语义标签,数值颠倒不影响理解
2026-07-27 09:51:16 +08:00
hmo 3284e14e4b fix(ui): price_monitor 运行监控——开盘期间数据>5分钟未更新则红色闪烁告警 2026-07-27 09:45:13 +08:00
hmo f0407f3a98 fix(ui): 右上角时间改为同时显示价格数据时间+页面刷新时间,各带图标和标签 2026-07-27 09:42:06 +08:00
hmo 52b2a67a90 fix(ui): 当前操作策略列去掉line-clamp-2截断,全文显示 2026-07-24 16:36:38 +08:00
hmo 0513522e5a fix: MoFin/scripts/死路径全部改指deploy/profile-scripts/
- promote/review_needed_watchdog引用已删除的per_stock_reassess.py
- meta_growth→hardcode_scanner, mofin_collect→stock_quote, stale_detector同
- 清影子副本的连锁遗留
2026-07-24 14:41:56 +08:00
hmo 5de6bda868 fix: promote技术位锚定+accumulation入门4→5+watchlist_auto_exit排cron+归档孤儿market_scanner
- promote参数不再信扫描器: ta.full_analysis重定 区(弱撑~弱压)/损(强撑x0.985)/盈(强压)
- accumulation_scanner入门闸 score>=4→5(减少陪跑噪音)
- watchlist_auto_exit排入系统crontab(每日08:50,此前根本没调度)
- market_scanner.py是孤儿(跑的是market_screener),归档
2026-07-24 14:32:40 +08:00
hmo 1523f9ad16 feat: position hard-constraint + cash-linked sizing + rotation context
- 建议仓位必须具体数字%,模糊表述(中等仓位/减仓或观望/轻仓)视为输出作废
- 必须结合可用现金计算可买股数,理想仓位超现金时写出实际可执行仓位+换仓建议
- 未持有股票注入最弱3只持仓上下文,LLM可给'减持XX换入'的具体换仓建议
2026-07-24 14:04:02 +08:00
hmo a6ad0f6f9e fix: negation scan covers position-advice line + exec requires explicit position pct 2026-07-24 13:51:58 +08:00
hmo 185f8f3b58 fix: advice-negation downgrades buy signal to guanzhu 2026-07-24 13:43:36 +08:00
hmo fc587f1252 feat: RR按最近上方阻力结算(老爸:前高挡中间时止盈是放空炮)
- 上方目标=min(止盈, 20日新高若高于基准价)
- 601988案例: 止盈6.3但前高6.11挡中间, RR从3.44(虚)→1.33(实)
- 突破形态(现价已在20日新高)不惩罚,用止盈全值
- 三值RR同步体现入场价敏感度
2026-07-24 13:18:25 +08:00
hmo ed842bc85d fix: digest与盯盘推荐区同步(老爸:推荐和XMPP同步)
- flush_rec_digest先回库校验快照: tag撤销/信号降级为弱信号/RR<2.0的条目丢弃
  (队列是打标瞬间快照,之后状态变化不再误推)
- digest预算门槛1.5→2.0(与盯盘exec一致)
- digest每条加💰可执行/排队徽章(与盯盘术语一致)
- buys/queued初始化防NameError
2026-07-24 12:37:52 +08:00
hmo 5667c89943 fix(ui): 买入区显示2位小数(5.96~6.02不再被round成6.0~6.0) 2026-07-24 12:29:54 +08:00
hmo 309f074c51 feat: S6叙事一致性检查+统一入口+容量60硬顶+提拔先入观察
- candidate_filter S6: 消息(个股+行业)x资金x技术叙事矩阵
  利好出货/三重打击=硬否决(dropped=1,不可被高分抵消)
  共振做多+3/利空出尽+1/资金驱动+1/阴跌-1/行业利空-1
- promote: 信号一律先入'关注'(12维确认才升,消灭出生即买入); 容量60硬顶,RR<2的末位淘汰
- alphasift收编: 只写candidates不再直写自选(统一入口)
2026-07-24 12:09:30 +08:00
hmo 481acfb18f feat: 优中选优机制(老爸:阈值太低+存量清洗+直接删)
- enqueue_recommend加严: RR>=2.0+仓位必须明确%+买入区有效+不追高(防今早RR1.49/仓位观望/区缺失的垃圾digest)
- promote: score>=7(原4=91%通过率)+ST排除+RR>=2.0
- watchlist_auto_exit: 新增死水3连退+RR<1.5退; 退出方式改为直接DELETE(非inactive)
- 盯盘可执行门槛1.5→2.0
2026-07-24 11:00:41 +08:00
hmo 1cdef8da7e feat: SenseNova高速通道(key从hermes config读,不落盘)
- token.sensenova.cn托管同款deepseek-v4-flash,实测3.2s vs OCG 45s(开盘高峰)
- 通道顺序: sensenova→OCG key池→gateway; 空输出直接切下一通道(SN无pro)
2026-07-24 09:18:15 +08:00
hmo a559fc84dd feat: 批量重评分片并发(老爸:这么多key不能并发?)
- batch_reassess --shard K/N: index%N==K分片,N进程互不重叠
- llm_client LLM_KEY_OFFSET: key池起始位错开,避免N进程压同一首选key
- SKIP_FLUSH=1时worker不发摘要,parallel_batch.sh收尾统一flush
- parallel_batch.sh: N路并行+等待+统一digest
2026-07-24 09:02:34 +08:00
hmo 9fad0cfa14 feat: kanban→XMPP通知桥(assignee=xiaoxiao/xxm的卡片DM给xxm@yoin.fun)
- hermes gateway dispatcher只派给246本地hermes profile, 小小莫在Windows够不着
- 每2分钟扫kanban.db, [Kanban] card.assigned格式DM, 去重状态文件
2026-07-23 15:53:06 +08:00
hmo 8de2230609 chore: 删除根目录capital_flow_collector死符号链接 2026-07-23 15:07:06 +08:00
hmo ad68878691 chore: 影子副本大清剿——删除7个陈旧/重复tracked副本
彻查发现8个影子副本(内容漂移):
- scripts/batch_reassess.py(07-22旧版,无锚定prompt)
- scripts/per_stock_reassess.py(07-22旧版,含已删除的160行独立prompt)
- scripts/verify_reassess_pipeline.py(07-21旧版)
- scripts/server.py(07-08远古版)
- price_monitor.py根+scripts(旧版,无进区摘要关停; 且根副本有未提交改动)
- capital_flow_collector.py根+web-dashboard(死符号链接)
- hermes scripts下server.py/xiaoguo_news_processor/xiaoguo_scanner(孤儿)
保留: 每类只留唯一canonical(deploy/profile-scripts或根目录SSOT)
2026-07-23 15:05:39 +08:00
hmo 5e2d430c39 fix: 删除根目录陈旧strategy_lifecycle.py(影子副本)+2个bak垃圾
根因: 根目录与profile-scripts双tracked, 根副本停在07-21旧版
→ root上下文import拿到无修复旧代码(今日refresh_actions踩中)
technical_analysis/multi_timeframe根副本内容一致暂不动
2026-07-23 14:53:40 +08:00
hmo 9e995accb2 fix(template): 空仓股票不再显示'盈利持有'
- 技术模板action首段按profit_pct打标签, 非持仓cost=0→profit=0→永远掉进'盈利持有'
  (601998: 空仓+信号买入+显示'盈利持有', 自相矛盾)
- 非持仓(shares=0/is_watchlist): 买入信号→'空仓·可建仓', 其他→'空仓关注'
- manual分支同款修复
2026-07-23 14:42:13 +08:00
hmo 91b26361e9 refactor: write_holding_strategy改UPSERT,DELETE+INSERT模式退役
- 只写自有列; rr_low/rr_high(recompute_rr拥有)/superseded_at/created_at不在写集→天然保留
- 未来新增计算列自动免疫(老爸: 新增计算列为什么要用delete+insert?不该用update吗?)
- 消除DELETE→INSERT崩溃窗口和created_at被重置副作用
2026-07-23 14:31:18 +08:00
hmo 6eab2148eb fix(audit): candidates UPSERT保计算列+market_scanner INSERT对齐表结构+拆除sync_decisions_to_db地雷
举一反三审计结果:
- accumulation_scanner: INSERT OR REPLACE整行替换,promoted=1的候选被重置score/promoted/log
  → ON CONFLICT DO UPDATE只更新扫描器自有列(cron活跃,今日必修)
- market_scanner: INSERT引用表中不存在的列(price/score/entry_low等),实测必失败
  → 对齐真实schema+同款UPSERT(孤儿脚本顺手修)
- sync_decisions_to_db.py: 全表DELETE再从已不存在的decisions.json重建,地雷→归档
2026-07-23 14:23:06 +08:00
hmo 12f7f87a2e fix: 弱信号不可执行+rr_low/rr_high防DELETE+INSERT冲零
- /api/watch: 信号不充分/关注/弱势持有/观望/持有 的推荐永远排队不徽章可执行
  (tag是LLM行动信号时遗留,技术路径降级信号后无权摘tag,徽章层自卡信号)
- write_holding_strategy: INSERT补rr_low/rr_high列,调用方不提供时保留旧值
  (盘中per_stock技术路径每次DELETE+INSERT把两个计算列冲成0,昨晚回填全灭)
2026-07-23 14:11:22 +08:00
hmo d5a62f48ef refactor: per_stock统一使用batch的collect_data+build_prompt
- 删除per_stock内160行独立prompt及数据装配(宏观/PE/资金流/新闻/变更记录/技术位锚)
- 单一prompt源头: 以后改prompt只改batch_reassess.build_prompt一处, 不再漂移
- per_stock免费获得: 技术位锚/持仓上下文(持有vs未持有)/组合现金/参数自检/统一输出纪律
2026-07-23 13:53:37 +08:00
hmo ccfa22c0d4 fix(per_stock): prompt补齐技术位锚定(与batch同源)
- per_stock的12维prompt是独立实现,无【技术位锚】无买入区间输出无参数自检
  → 今日35只重评中26只经per_stock路径,锚定纪律缺失(双prompt漂移)
- 注入同款锚定段+买入区间输出+参数自检+输出纪律第4条
2026-07-23 13:40:28 +08:00
hmo 37664f0523 fix(prompt): MA行仅在可用时输出 2026-07-22 23:46:18 +08:00
hmo cf039b2770 feat(prompt): 技术位锚定+止损门禁+12维命名统一
- collect_data: 现算technical_analysis.full_analysis(强撑/弱撑/枢轴/弱压/强压/有效区间/MA)
- prompt: 【技术位锚】独立高亮段+锚定纪律(止损<区下沿,锚弱撑下方1-3%/强撑;止盈锚弱压强压;
  偏离须说明理由)+输出纪律第4条+【参数自检】节
- save_result: sl>=el时用弱撑x0.985/强撑x0.99自动修正并留痕,无技术位拒写
- 命名: 九维→12维全局统一(prompt/docstring/前端弹窗)
2026-07-22 23:43:45 +08:00
hmo 440ce56b0b fix(ui): 盯盘推荐区RR三值+个股弹窗DB化
- /api/stock/<code>: 从holding_strategies读策略/三值RR/action/full_analysis
  (原先只读data/stocks/{code}.json, 与DB脱节, 弹窗打开=空白)
- openStock弹窗: 新增当前策略卡(信号/区间/损盈/三值RR/仓位/操作建议)+12维分析折叠区
- 盯盘推荐区RR列: 中值下方小字显示下沿~上沿(上次改错表了, renderWatchlist≠盯盘推荐区)
2026-07-22 23:25:34 +08:00
hmo 0f2c6555df fix(action): 12维操作建议写入action+技术路径action权限保护+RR区间显示修复
- batch parse_response提取【操作建议】→ save_result写action(根治: action字段只有技术路径写,
  旧'盈亏比不足不建议买入'与12维买入分析同框矛盾)
- write_holding_strategy: 技术路径不得覆盖新鲜(<20h)12维 action(与信号权威同级)
- 前端: rr_high>0即显示低~高区间(rr_low=0是合法信息: 区下沿=止损贴底即损)
- server: SEND_FILE_MAX_AGE_DEFAULT=0 禁静态缓存
2026-07-22 23:16:43 +08:00
hmo f7f7fe3ca0 fix(parser): 节标题锚定解析+脏区间清洗+三值RR
- parse_response: 只认行首【买入区间】【综合结论】等节行(原先取首个关键词行,
  命中修改点段落引用的旧脏值→95~99区间反复写回,17只股票受害);
  信号锚定】后首词,防'观望(不建议买入)'误判; 【买入区间】无→显式清空
- save_result: 区间-现价距离门禁(eh<0.5px或el>1.5px→拒写并清空,不再保留原值养脏)
- recompute_rr: 三值RR(rr_low/rr_ratio中/rr_high,分别对应区下沿/中值/上沿入场)
- 迁移: holding_strategies+rr_low/rr_high列; digest显示RR中(低~高); watch API+前端展示
2026-07-22 22:59:18 +08:00
hmo 56e1326569 fix(rec): RR基准价改用买入区中值(老爸决策)
- 区/损/盈三数同出一份分析, 自洽闭环; 不随价格波动; 脏区间自动算出RR=0现形
- 区间缺失才兜底现价
2026-07-22 20:49:59 +08:00
hmo 9bcf3e5e63 fix(rec): RR系统自算落库+卖出不占买入预算+RR>=1.5门槛
- mofin_db.recompute_rr: 用现价+止损止盈重算RR, sync_recommend_tag入口统一调用
  (根治: prompt没让LLM输出RR, parse不解析, save不落库 → rr_ratio永远0)
- flush_rec_digest: 卖出/止盈单独一组排最前, 不占现金预算; 买入加RR>=1.5可执行门槛
- server.py/api/watch: 卖出永远可执行; 买入RR>=1.5才给可执行徽章
  (根治: 卖出默认吃8%预算被排队, RR=0的5%仓位反而挤进预算)
2026-07-22 20:31:47 +08:00
hmo dabef038db fix: max_tokens下限512(OCG对小max_tokens短路返回空) 2026-07-22 14:00:14 +08:00
hmo efd8baaeff fix: 空输出不再假成功——升级pro仍空时落到外循环切下一个key 2026-07-22 13:54:25 +08:00
hmo 9939713059 feat(llm): OCG key池——按/api/keys实时状态排序轮换(key6优先),空输出同key升pro再切下一key 2026-07-22 13:51:43 +08:00
hmo e0e98ebb1a fix: 消息面不限情绪标签(分类器已死,原始新闻直接喂LLM自行判断)——batch+per_stock两路 2026-07-22 13:37:45 +08:00
hmo 40a75554aa fix: 消息面查询code列不存在(searched_stocks)导致整个try块死亡——改列名+兜底独立try 2026-07-22 13:31:29 +08:00
hmo 5ebc093408 feat: 腾讯基本面刷新器(PE/PB/EPS/总市值/流通市值) 2026-07-22 13:09:30 +08:00
hmo cdfc7346f1 feat: cninfo行业富集器——批量补全stock_sectors行业映射+回填sector_context 2026-07-22 13:04:43 +08:00
hmo 5d8c7476ff fix: 行业未映射时诚实标注,禁止大盘指标伪装成行业信息 2026-07-22 12:52:12 +08:00
hmo cdbbcec69e fix: stock_sectors列名sector→sector_name(静默except吞掉的错误) 2026-07-22 12:50:41 +08:00
hmo eb644221f4 fix: 资金流聚合输出net_flow/main_force/retail_flow/trend(12维资金面恒0根因) + sector_context污染时行业名兜底 2026-07-22 12:46:22 +08:00
hmo a3f5ad5b3a fix: 资金流端点再修正——ssl_qsfx_zjlrqs(最新在前), lscjfb数据停2020年是僵尸源 2026-07-22 12:36:01 +08:00
hmo 51c19b4971 fix: 资金流改Sina MoneyFlow(eastmoney 246不可达) + 消息面按行业名匹配+大盘兜底 2026-07-22 12:31:48 +08:00
hmo b92a8cb666 fix: 换仓建议f-string嵌套引号语法错误(已部署版本必现,紧急修复) 2026-07-22 11:02:43 +08:00
hmo 294133d605 feat(推荐): 换仓策略——现金不足时自动给出减弱势持仓换入排队推荐的方案 2026-07-22 11:01:02 +08:00
hmo f35144f3f1 feat(盯盘): 推荐区全展示+可执行/排队徽章(预算内标可执行,不再降级隐藏) 2026-07-22 10:53:32 +08:00