Commit Graph
587 Commits
Author SHA1 Message Date
hmo 844f556545 feat: 买入区间中值突出显示(金色加粗,上下限之间) + XMPP同步 + no-cache 2026-07-27 13:28:04 +08:00
hmo eaeb6c2401 fix: 盯盘买入区间加中值(修正为renderWatch主表格) 2026-07-27 12:41:41 +08:00
hmo 5d043627ff feat: 买入区间加中值显示(XMPP+盯盘) 2026-07-27 12:24:11 +08:00
hmo 58d7d34cf1 fix(authority): 系统仓位含'系统按'永久保护(修复reassessed_at=None时权威失效) 2026-07-27 11:38:01 +08:00
hmo af43da2ff3 fix(authority): position_advice也纳入参数权威保护 2026-07-27 11:23:48 +08:00
hmo 7a3c74b63d fix: RR门禁前置+盘前标签修正+参数权威保护
- sync_recommend_tag: RR<2.0的买入先查RR再打tag(不落盯盘垃圾)
- 参数权威: 技术路径不得覆写12维Zone/SL/TP(防RR波动)
- prompt: 价格标签分盘中实时/上次收盘(不骗LLM)
2026-07-27 11:19:30 +08:00
hmo 46ca7bf404 fix(tag): RR检查前置于tag打标——RR<2.0不打current_recommend
- 原顺序:打tag→查RR→RR<2.0拒绝入队但tag已落盯盘→盯盘≠XMPP
- 修正: 先查RR→RR<2.0直接跳过不打tag→盯盘和XMPP永远一致
2026-07-27 11:15:50 +08:00
hmo f723664ca3 fix(authority): 策略参数权威保护——技术路径不得覆写12维的Zone/SL/TP
- 信号权威已有(防信号降级),但参数(区间/止损/止盈)一直裸奔
- price_monitor每2分钟写一次,参数一变RR就变→盯盘vsXMPP不一致
- 新鮮(<20h)12维分析的entry_low/entry_high/stop_loss/take_profit受保护
2026-07-27 11:06:17 +08:00
hmo 727467f1af fix(position): 仓位模糊时系统按RR公式自动计算,不丢弃
- 老爸: 不明确就让它变得明确,不是丢弃
- 公式: RR1.5-3=>8%,3-5=>12%,5+=>15% ×成长系数0.85,钳位5-20%
- 写入标记(系统按RRx.x自动计算,见原建议仓位)
2026-07-27 11:00:39 +08:00
hmo f3de4fb7fc fix(authority): 卖出/止盈也受20h权威保护(技术路径不能降级卖出→持有)
- 原代码只保护买入,价格监控每2分钟把12维的卖出信号写回持有
- 盯盘显示信号=持有但tag=current_recommend→自相矛盾
2026-07-27 10:29:10 +08:00
hmo b5f57b6eec fix(flush): 盘前分析在盘中推送前触发per_stock_reassess(用实时数据重评)
- 检测分析时间在开盘前(08:00-09:29)且当前已开盘→跑per_stock_reassess刷新
- 重评成功→用实时数据发digest(非过期分析)
- 重评失败→标记盘前分析警告(兜底)
2026-07-27 10:17:47 +08:00
hmo d27287f49b fix(digest): 信号从非动作级转入动作级时强制入队
- 原条件只检查tag新旧(持有→卖出时tag已遗留current_recommend→不入队)
- 新加: 旧信号非动作+新信号动作→入队(即使tag不变)
- 补充触发00700/300308/688639的历史卖出推送
2026-07-27 10:08:11 +08:00
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