tradingSystem/app/services
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
..
__init__.py 第二批: 命令状态机/方案生成器/回放对账/管理页面/调度器骨架 2026-07-27 17:12:09 +08:00
advice_service.py 三源合议工作包二(三):advise_v2 基本面×技术面仓位矩阵 2026-09-11 14:50:45 +08:00
candidate_pub.py 候选池发布给择时决策系统(台账 004) 2026-09-09 15:30:35 +08:00
command_service.py PMS 页面显示:用户设的止损价与目标价单独成列,参考位列标明来源 2026-09-03 16:30:49 +08:00
consensus_service.py 系统自决包:把新建仓/深亏补仓/目标价的该不该做交回合议与研判(台账 015) 2026-09-14 15:07:41 +08:00
consensus_stats.py 系统自决包:把新建仓/深亏补仓/目标价的该不该做交回合议与研判(台账 015) 2026-09-14 15:07:41 +08:00
dispatcher.py 代码全面修改 2026-08-28 13:07:27 +08:00
exec_advisor.py 处理命令冲突的问题 2026-08-20 11:09:33 +08:00
executor.py PMS 两处安全修复:强制交人改为一票否决不再被卖出方向短路;目标价与止损价接通且必定交人 2026-09-03 16:06:27 +08:00
industry.py 代码全面修改 2026-08-28 13:07:27 +08:00
judge.py 解锁重问:判定、取数、接线、参数、单测(台账 055 第二件之 PMS 侧) 2026-09-09 15:13:09 +08:00
ledger_service.py 提议失效不跨自然日、盘前与首轮扫描清扫过期提议;管理视图持仓总览加状态·下一步列;选股计划标成数据日 2026-09-16 09:40:41 +08:00
logic_state_service.py 公司质地与建议方案接入:公司深度两键透传、整句送研判可关、建议方案矩阵与研判补档、持仓页一行、三个运行参数、单测(台账 053) 2026-09-09 12:15:03 +08:00
macro_service.py 代码全面修改 2026-08-28 13:07:27 +08:00
market.py 解锁重问的判定逻辑与取数:纯逻辑模块 + 当日成交量与五日均量 2026-09-09 15:05:20 +08:00
param_store.py 候选按上游名次排:上游选股计划排序主轴换成公司质地后,选股序、入池、PMS 候选三处同序(台账 016) 2026-09-17 12:54:45 +08:00
plan_feed.py 候选按上游名次排:上游选股计划排序主轴换成公司质地后,选股序、入池、PMS 候选三处同序(台账 016) 2026-09-17 12:54:45 +08:00
portfolio.py PMS 文案第二批:规则闸、仓位约束、资金、计划取数 2026-09-04 13:27:45 +08:00
proposal_service.py 提议失效不跨自然日、盘前与首轮扫描清扫过期提议;管理视图持仓总览加状态·下一步列;选股计划标成数据日 2026-09-16 09:40:41 +08:00
publish_export.py 修复公示导出:模板残留隐藏行把合计行与图表整段藏掉;红绿条件格式按最终行位重建;净值+仓位双系列带标记图表 2026-08-28 17:20:58 +08:00
reask_service.py 解锁重问:判定、取数、接线、参数、单测(台账 055 第二件之 PMS 侧) 2026-09-09 15:13:09 +08:00
signal_service.py 第零件甲组:PMS 目标价那条路的四个缺陷,加裁决理由服务端强制 2026-09-07 11:22:05 +08:00
strategy_advisor.py 页面专业化包·文案与守卫:全页口语化文案改交易术语(台账 015) 2026-09-14 15:38:50 +08:00
strategy_runner.py 三源合议工作包三(二):策略层两道技术面离场(part 3+4) 2026-09-11 17:13:51 +08:00
strategy_service.py 按评审修订系统自决包:清仓停买入侧三件、弱表态按强弱、真通过要求、逻辑存疑不送研判 2026-09-14 16:40:22 +08:00
tech_service.py 盘中确认包:给技术面这一票加盘中放量确认,只用于入场(台账012) 2026-09-14 11:40:51 +08:00
upstream_signals.py 资金异动方向两套写法都认 2026-09-09 14:59:11 +08:00