Commit Graph

10 Commits

Author SHA1 Message Date
zlt f5cc1b8730 候选按上游名次排:上游选股计划排序主轴换成公司质地后,选股序、入池、PMS 候选三处同序(台账 016)
上游选股系统 2026-09-17 把选股计划的排序主轴从传导档位换成公司质地,计划顶层带 rank_axis=quality、每行带 quality_band/pointed/rank_old。这是上线协同阶段工作包乙:PMS 候选在上游是质地轴时按上游名次升序排、关掉自己的基本面立场分桶,让三处同一个序;上游没带 rank_axis(旧计划或选股系统回退)时逐字回到按立场分桶排,靠上游的键自门控。规格见 docs/上线与协同阶段工作方案与规格书_2026-09-17.md 工作包乙与附录乙。

改了哪些函数。plan_feed._rows 归一时带上 quality_band/pointed/rank_axis/rank_old 四键(缺就是空);parse_plan 返回加顶层 rank_axis、rank_rule;新增 _rank_mode 定这次的排序模式(upstream/quality_bucket/score);select_candidates 加参数 rank_by_upstream,生效条件是它为真且计划 rank_axis=quality,生效时排序键为上游名次升序、同名次原始分降序、立场桶不参与,返回加 rank_mode、items 透传四键;snapshot 名册快照的 meta 写 rank_mode(拉计划处按 _rank_mode 算好传入);_params 读 PMS_PLAN_RANK_BY_UPSTREAM,候选调用点透传。param_store 登记 PMS_PLAN_RANK_BY_UPSTREAM 默认开。

没改什么、为什么不合并。立场分桶排与纯分数排两支逐字不动(附录乙要求),上游没给质地轴时自动落回它们。三门槛一确认三风险、研判闸、下单链路、单表访问守卫都没动。不重启容器——上线是 09-23 收盘后重建镜像加 force-recreate、经用户同意,不在本提交、也不与 09-21 选股系统拉代码同一天。选股系统那一处小改(plan_review.pms_roster 按 rank_mode 还原序)在选股系统仓库单独一个提交,不在本提交。

单测。scripts/test_batch29_units.py 加三例(附录乙):上游 rank_axis=quality 且开关开时按上游名次排、立场桶不参与、rank_mode=upstream;上游没带 rank_axis 时逐字回按分桶排、rank_mode=quality_bucket;rank_mode 三态与四键透传、新开关登记。run_tests.py 的 batch29 例数 24→27。

实测读数。本地 py_compile 四个改动文件通过。本机缺 pydantic_settings 等依赖,按 CLAUDE.md 单测在容器内跑(make test 或 docker compose run pms-web python scripts/test_batch29_units.py),预期 ALL SUITES PASS、例数只增不减,交由 09-19 复审在部署机核。

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-09-17 12:54:45 +08:00
zlt 980235cb25 按评审修订系统自决包:清仓停买入侧三件、弱表态按强弱、真通过要求、逻辑存疑不送研判
到价自动清仓前改成与命令清仓同样的三件:撤方案、驳回该票待确认买入提议、撤在途买入指令
(原来只撤方案,已下发的网格买单会与清仓单对倒),且不再只在有活动方案时才做。
只有一方表态改按合议强弱打标记,弱表态开关关掉时不再按标准仓采纳。
自动采纳只认带应答体的真通过,动作不在研判范围的 PASS 一律交人。
decline/full 档逻辑存疑的新建仓不送研判直接放弃。到价清仓理由保留现价目标价股数。
页面加「系统已采纳」「系统已放弃」两种处置词。第三十四批加两例、装配自检加一例,共 900 例。
台账 015 补记,上午规格书附录己补真实仓三条。

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-14 16:40:22 +08:00
zlt 44ec6d4a5d 系统自决包:把新建仓/深亏补仓/目标价的该不该做交回合议与研判(台账 015)
PMS_SELF_DECIDE 四档 off/record/decline/full,人只处理四类例外(研判不可用、上游硬风险、
合议装不上、判决词认不出)。合议加择时异议观察(wait_timing);动作引擎打 decide_kind;
proposal_service._self_decide 按决定表判采纳/放弃/交人,自动采纳走建议档重算数量、自动清仓
按可卖量夹紧并先撤方案;裁决接口改收预设理由码(decide_reasons);观察读数加七类、复核加
两张表、日报加自决注意项。撤销台账 001 与 008 两句。全量单测 894 例 ALL SUITES PASS
(既有 871 例全绿即 off 逐字回旧)。

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-09-14 15:07:41 +08:00
zlt 94da25bc25 按评审修订观察读数包:增持门口径改只数、清早重复无读数行、复核脚本与台账口径一致
按 docs/观察读数包与加固包评审_2026-09-14.md 第五节,改读数口径与文档一致性(非代码缺陷):
- 增持门拦截改看只数:检查点是两分钟窗口,累计次数 rounds 会把同一只翻倍(一天最多
  八次),会误读。复核脚本第二张表用只数,台账 013 口径同改,rounds 只当诊断。
- 映射重建先清当日 tech_noread(consensus_stat_repo 加 delete_day_kind),以最新一次
  为准。06:30 缺读数、08:40 补上的票不再留旧行让逐只无读数偏高(占比用覆盖行算,一直准)。
- 复核脚本第四张表把「合议交人而人采纳」单列成信息行,不计入分歧——交人本就让人定;
  提议上限按天数放大(三十天窗口够用)。
- DEVLOG 09-14 节点修内部不一致:补文档包、从欠账里删掉已完成的 README/CLAUDE.md。
- record_round 的 params 注明暂未用(保留对齐规格书签名)。

第三十一批加一例(映射重建先清当日无读数),开发机全量 847 例 ALL SUITES PASS。

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-09-14 11:07:39 +08:00
zlt f2d6b37fd2 观察读数包:合议判定落表 pms_consensus_stat,加复核脚本与日报小节(台账013)
每轮扫描把合议相关的判定归类落表,供台账006到011复核,之前这些数只活在
扫描返回值与页面即时快照里,复核日期到了拿不出数。

做了什么:
- 新表 pms_consensus_stat(第21张),一天一票一类一行,重复记到只加次数。
- 动作引擎给合议跳过项(跳过分fund/bear、观察wait_tech)与增持门(gate_block
  带fill/add/dca)打类别标签,只在对应开关开着的分支里打,关掉逐字回旧。
- consensus_stats.record_round 按检查点归类落表:转空实弹随时写,路由与装配两类
  只在检查点写,试算不写;映射重建时 record_map_cover 记覆盖只数与逐只无读数。
- 复核脚本 scripts/consensus_review.py 与 make consensus-review 打出台账要的四个
  读数;日报加合议观察小节。
- 新参数 PMS_CONSENSUS_STAT_TIMES 控制检查点(默认0935,1030,1330,1445)。

哨兵:DDL表数20改21;record_round进SOFT_FAIL;第31批登记进SUITES与例数表。
开发机全量单测840例 ALL SUITES PASS。未在155部署(收盘后另行审批)。

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-09-14 10:19:51 +08:00
zlt 2d019a1b17 三源合议工作包三(二):策略层两道技术面离场(part 3+4)
part3 跟踪止盈盘中 SAR 止损线:09:45 后现价跌破昨日 SAR×(1-0.003) 即全清、当日一次;
每天 09:40 把技术面映射的 SAR 值刷进每条自动跟踪止盈,无读数撤旧线。
part4 弱基本面试探仓紧止盈自动挂载:基本面看空+技术面看多的试探仓次日 09:40 自动挂
回撤 3%/硬目标 8%/带 SAR 线的跟踪止盈,不占每日名额;认它靠入场账本 advice.tight_trail。

至此工作包三四部分全做完。台账 011;第三十批扩到 33 例;开发机全量 ALL SUITES PASS。
只对自动跟踪止盈与弱基本面试探仓生效,其余策略票行为不变(batch17/19 回归绿)。

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-09-11 17:13:51 +08:00
zlt 8fdcc2ac16 三源合议工作包三(一):技术面转空自动离场(part 1+2)
动作引擎加转空离场评估器 eval_tech_exit:相位转空且翻空≤2 交易日才评,
确认转空清仓全部可卖量、未确认减三分之一;默认自动执行(与保垫减仓同档),
档位 PMS_TECH_EXIT_AUTONOMY 三档 off/propose_only/full;同一翻空只处理一次
(PMS_TECH_EXIT_DONE 去重,SAR 翻多即清,不动表结构)。
- EVALUATORS 加一条改七条(TRIM、TRIM、EXIT、EXIT、ADD、FILL、DCA)
- 卖出优先级改来源分档:目标价<研究走弱<技术面转空<保垫减仓(既有相对次序不变)
- 策略票判据改按函数判:策略票只评到价清仓、不评转空离场(SAR 归策略层)

台账 010;第三十批 18 例;开发机全量 ALL SUITES PASS。
策略层两部分(盘中 SAR 止损线、弱基本面试探仓紧止盈)留下一增量。

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-09-11 16:52:35 +08:00
zlt 51815d5588 三源合议工作包二(四):接入下单链路(合议分流·增持门·质地排序·提议卡合议行)
把三块大脑接进新建仓与持仓的下单链路,每处守开关关掉即逐字回旧:
- 新建仓扫描前批量装配合议挂候选;scan_open 按合议路由分流
  (跳过/观察不占名额、观察带 wait_tech、交人强制确认、放行照常、缺合议退旧路)
- 合议开着时定档改用 advise_v2 仓位矩阵;六键进硬数字但不进送研判白名单
- 持仓增持门:合议看空停三类、技术面看空停回踩补足与盈利加仓、基本面看空停补仓,减持不受影响
- 候选先按基本面立场分桶再按分数;观察档质地看多进池开关(默认关)
- 提议卡加合议行与详情弹窗;候选处置新增「等技术面开口」

台账 007/008/009;第二十九批 24 例,本地全量 ALL SUITES PASS。

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-09-11 16:28:32 +08:00
zlt 0d3984582c 技术面接入工作包一(后端):取数落表、相位合成与映射打通
方案见 docs/技术面接入与三源合议方案_2026-09-11.md 第五节。让每只票多一份结构化
技术面立场,数据取自决策系统全市场技术面接口(布林线/多空布林线/SAR)。
- 新表 pms_tech_daily 存全市场每日读数,保留 40 个交易日
- core/tech_rules 相位合成(纯逻辑)、repo/tech_repo 单表访问、services/tech_service 分页取数落表与每早映射
- 调度加 06:30 tech_pull;plan_pull 拉完计划后补拉一次并重建映射
- 三接口:技术面状态、手动拉取(管理员)、单票研究面
- 参数 PMS_TECH_* 登记;哨兵同步(DDL 表数 20、调度位、路由清单)
- batch27 二十七例,开发机全量 ALL SUITES PASS;相位与五个阈值记台账 006

页面七处建议并入工作包二;合议(二)、离场(三)、选股打分(四)未做。未真机判收。

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-09-11 12:32:00 +08:00
zlt 4e8e2e4ac4 台账 001 到 005 与落地记录(含上线前试算读数)
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-09 15:36:33 +08:00