2026-09-02 16:04:06 +08:00
# 方案: 现有选股的改进点, 与数据底座信号的新应用( 2026-09-02)
## Context( 为什么做这件事)
因子桥是数据底座的第一个应用:每天早晨把底座的传导、热度、预期空间三路信号合成"景气度漏斗",出一份选股计划,送决策系统夜间推理与 PMS 下单候选。用户的判断是:桥只是底座的一种应用,底座积累的数据与信号应当还能长出别的应用;同时现有选股跑了一个月,该回头看有没有可改进之处。本方案回答两问。
**先说结论,细节在后面。** 第一,现有选股的核心筛选——"被传导指向、自身还没动的成员"——在过去一个月是稳定的负信号,送进末端链路的强传导档是四档里最差的;传导对"该看哪个环节"的定位有信息量,但"挑未动补涨"把它丢掉了。纯可交易口径下,"环节被指向、当日已涨 3% 以上、且明确吸筹"是全部实证里唯一合并样本为正的规则(五日 +2.18、十日 +1.94),但它是顺风策略、不免疫环境,且样本集中在 8 月初三天;"环境闸"用过去涨跌定义没有预测力,只能作复盘分组。第二,改法是把桥从"打分排序器"改成"候选卡装配器": 公式与档位不动, 每天出一份带理由的候选单( 三条门槛加一条确认加三条硬风险) , 落快照带版本戳, 用候选单复盘作这个系统唯一的评价方式, PMS 的候选来源等样本外复盘过线再切。第三,新应用按"模拟人做主观选股"重排:候选单复盘闭环、吸筹确认线、环节启动全景、环境标签验证、公告实时进粮、行情侧两条展示线、次日盘前预案;平台评价闭环整条作废,六个已注册因子请平台标为不参评。
第一节是全部实证与口径,供核对;第二节是改进方案;第三节是新应用方向;第四节是拍板点;第五节是验证;附录是执行细节,可不读。
## 零、设计目标的再确认( 2026-09-02 用户定调,第二、三、五节据此重写)
这个系统的定位是选股。它本身不做回测,也不做因子合成,那两件事有专门的系统(因子平台 quant_factor_service) 。更准确地说, 数据底座加选股系统的本质是**模拟一个人做主观选股**:感知市场环境、看什么在动、沿产业链想下一个受益环节、在环节里挑公司、看资金与估值、读披露、形成有理由的候选单、事后复盘。
因此,把选股结果因子化去做 IC 与单调性评价、纳入因子平台做评价或组合成员,改造难度大且背离设计目标,**不做**。旧版第二节的 A3、第三节的"平台评价闭环"整条作废。评价方式改为候选单层面的复盘: 候选单的命中率与相对简单基准的超额、按市场环境与证据线分组、案例级复盘( 这只票为什么进候选、决策系统怎么判、PMS 有没有动、结果如何、哪条理由兑现了)。措辞用"复盘",不用"回测"。
用户认可的判断: 强传导( 挑未动补涨) 可能无效, 吸筹可能有效, 还有其他数据源可用。第四节三项拍板记录仍然有效( 传导用法改为环节定位加确认加环境闸、先改用法不改公式; 环境闸由桥出标签、PMS 定仓位;新应用顺序去掉平台评价后按主观选股重排)。新信号作为候选卡上的证据线与确认条件,不作因子送进平台。
## 一、已核实的现状事实( 2026-09-02 实机读数,出处在括号里)
### 1.1 现有选股的形态
- 判据链:券商覆盖 ∩ 预期空间 ≥ 负容忍线(默认 0) ∩ 十五五赛道内 ∩ 非 ST/退市 → 主榜;无覆盖但在赛道或传导链上 → 观察档。主榜分 = 200 + 传导档位× 20 + 组内分(冷 + 便宜);观察档分 = 100 + 0.6z(传导) + 0.4z(−热度)。( plan.py 渲染口径、docs/选股说明_下游对接.md)
- 09-01 实况:主榜 520、观察档 674、档位覆盖 3765; 主榜前 12 全是强传导档,主题为散热器件、执行器、半导体设备、电机、热界面材料、灵巧手、储能;升档 27、降档 8。预期空间出现 +181%、+131% 这类噪音值(桥 /plan?format=md) 。
- 计划历史 21 期( 07-29 起) , 传导史纯实时积累无回填( 155 桥 data/plan) 。
- 日更由统一调度平台 XXL-JOB( 192.168.16.165)触发 /api/v1/xxl/daily-build, 最新冻结清单 09-01 无告警( 155 桥 data/frozen/2026-09-01/manifest.json) 。
- 155 部署版本 baaf5df, 落后开发机 3 个提交(只差 api.py 单票兜错修复)。
### 1.2 现有选股有效性的硬证据(口径对比器 score_lab, 07-29 至 08-14)
前 30 名按方案排序后的均收益与命中率( n=30; 基准为主榜约 960 只等权):
| 方案 | 5 日均收益 / 命中( 7 天) | 10 日均收益 / 命中( 3 天) |
|---|---|---|
| A 现行 | 3.06% / 59.5% | 5.51% / 65.6% |
| B 绝对档界 | 3.92% / 66.2% | 8.37% / 80.0% |
| C 连续加权 | 3.88% / 61.4% | 5.95% / 66.7% |
| 基准:主榜等权 | 5.88% / 72.1% | 9.71% / 79.0% |
结论:三种打分方案的前 30 名全部跑输"主榜全买"基准。样本仅 7 个交易日且处于强势市场,不能定论,但方向明确:现行排序(传导档优先 + 冷 + 便宜) 在这段样本里把好票往后排了。B 绝对档界方案在三者中最好。( 155 桥 data/score_lab/对比_2026-07-29_2026-08-14.csv)
### 1.3 平台侧评价:从未做过
- 六个因子已在因子平台注册( factor_type=single) , 但注册描述停在 07-30 口径( gate 描述写"赛道闸未启用"、score 写"档位× 10",与现行代码 × 20 及赛道已启用不符)。(平台 /api/v1/mining/factors/all)
- 平台评价任务共 4 个,零 akg。设计 v2.0 §10 判收要求的 RankIC/分层仪表盘从未兑现。(平台 /api/v1/evaluation/tasks)
- 平台 8 月底刚完成"复合因子诊断与改进"两阶段: 修了量价数据硬伤、股票池过滤( stock_filters) 、实盘口径打分器与超额评分、次新股隔离、双重复权、行情缓存。平台自家四个神经网络复合因子已于 08-03 停用,实盘不再消费。平台下一阶段路线第 2 项就是"单因子底账跑批 39 份",第 4 项是"底账解读后挑组合成员训练新组合"。( quant_factor_service/第二阶段收工记录_20260831.md)
- 平台根因清单对我们同样是镜子: 无超额概念、无股票池过滤、无行业市值中性化、缺失值填零、ST 数据断供( gp_stock_st 三月起无真值;桥的 ST 闸按简称识别,不受影响)。
### 1.4 上游约束的真实状态
README"已知的上游约束"三条在基座侧已全部修掉: 传导候选不再截断( transmission.py 无 quiet[:12])、成员查询加 ORDER BY 且 cap=200( graph_store.topic_context) 、行情快照日可钉死( hotspot._latest_mkt 带 trade_date) 。桥日志里的硬伤告警是 7 月底旧日志。README 该节待改。
### 1.5 底座数据资产的实机量级( 09-02 读数)
- 文本语料没有实时进粮:公告 48,395 份,最新披露日 07-20、最新入库 07-26、近 30 天入库 0; 研报 455 份,最新披露日 07-14、近 30 天入库 4; 年报类型 140 份,最新 06-10。事件断言 38.3 万条全部来自公告,最新披露日 07-20, 近 30 天零新事件——事件因子( 60 交易日衰减窗) 正在自然归零。( documents、claims 实机统计)
- 行情侧每日更新: mkt_daily 个股每日约 3,768 只(覆盖池口径,累计 4,688 只, 07-10 起),字段含 pct_change、price、net_amount、net_d5_amount、net_z、buy_lg、buy_lg_rate、heat、heat_chg、accum( 吸筹) 、total_score; 概念 387、行业 90( lead_stock、net_amount、net_buy、net_sell) 。一致预期 2,287 只有覆盖, 25,419 行带目标价, rating_dist 有评级分布。
- 断言 357 万条:子公司 129 万、持股 74 万、供应关系 SUPPLIES_TO 39 万、事件 38 万、产品 30 万、概念 19 万、行业 10 万;环节归属 IN_SEGMENT 事实 5.2 万 + 研报提名 1.27 万(其中 80% 带链修饰) ; DRIVES 逻辑论断 7 千(研报);链序 SEGMENT_UPSTREAM_OF 6.8 千。
- 信号密度受硬顶封死:热点扫描有七路异动源(板块、概念、行业、个股四路行情,事件一路,盘中资金告警与资金强度两路),每路取前 8 条;实测近期每天只出五路各 8 条共 40 条——板块路因上游表空缺、事件路因近三十天零新事件而缺席。传导候选每日固定 25 条, avg_moved 0.01~0.19, quiet 成员 250~600 人/日。盘中资金告警与资金强度流已经以"异动源"身份进了盘后热点识别(雷达层,数据源盘点 §5.3)。
- 决策系统对桥候选的转化:池内 461 只,夜间推理后 BUY 6、WATCH 455, 风控卖出信号为空。( 188:38000 /api/pool)
### 1.6 边界铁律(方案不得越过)
- 三层边界:基座只暴露数据不打分;桥算因子;平台管评价决定用不用。总目标"找到产业链传导逻辑标的"横跨三层,此前没有跨层输出级判收,"平台的评价数从没回到开发环路里"。( docs/系统设计与核心思路.md §一)
- 应用层北极星四条用户主线 L1 研报→产业逻辑、L2 个股→业务、L3 热度变动→预测将热的链( 涌现主入口) 、L4 一致预期→贵贱; 判断永远留给人, 不打分; 主题必须涌现不硬编码。M-C 深度增强( 图谱增量可见化、brain 旁批、一致预期定向补拍) 未启动。( docs/涌现式应用层重构设计.md)
- 骨架分层主线( 08-12) : 骨架层冻结版本化、成员层核实/提名分档、动态层只读骨架、骨架外降档服务。
- 数据源纪律:决策系统的盘中实时分布 API 与 Mongo 分钟级明确"不碰"; 盘中热度表暂不接。( docs/数据源盘点.md §5)
### 1.7 底座信号资产盘点要点(探索代理报告,出处见括号)
盘前链( 北京时间, 周二至周六) : 06:10 环节投影 → 06:20 行情与一致预期快照( 06:35 备拍)→ 06:40 热点扫描(五源:板块/概念/行业/个股 行情三路 + 事件 + 盘中资金流两路)→ 06:50 传导扫描 → 07:00 日报。桥 07:10 接。注意代码 docstring 与前端空态文案仍写 18:00 系列旧时刻( tasks.py:554、main.py:288/301/483、HomeView.jsx:453) 。
底座当前没有任何盘中实时产出:唯一读盘中流的代码 store/flow_alerts.py 只被盘前 06:40 的热点扫描调用,作为"昨日异动源";盘中热度流未接;端点池与判定档只是模型算力调度,不产信号。
**写了没人读 / 只在页面展示 / 没进因子或决策链路的资产(新应用原料库):**
- 吸筹清单 accum( 决策系统评分, 今日页最显眼一节) : 桥零消费, 无 t_factor_akg_accum。
- 主力净额 z 值 net_z: 落库无渲染无下游。
- 机会线索(还没涨 / 还便宜 / 估值低于同链 / 传导指向) : chainmap 规则初筛只存旁批文本,判定本身不落库不进视图。
- 热点候选台账 hotspot_candidates: 无对应因子视图, 不进因子。
- 链序投影 v_factor_segment_edges: 只被诊断与冻结脚本读, 六个因子无一使用。
- 侧写层 IN_SEGMENT_PROFILE 等约 3.5 万条公司自述边:只被进度脚本计数,年报核实比对的设计意图尚无消费代码。
- 供应关系 SUPPLIES_TO 39 万条:用于遍历、级联、传导折算,未因子化。
- 桥节点 /graph/bridges、级联 cascade、链切片 chain_lens、框架层 /frames: 前端零调用或不进任何链路。
- 运营日报 ops_digest: 全库无 SELECT。争议裁决 /disputes/resolve 是 TODO 桩。
- 事件断言 qualifiers 含 event_type 十类闭集、amount、ratio、direction; DRIVES 边含 direction/mechanism/condition/horizon/strength。
### 1.8 传导信号的有效性检验( 09-02 自做实证,基座库)
取 08-11 至 08-25 共 11 个扫描日,每天传导预测指向的全部"未动成员"(每日 212~416 只),算后 5 个交易日累计涨幅,与同期全池(约 3,700 只)均值比:
| 扫描日 | 未动成员数 | 未动 5 日收益 / 命中 | 全池 5 日收益 / 命中 | 超额 |
|---|---|---|---|---|
| 08-11 | 337 | 2.18 / 59.3% | 1.95 / 58.4% | +0.23 |
| 08-12 | 280 | − 3.83 / 16.1% | − 3.43 / 17.8% | − 0.40 |
| 08-13 | 254 | − 1.76 / 33.5% | − 1.05 / 38.2% | − 0.72 |
| 08-14 | 313 | − 2.24 / 23.6% | − 1.16 / 34.7% | − 1.09 |
| 08-17 | 212 | − 4.73 / 17.0% | − 4.08 / 19.0% | − 0.65 |
| 08-18 | 307 | − 5.02 / 18.9% | − 2.43 / 35.2% | − 2.59 |
| 08-19 | 416 | 0.62 / 56.3% | 2.00 / 69.2% | − 1.39 |
| 08-20 | 380 | 2.15 / 68.4% | 1.83 / 67.6% | +0.32 |
| 08-21 | 404 | 1.49 / 60.1% | 2.09 / 69.6% | − 0.60 |
| 08-24 | 370 | 4.12 / 81.4% | 4.08 / 82.0% | +0.05 |
| 08-25 | 406 | 2.10 / 65.0% | 2.75 / 74.0% | − 0.65 |
11 天里 8 天超额为负,均值约 − 0.68 个百分点,命中率也普遍低于全池。与 1.2 的对比器读数互相印证。
按传导强度分组(同一样本,加 10 日期限, 10 日样本因数据截止只覆盖到 08-18 的扫描日):
| 源数 | 链符 | 样本 | 5 日超额 / 跑赢比例 | 10 日超额 / 跑赢比例 |
|---|---|---|---|---|
| 1 源 | < 10 | 346 | + 0 . 41 / 49 . 1 % | − 0 . 71 / 41 . 0 % |
| 1 源 | ≥10 | 269 | − 0.73 / 38.7% | − 0.86 / 37.5% |
| 2 源 | < 10 | 156 | − 0 . 65 / 42 . 3 % | − 0 . 83 / 41 . 0 % |
| 2 源 | ≥10 | 153 | − 1.27 / 41.2% | − 2.41 / 29.4% |
| 3+ 源 | < 10 | 56 | − 1 . 19 / 41 . 1 % | − 2 . 28 / 28 . 6 % |
| 3+ 源 | ≥10 | 300 | − 1.00 / 35.7% | − 3.38 / 24.0% |
传导越强(源数越多、链符越高),超额越负,持有越久越差。
同一目标环节内"已动成员"与"未动成员"对照( 08-11 至 08-18 六个扫描日, 10 日期限):已动成员 213 个样本, 5 日超额 − 2.60、10 日 − 5.22(跑赢比例 16.4%);未动成员 1,664 个样本, 5 日 − 0.83、10 日 − 2.05( 33.1%);环节全体 888 个样本, − 1.63 / − 3.99。结论:不是"未动的是弱者", 而是被传导指向的环节整体在随后一两周走弱, 已动成员回落最狠, 未动成员反而相对抗跌。可能的解释是时序错位( 题材传导在异动当日或次日盘中已完成, 盘前计划出来时已是尾声) 或回调期贝塔( 8 月中旬样本正处回调,热过的环节回落大于全池)。
扩样本到 07-29 至 08-26 全部 18 个扫描日、5 日期限、按"全池后 5 日涨跌"分环境:
| 市场环境 | 组 | 扫描日 | 样本 | 组内 5 日收益 | 全池 5 日 | 超额 | 跑赢比例 |
|---|---|---|---|---|---|---|---|
| 全池上涨周 | 已动成员 | 13 | 452 | +5.24 | +3.44 | ** +1.80** | 55.3% |
| 全池上涨周 | 未动成员 | 13 | 3,666 | +2.79 | +3.26 | − 0.48 | 39.5% |
| 全池下跌周 | 已动成员 | 5 | 169 | − 6.23 | − 2.83 | − 3.40 | 23.1% |
| 全池下跌周 | 未动成员 | 5 | 1,366 | − 3.49 | − 2.34 | − 1.15 | 39.7% |
**这组读数把结论钉死**:(一)"未动成员"在两种环境下都稳定小幅跑输全池,跑赢比例始终四成——当前选股的核心筛选是一个稳定的轻微负信号,不是样本期偶然;(二)同环节"已动成员"是高贝塔动量——上涨周大幅跑赢、下跌周大幅跑输——说明传导对环节的定位有信息量,但"挑未动补涨"这一步把信息量丢掉了;(三)市场环境是第一位的解释变量,环境闸(全池转弱时不出手)本身就是最大的改进项。改进方向应从"补涨轮动"转向"环节定位 + 动量确认 + 环境闸",与设计 §9-9( "还没热"改成条件项)的思路一致。
### 1.8b 桥四档的前瞻收益( 09-02 自做实证: 21 期历史计划全量口径, 16 个有后 5 日数据的扫描日)
| 档位 | 样本 | 组内 5 日收益 | 全池 5 日 | 超额 | 跑赢比例 |
|---|---|---|---|---|---|
| 强传导(送决策系统池与 PMS 候选的那一档) | 785 | +0.46 | +2.50 | ** − 2.04** | 33.4% |
| 弱传导 | 564 | +1.80 | +2.20 | − 0.39 | 39.2% |
| 无传导(主榜大头) | 6,364 | +2.36 | +2.36 | 0.00 | 42.1% |
| 观察档(无券商覆盖但在赛道或传导链上) | 10,824 | +2.34 | +1.82 | ** +0.52** | 46.0% |
档位排序与实际前瞻收益完全倒置:排最前、进末端链路的强传导档跑输最多;被定义为"低置信"的观察档是唯一正超额的一档。必须同时说明口径局限:样本仅一个月,市场环境偏小票强势,比较基准是覆盖池而非全市场,没有做市值中性。
观察档拆分(同一样本):观察档·仅在赛道无覆盖无传导指向 8,692 样本,超额 ** +0.68**、跑赢 46.9%;观察档·有传导指向 2,132 样本,超额 − 0.14、跑赢 42.5%;强传导参照 − 2.04。**观察档的正超额全部来自"无券商覆盖的赛道小票",是小市值贝塔而非选股能力;传导指向这个信号在任何档位都是负贡献。** 市值中性复核可做:桥的行情表 gp_day_data 没有市值列,但有 amount 与 turnoverrate, 流通市值可按"成交额除以换手率"推算(平台诊断文档同款口径)。
### 1.8c 吸筹评分的前瞻收益( 09-02 自做实证: 07-29 至 08-26 共 19 个快照日,覆盖池内)
| 吸筹状态(决策系统评分) | 样本 | 组内 5 日收益 | 全池 5 日 | 超额 | 跑赢比例 |
|---|---|---|---|---|---|
| 明确吸筹·量在价先 | 3,311 | +3.54 | +1.95 | ** +1.58** | 50.6% |
| 潜在吸筹·低位企稳 | 4,614 | +2.31 | +1.72 | +0.59 | 46.8% |
| 其他(信号不明、无迹象) | 1,404 | +1.78 | +1.69 | +0.08 | 45.7% |
| 高位派发 | 89 | +3.81 | +2.24 | +1.58 | 48.3%(样本太小不作数) |
**这是全部实证里唯一稳定为正、且分层单调的信号**(明确 > 潜在 > 其他)。它来自决策系统的资金结构评分,目前只在今日页展示,不进任何因子、不进任何链路。同时要注意 1.9 的反差:强传导档九成三处于吸筹状态但超额 − 2.04,说明"传导指向未动成员"这个负信号强到能压过吸筹的正信号,两者不宜做交叉标注,吸筹应作独立因子。
市值中性复核( 桥容器跨库计算: 流通市值按成交额除以换手率推算, 同日三分位分桶, 超额改为相对同市值桶均值; 19 个快照日 9,418 样本):
| 吸筹状态 | 样本 | 相对同市值桶超额 | 相对全样本超额(不中性) |
|---|---|---|---|
| 明确吸筹 | 3,311 | ** +0.58** | +0.56 |
| 潜在吸筹 | 4,614 | − 0.20 | − 0.22 |
| 其他 | 1,493 | − 0.69 | − 0.59 |
市值桶本身的贝塔:小盘 +0.30、中盘 +0.17、大盘 − 0.47(小票强势期确认)。**结论:明确吸筹的正超额不是市值贝塔,中性后不变;按市值桶看,大盘股里的明确吸筹最有效(+1.29,跑赢 50%),中盘 +0.38,小盘 +0.10。潜在吸筹中性后转负,此前的正超额只是小票贝塔。** 因此因子化的信号口径应收窄为"明确吸筹"一档。剩余局限:一个月样本、评分是每股近 30 天最新一条可能陈旧。
### 1.8d 传导环节成员按"已启动 × 吸筹 × 环境"交叉( 09-02 自做实证, 07-29 至 08-26, 环境按事后未来五日全池涨跌分)
| 是否已启动 | 吸筹状态 | 环境 | 样本 | 5 日超额 | 跑赢比例 |
|---|---|---|---|---|---|
| 已动 | 明确吸筹 | 涨周 | 73 | ** +4.33** | 67.1% |
| 已动 | 潜在吸筹 | 涨周 | 69 | ** +4.00** | 65.2% |
| 已动 | 其他或无数据 | 涨周 | 310 | +0.72 | 50.3% |
| 未动 | 明确吸筹 | 涨周 | 316 | +0.38 | 43.4% |
| 未动 | 潜在吸筹 | 涨周 | 195 | − 1.04 | 37.9% |
| 未动 | 其他或无数据 | 涨周 | 949 | − 0.62 | 38.3% |
| 已动 | 明确吸筹 | 跌周 | 30 | − 3.74 | 16.7% |
| 已动 | 潜在吸筹 | 跌周 | 27 | − 5.74 | 22.2% |
| 已动 | 其他或无数据 | 跌周 | 112 | − 2.74 | 25.0% |
| 未动 | 明确吸筹 | 跌周 | 93 | − 2.35 | 26.9% |
| 未动 | 潜在吸筹 | 跌周 | 110 | − 4.13 | 21.8% |
| 未动 | 其他或无数据 | 跌周 | 360 | − 1.61 | 28.9% |
**这是全部实证里最强的组合**: "环节被传导指向、成员已启动、且处于吸筹状态"在顺风环境下五日超额四个百分点、跑赢三分之二。已启动但没有资金进的只有 +0.72;未启动的即使明确吸筹也只有 +0.38。任何组合在逆风环境下都为负,已启动的跌得更狠。这正是"模拟一个人选股"的规则雏形:看环节、挑已启动且资金在进的、只在顺风时出手。样本一个月、部分格子样本不足百,结论限于方向。
**纯可交易口径(不分环境、不预测环境,全样本合并)**, 这才是新规则能不能立住的根据( 同一样本, 5 日与 10 日期限):
| 是否已启动 | 吸筹状态 | 5 日样本 | 5 日超额 / 跑赢 | 10 日样本 | 10 日超额 / 跑赢 |
|---|---|---|---|---|---|
| 已动 | 明确吸筹 | 103 | ** +2.18 / 54.4%** | 95 | ** +1.94 / 50.5%** |
| 已动 | 潜在吸筹 | 96 | +1.39 / 54.2% | 88 | +0.46 / 44.3% |
| 已动 | 其他或无数据 | 428 | − 0.15 / 43.7% | 361 | − 0.67 / 39.6% |
| 未动 | 明确吸筹 | 409 | − 0.26 / 39.9% | 219 | − 0.99 / 32.9% |
| 未动 | 潜在吸筹 | 305 | − 2.20 / 32.5% | 211 | − 3.85 / 21.3% |
| 未动 | 其他或无数据 | 1,325 | − 0.91 / 35.5% | 983 | − 2.15 / 32.2% |
口径注记:本节与 1.8、1.8b 的收益都从数据日收盘起算、累加后 5 或 10 个交易日的日涨幅,等价于信号日收盘买入,实盘买不到,复盘脚本一律改为次日收盘起算;已动与未动名单按当前投影表的成员集反推,带成员前视,历史日的严格重建要用桥每日冻结的投影快照,冻结不齐的日子标注近似。
三条结论:(一)"已启动"是必要条件——已启动但无资金进的接近零,未启动的一律为负;(二)明确吸筹是放大器,把已启动的从零推到两个百分点,且十日仍在;(三)这条规则不依赖环境预测,是当前唯一可以直接落到候选单上的可交易规则,样本 103 只、约一个月,先作为"确认条件"上候选单并进复盘,不当长期结论。
**分散度检查(必须诚实写明)**:这 103 个样本分布在 16 个扫描日, 但近一半( 46 个)来自 08-04 到 08-06 三天,那三天超额 +5.5 到 +6.5、跑赢七八成; 08-11 之后的每一个扫描日都为负( − 1 到 − 8) 。所以合并样本为正, 是因为样本期里顺风的天数多。这条规则的真实性质是"顺风时的好规则、逆风时的高贝塔",它比"未动"规则好(未动在任何环境都负),但它不免疫环境。落到候选单上时必须标明"顺风策略",仓位由 PMS 按自己的环境判断定。
**"已启动"的代码口径**:传导扫描判定环节成员"已动"用的是 hotspot._movers_set, 即数据日当日涨幅达到 3%( hotspot.py:92-95; 热点候选的个股源另用 5% 或日终评分 0.9,后者已停更)。所以新规则的准确表述是"环节被指向、当日涨幅已达 3%、且明确吸筹",它的贝塔来源就是这个追涨定义。阈值 3% 是现状口径,不是验证过的最优值。
同一组 103 个样本再切两刀(样本不足百,限于方向):按数据日涨幅分,涨幅 6% 以上的 24 个五日超额 ** +6.41、跑赢 75%**,涨幅 3% 到 6% 的 59 个 +1.04、跑赢 51%,另有 20 个因判定时点差异涨幅不足 3% 的 − 0.58——典型的动量特征,启动越猛的越好,"动量确认"的阈值有上调空间;按券商覆盖分,有覆盖的 83 个 +2.40、跑赢 54%,无覆盖的 20 个 +0.23、跑赢 45%——在这条规则下主榜的覆盖门槛是有道理的,不必为它放松。
**一条时序事实**:决策系统的市场区制快照在每天 08:40 预热落 Redis, 桥的计划 07:10 生成, PMS 08:40 拉计划。也就是说桥 07:10 出计划时区制判断还没算出来;而 PMS 的拉计划任务与决策系统的预热任务同在 08:40, 且 PMS 带五分钟计划缓存, PMS 大概率先拿到空标签并缓存。所以环境判断只能落在 PMS 侧,或者把 PMS 拉计划挪到预热之后,这是第四节的拍板点之一。
### 1.8e 环境闸的预测力检验( 09-02 自做实证)
上面所有"涨周 / 跌周"分组用的是**事后**的未来五日全池涨跌,不可交易。用可交易的"过去五日全池收益"做环境代理检验预测力( 07-10 起共 27 个有前后五日的交易日):过去五日涨的 14 天,后五日全池均涨 +1.22、64% 的天数上涨;过去五日跌的 13 天,后五日均涨 +1.97、77% 上涨。**过去五日收益对未来五日没有预测力,方向甚至相反(均值回归)。** 所以"环境闸是最大改进项"这句话要改成:环境是最大的**解释**变量,但可交易的闸还没有找到定义。落地时不能用过去五日全池收益,要另找有预测力的代理并先验证——决策系统已有的市场区制模块(主参考指数跌破二十日均线且缩量或连续破位判弱势,弱势下三条豁免)是现成候选,桥可以只读复用它的判断而不是自己再算一套。样本仅 27 天,这条检验本身也只能说"过去五日收益这个定义不行",不能说"环境不可预测"。
相关系数补充( 22 个前后数据齐全的交易日):过去五日全池收益与未来五日的相关 − 0.278;过去十日 − 0.547(强反向,即均值回归);昨日上涨家数占比 − 0.015;昨日全池收益 − 0.120。**所有"看过去涨跌"的可交易定义都不预测未来方向,十日尺度甚至强反向。** 结论落地为两条:(一)环境闸不能作为止血项上线,降级为"待找到有预测力的定义再验";(二)候选单上先只做"环境标签"的展示与复盘分组(用事后环境做复盘归因是合法的,用它做交易前置不合法),闸的定义留给复盘闭环跑出读数后再拍。
### 1.9 吸筹清单、决策系统买入信号与桥名单的交叉( 09-01 截面,不带主题限额的全量口径)
- 主榜 520 只的档位构成:强传导 70、弱传导 52、**无传导 398( 77%) **——主榜大头是"有覆盖、在赛道、预期空间不为负"但没有任何传导指向的票,只靠"冷加便宜"排序。
- 吸筹状态分布(决策系统评分):潜在吸筹·低位企稳 255、明确吸筹·量在价先 203、信号不明 109、高位派发 14、无迹象 13。明确或潜在吸筹的 471 只里, 235 只在主榜、55 只在强传导档、73 只在观察档、163 只不采纳。强传导档 70 只里有吸筹数据的 58 只中 54 只处于吸筹状态( 93%)。图谱传导与资金结构两个独立系统指向同一批票。
- 决策系统池 461 只: 180 在主榜、70 在观察档、211 来自其他分组。夜间推理后买入信号 6 只: 3 只在强传导档(排名 19、21、42) 、1 只弱传导、1 只观察档、1 只不采纳。强传导档的买入转化率约 4%( 70 只里 3 只) , 是池整体( 1.3%)的三倍——末端的买入判定与桥的强传导档正相关。
### 1.10 桥六因子口径与开放问题要点(探索代理报告)
- 事件因子 akg_event 只注册、完全不参与 gate 与 score( 设计把它放在第二阶段的负面否决闸, 未做) 。极性表与半衰期仍是草案( §9-5 开放)。
- gate: 有覆盖但预期空间低于负容忍线的票直接判 0, 不降观察档; 风险闸最后一刀。赛道闸开关 ENABLE_TRACK_GATE 仓库默认 0、生产 .env 已开(实况主榜 520 且标"在赛道内") , .env.example 与下游对接说明仍是"未启用"口径。
- score 主榜段:强弱传导按当日 log1p(传导分) 的组内中位数切(相对阈值,逐日漂移);组内分 0.6·z(−热度) + 0.4·z(预期空间),裁到 ±9.9;观察档 0.6·z(传导) + 0.4·z(−热度)。对比器 B 方案(传导分绝对阈值 1.0 切档)在三方案中最好。
- 计划装配:主题限额 5, "无传导"票共享同一个限额桶;每股只留最强一条传导证据。入池:先筛强传导档再截前 POOL_TOP, 决策系统夜间扫描读 Mongo 分组并集; PMS 建仓直接调 /plan 取前 PMS_PLAN_TOP_N。
- 覆盖锚是最大损耗: G1 实测覆盖池 2,391 只里无券商覆盖 1,596 只( 67%);预期空间是 90 天全部研报简单平均,不按机构去重不加权。
- 十条赛道:核聚变、商业航空航天、通信、算力、人工智能、低空经济、脑机接口、氢能、深海科技(无任何图谱锚)、固态电池;四层 layer 未落地;锚质量审计发现宽主题在放人进主榜(宁德时代记成算力),降级剔除未拍板。
- 仍开放的: 9-1 热度翻转从未正式关、9-3 估值 q 分位、9-5 事件极性、9-7 传导缺失日的落库规则未强制、9-9 "还没热"改条件项、传导过期快照的采信规则(当前全量采信只告警)、**板块级异动源缺失( gp_sector_daily 与 gp_market_sentiment 空表, README 明写"要提传导覆盖优先补它,比调任何参数都有用",至今未解决)**、G4 回填与仪表盘未完成、GRU 复活条件( ≥1 年传导 live 史)。
- 桥无任何盘中逻辑,全部日频盘前批处理。
### 1.11 决策系统与 PMS 的消费链路(已知部分;下游缺口清单待探索代理补)
- 桥入池:先筛强传导档再截前 POOL_TOP, 写 Mongo 股票池分组 AKG_PLAN( 含每票 score、tier、upside、theme、plan_date 的上下文) , 写完触发决策系统增量补扫( pool.py push) 。决策系统每晚认知扫描读全部分组并集, 每票产出评述、信号( BUY/WATCH 等)、形态、预测曲线、支撑压力位,落 strategy_daily_results。
- 决策系统对外接口: 策略池、单股详情、风控卖出信号、盘中研判闸( pms_judge 走大模型定性仲裁、pms_exec 纯代码秒回)、盘中告警按票或按持仓查询、日报。盘中告警与资金强度两条流是决策系统侧产出,基座只在盘前当"昨日异动源"消费。
- PMS 建仓不读 Mongo 池,直接调桥 GET /plan 取主榜按分数前 PMS_PLAN_TOP_N 名做下单候选; PMS 有自动闸(提到"无盘中买入信号")与人工裁决。桥入池时首选从 PMS 账本 pms_position 读回持仓(持仓永不出池),说明 PMS 持仓已有回流通道,成交与收益是否回流待核。
- 吸筹评分的消费现状:基座今日页消费它(落在 mkt_daily.metrics.accum, 没有评分日) , 桥零消费。
- 池深不变式: POOL_TOP 必须不低于 PMS_PLAN_TOP_N( 对接说明 §7) 。
下游链路探索代理补充核实( 09-02) :
- PMS 取候选的真实口径:每交易日 08:40 调桥 /plan, 请求 top=300、obs_top=100、theme_cap=999 让上游不裁剪;本地筛选链是剔已持仓、剔黑名单、剔 ST( 判据只有 name 列,上游不剔)、只留档位为"强传导"、再过最低分数、最低源数、最低预期空间、本地每主题限 5 只、按分数降序取前 30( PMS_PLAN_TOP_N=30) 。**PMS 的下单候选百分之百来自强传导档。** 送研判闸的字段只有 price、score、theme、tier、upside、heat、plan_rank、plan_bucket、plan_src、sector 与盘中买入信号——计划行里新增的证据字段可以经这条路进入研判提示。桥若改档位语义, PMS 的档位白名单、最低源数等参数必须同步改。
- 决策系统夜间扫描读 Mongo 股票池时取全部分组并集、丢掉分组编号,它自己分不清哪些票来自桥;盘中白名单另起任务重建。
- 接口层缺口:/plan 无版本戳,同日重算多版时下游分不清拿的是哪一版;桥已实现升降档字段但 PMS 的解析代码不读它; 决策系统的资金强度流当前只留痕不触发任何动作; 夜间结果表会被盘中补扫就地改写( 参考位漂移, PMS 设了 3% 漂移熔断)。
- PMS 不回写上游,是桥主动读 PMS 持仓账本 pms_position; 成交与收益没有回流通道。PMS 自己有动作账本 pms_action_ledger( 含"拒了的后来涨了多少"的判分事实源)与计划快照 pms_plan_snapshot, 是候选单复盘的天然终点。
2026-09-02 16:39:52 +08:00
- 三处同源纪律:坏信号集合 {SELL, AVOID, DROPPED} 在桥 pool.py、决策系统 pms_advisor.py、PMS rule_gate.py 三处写死, 改一处必须三处同改( 09-02 起桥内归一到 card.py, pool.py 从它引用)。
- PMS 运行参数实读( 09-02, 参数表 pms_runtime_param) : PMS_PLAN_TOP_N 运行值为 **100** ( 08-17 由用户改,代码默认 30 已被覆盖) , PMS_AUTONOMY 为 full; PMS_OPEN_AUTONOMY 不在表里、走代码默认 full( 新建仓全自动) , 已拍板改为 propose_only。桥生产旋钮 POOL_TOP=50、POOL_MAX=100、赛道闸开启。**池深不变式"POOL_TOP 不低于 PMS_PLAN_TOP_N"现在不成立**( 50 对 100) : 主榜第 51 到 100 名的强传导票 PMS 能买、却不在夜间分析池,这正是对接说明第 7 节讲过的缺口,参数被改大后又出现了。处置列入第五项入池联动:要么 POOL_TOP 提到 100( 夜扫时长翻倍) , 要么 PMS 候选深度回到 50, 由用户拍板。
2026-09-02 16:04:06 +08:00
### 1.12 平台评价接口的可行性( 09-02 核实)
平台 POST /api/v1/evaluation/tasks 一次调用即可建评价任务:参数 task_name、factor_codes( 列表) 、start_date 与 end_date( 或给 market_statuses 自动取近一年) 、exclude_st、可选指数与行业范围; auto_run 默认真,自动走 B 到 D 环节,结果含 factor_code、forward_period、ic_mean 与 IC 序列( backend/app/api/v1/endpoints/evaluation.py:70-100, schemas/evaluation.py:18-54) 。限制: 六因子的因子表历史只有 07-29 起约五周( 传导不可回填) , 评价样本极短; heat 与 event 可用 build history 回填更长历史, upside 需先做 asof 重建。
## 二、现有选股的改进方案(以主观选股为目标)
### 2.0 一句话结论
传导把"该看哪个环节"定位对了,"在环节里挑还没动的补涨"这一步挑错了。改法是把桥从"打分排序器"改成"候选卡装配器":每天出一份带理由的候选单,规则只有三条硬门槛、一条确认、三条硬风险;公式、档位、六张因子表一律不动,只加字段。评价只认候选单复盘,不认 IC。PMS 的候选来源要等样本外复盘过线才切换。
三条硬门槛是:所在环节当日被传导指向;成员当日已启动(数据日涨幅达到 3%,与热点扫描同口径);有券商覆盖、预期空间不低于负容忍线、非 ST 与退市族。一条确认是:决策系统的吸筹评分为"明确吸筹",且评分不超过三十个交易日。三条硬风险是:决策系统昨夜给出卖出、回避或剔除信号;传导快照日与计划日不符;吸筹评分为"高位派发"。三条门槛全过、无硬风险、确认成立,判为"候选";只差覆盖一项或缺确认,判为"关注";其余"仅展示"并标明未过项。
这条规则的依据是 1.8d:合并样本五日超额 +2.18、十日 +1.94, 是唯一在两个期限都超过一个百分点的规则。它的局限也要写在结论里: 逐日看只在顺风日为正, 8 月 11 日之后的每个扫描日都为负;未做市值中性;一个月样本。所以它先作确认条件上候选单并进复盘,不当长期结论。
### 2.1 诊断:按一个人盘前的六步看,哪一步错了
1. 感知环境: 现在没有这一步。环境是第一解释变量, 但可交易的定义还没找到( 1.8、1.8e)。
2. 看昨天什么在动: 七路异动源里板块路与事件路缺席( 1.5)。而且已启动的成员只能从投影表反推,因为传导视图只展开未动名单。
3. 沿链想下一个受益环节:这一步有信息量,但方向随环境——被指向环节的已动成员上涨周超额 +1.80、下跌周 − 3.40( 1.8)。
4. 在环节里挑公司:方向挑反了。现行只取未动成员,未动在两种环境下都跑输,强传导档 − 2.04 是四档最差( 1.8、1.8b)。已启动的成员因为传导视图不给它证据行,反而落成"无传导档"。
5. 写候选卡:现在的产物是分数不是理由。"冷加便宜"的组内排序在七个交易日的样本里把好票往后排( 1.2, 不能定论) ; 吸筹评分落库无人读( 1.7) ; PMS 的下单候选百分之百来自强传导前三十( 1.11)。
6. 复盘: 从未做过。计划接口无版本戳, 决策系统分不清桥的票, PMS 不回写( 1.11)。
### 2.2 先止血:五项用法改动,公式不动
先说与第四节拍板一的对照。拍板说"先建对比器与归因脚本再拍口径",本方案用一个复盘脚本承接两者:对比器的"多份名单比较"和归因的"分组"都在复盘脚本里,原对比器停用,避免两套工具两种口径。拍板说"强传导档降为关注环节",分两步落地:第一步在计划文本层加"关注环节"一节、候选单单列;第二步 PMS 切换来源,等第五节的结论纪律过线另拍。
**第一项,候选单落快照并带版本戳。** 做什么:计划步骤除 Markdown 外落一份当日 JSON, 含主榜与观察档全部行和每行的全部证据线, 文件头带生成时刻与代码版本。计划接口对主榜与观察档的装配、排序、裁剪逻辑一字不动, 只把判决、理由、缺失、风险、卡内序按代码从当日快照联进每一行, 顶层加生成时刻、代码版本、环境段三个新键; 快照缺失时新增字段为空、其余照旧。为什么: PMS 拿到的是 08:40 实时装配的结果,与 07:10 落盘的可能不同( PMS 的对接文档记过同日两版榜首换人的实例);复盘要有确定的对象,桥必须自己留痕,不能指望决策系统分辨来源。改哪里:桥的计划装配、入池、接口三处;接口改动要重启桥容器才生效。拍板点:环境标签的 08:45 追加任务走统一调度平台还是宿主定时任务;代码版本若读不到(桥镜像没装 git) 用解析仓库文件还是宿主传环境变量。
**第二项,基座只加三张只读视图。** 做什么:已动成员视图(被指向环节的投影成员减去未动名单,只认环节类目标,连接键按投影表的原名)、环节日行情视图(按投影把个股行情聚成环节行,只给原始值)、个股日行情视图(涨幅、主力净额异常值、热度变化三列)。为什么:第一张补上"已启动成员拿不到传导证据"的结构缺口,没有它 1.8d 的组合在候选单上拼不出来;第二张是一个人盘前先看的板块榜;第三张给候选卡供数据日涨幅。改哪里:三张视图放独立的 SQL 文件,用桥的建视图命令以属主账号执行,基座零代码;避开早上六点十分的投影窗。拍板点:历史日的已动名单从当前投影反推带成员前视,桥每日冻结的投影快照若不齐全,缺的日子用当前投影反推并标注,是否接受。
**第三项,候选卡与判决。** 做什么:桥新增一个纯函数模块,输入各证据线,输出判决与四个列表(理由、缺失、风险、卡内序),规则就是 2.0 的三门槛一确认三风险; 候选行的主题与源数从已动成员视图填目标环节, 卡内按判决再按数据日涨幅排, 不算总分; Markdown 加"候选单"与"关注环节"两节, 候选单不受裁剪参数影响。吸筹的评分、状态、评分日三项从决策系统夜间结论表直接读( 桥已有只读连接) , 因为基座落库的版本没有评分日。为什么: 1.8d 的组合之外再加新鲜度、覆盖、坏信号、快照日四道过滤;覆盖暂留为门槛,因为 1.8d 里有覆盖的 +2.40、无覆盖的只有 +0.23;确认线只认明确吸筹,因为潜在吸筹市值中性后转负、十日期限明显弱。改哪里:桥新增模块与离线单测、计划装配、两个旋钮(启动阈值默认 3%、评分日龄默认三十日)。拍板点:两个旋钮保持默认,等样本外读数再拍,不在历史样本上挑参数;赛道闸目前是一道隐性门槛,是否放开、放开后候选总体怎么定。
**第四项,环境标签:桥出标签,只展示与分组。** 做什么:计划接口加环境段,含状态、数据日、八个指数里弱势的个数、来源、降级标记、写入时刻;每张卡加板块环境。来源默认请决策系统加一个只读的日频区制接口,桥经 HTTP 读当日快照; 接口未就绪前若要临时直连决策系统的信号库, 只读一个键、不复用连接, 且这是重建镜像级别的改动。07:10 构建时快照必为空, 08:45 追加一次。取不到即空, 不拦任何票。为什么: 过去五日收益无预测力( 1.8e) ; 决策系统已有带迟滞的区制判断, 复用它避免桥再造一套、且与下游口径一致; 标签有没有预测力由第五节的过线条件验证。拍板点: 接口还是临时直连; 弱势日的定义( 八指数弱势个数达到几个, 或逐票按主参考指数判) 必须在首份周报前锁定写进台账; 板块映射怎么取; PMS 拉计划要不要挪到预热之后;拍板二里"弱环境不加新票"是否正式退役为"只展示"。
**第五项,入池与 PMS 联动分三步。** 第一步本期只加字段:股票池上下文每票加来源标记与卡片摘要;另加一个低优先级切片,让"门槛全过但缺评分"的关注票入池,当晚获得评分,否则复盘缺评分是环状依赖。第二步复盘读数齐后,入池改为"候选优先、再按强传导档补足到池深"。第三步 PMS 解析判决与理由, 按桥给的卡内序排, 切换参数集与回退方式写在附录。为什么: 已启动成员现在不经桥入池, 只有经其他分组进了决策系统池才有评分, 覆盖不稳定; 桥先切入池, 评分才能覆盖候选, PMS 后切。拍板点: 切片本期上线还是请决策系统对缺评分的关注票现算; PMS 新建仓自主档若现值为全自动,是否先改为"只提议"作止血(零代码、一键回退);切换日。
### 2.3 候选卡的证据线(来源与角色)
| 证据线 | 来源 | 角色 | 缺失时的文案 |
|---|---|---|---|
| 环节被指向:目标环节、源数、链符、路径 | 传导视图加已动成员视图 | 门槛 | 无传导,仅展示 |
| 已启动:数据日涨幅 | 个股日行情视图 | 门槛 | 无行情 |
| 环节启动情况:已动比例、涨幅中位、领涨者 | 环节日行情视图(派生判断在桥算) | 展示;比例过高标"已普涨" | 省略 |
| 吸筹:状态、评分、评分日 | 决策系统夜间结论表,桥直读 | 确认,只认明确吸筹;高位派发为硬风险 | 无评分(未入池)、陈旧 N 日 |
| 券商覆盖与预期空间 | 一致预期视图 | 门槛;超过 +100% 标噪音 | 无券商覆盖 |
| 主力净额异常值、热度五日变化 | 个股日行情视图 | 展示 | 基线不足 |
| 事件与公告 | 事件视图 | 展示 | 披露线停粮至 07-20 |
| 决策系统昨夜结论:信号、支撑压力位 | 决策系统夜间结论表 | 展示;坏信号为硬风险 | 无夜间结论 |
| 环境:全市场与板块 | 决策系统区制快照, 08:45 落快照 | 展示与复盘分组 | 空 |
| 判决、理由、缺失、风险、卡内序 | 桥候选卡模块 | 输出 | 理由为空即告警 |
| 版本:生成时刻、代码版本 | 计划装配 | 复盘对账键 | 不允许缺 |
### 2.4 复盘闭环:这个系统唯一的评价方式
评价单位是候选单,不是因子。全部只读。复盘脚本不提供权重参数,只提供分组与期限,防止复盘变成调参或模拟交易。名单级观察收益,不建仓、不计成本、不定仓位。
六份名单并排:生产名单(以 PMS 的计划快照名册为准,即 PMS 实际拿到的候选)、候选单、关注单、环节名单(被指向环节全体成员等权,用来把"定位对"与"选票对"分开)、主榜等权、全池等权。起点价一律取数据日次日收盘。期限五、十、二十日。指标是命中率、相对全池与主榜的超额、跑赢比例。分组包括:环境(事前线上标签一栏、事后五日全池涨跌一栏,事后只做解释)、判决与各证据线、吸筹三态与评分日龄、高位派发、标签是否降级、源数、锚类型、是否在赛道内、市值三分位、"在另一环节仍是未动"的已启动票。
漏斗五段: 候选、夜间定性、PMS 三闸(规则闸、研判闸、人工裁决)、成交、结果。被 PMS 拒绝的票不算反事实交易,只作一份"被拒绝名单"与其他名单同口径算名单级超额。案例级每周九只: 生产名单里最好三只、最差三只、被拒后涨最多三只, 每只一段写清为什么进候选、决策系统怎么判、PMS 有没有动、五日与二十日结果、哪条理由兑现,兑现先机判再人批注。
数据落点:桥的每日计划快照、每周五的复盘报告与明细文件、一份"复盘决定台账"记每条规则改动的日期、内容、依据、预期、复核日期。周报六节:候选单读数、漏斗、分组、案例、台账对表、拍板建议(只列读数与选项,不改任何东西),随周五的四维读数同批发出。与决策系统自己的反思闭环并排不混算:它评自己的判断、基准上证指数;我们评候选单与漏斗、基准覆盖池等权。
样本纪律:分组样本少于一百只或覆盖扫描日少于二十个,只看方向;口径切换的总样本少于六十个计划日只写方向;一个月样本不写成长期结论。
### 2.5 明确不做的
不做历史模拟交易(不建仓、不计成本、不定仓位、不算净值)。不做因子合成、不做 IC 与单调性评价、不提交平台评价任务、不把选股结果列入平台组合成员;六个已注册因子请平台侧在底账跑批与组合成员候选里排除 akg 前缀项,若接口支持则由桥把注册状态改为停用。不改传导公式、档位切分与分数编码。不用过去五日收益做环境闸。桥不在生产路径上自算区制。不把吸筹与传导合成一个分数,候选是逻辑判断不是分值。不做自动调参。不改决策系统以标记桥来源的票,不让 PMS 回写上游,不改 PMS 的研判键。事件否决闸、供应关系公司级传导、神经网络合成因子复活(作废)、任何盘中逻辑与分钟级数据,全部不做。
### 2.6 两周执行顺序
本周( 09-02 至 09-06) : 回炉重建占用队列, 不动生产、不动桥仓库。只做四件只读核实( 桥冻结清单里代码版本是否可读、冻结的投影快照从哪天起齐全、入池两个旋钮的生产现值、PMS 对外端口),核对 09-02 三组实证的原脚本并把起算价与前视注记补进第一节,开发机写候选卡模块、单测、三张视图 SQL、复盘脚本。周五只发四维读数。
09-06 周日重建图谱、09-07 周一判读接投影照旧。
09-08 周二盘后: 桥机建三张视图( 需同意, 避开六点十分) ; 155 拉代码后重启桥容器(需同意,避开七点十分);上线快照、版本戳、候选卡、环境标签、访问日志,入池旋钮保持现状。向平台侧发出 akg 前缀因子不参评的说明。PMS 行为不变。
09-09 至 09-10: 复盘脚本跑全史对账, 只为复现第一节数字证明口径一致, 不产出新参数下的读数; 核对候选数与 PMS 拉取。
09-11 周五:第一份正式周报,只给方向读数与拍板选项。
09-14 起:不动入池顺序、不动 PMS 参数、不动两个旋钮,都按第五节的样本门槛另定日期。可做的:环境标签接口就绪后接入、平台侧排除确认、公告进粮立项。
### 2.7 向下兼容承诺与核对清单( PMS 在生产运行)
承诺: 桥的所有改动默认向下兼容, PMS 不改一行代码也照常运行。确需改 PMS 的部分,在 tradingSystem 仓库协同修改,动之前先重建哨兵断言登记清单,切换前后各留一份计划快照,参数可一键回退。
已核实( tradingSystem/app/services/plan_feed.py) : PMS 解析计划应答按字段名逐项取值,只读顶层的 date、counts、heat_date、market_snapshot_days、theme_cap、encoding, 与每行的 rank、code、name、score、heat、upside、tier 及 evidence 里的 theme、n_sources、moved_ratio; 顶层与行内的未知键一律忽略。新鲜度只看 date。候选筛选只留档位为"强传导"的主榜行, 观察档没有档位、由单独开关控制。PMS 的计划快照表( pms_plan_snapshot, tradingSystem/app/repo/pms_repo.py 第 747 行起)存的是它自己按已知字段重新序列化的名册(代码、名称、名次、分数、档位、热度、桶)与一份元数据,不是原样存整包,桥新增的字段不会进入它的快照,写入无影响。
改动分三类。
一, 纯增量、PMS 零感知: 行内新增判决、理由、缺失、风险、卡内序; 顶层新增生成时刻、代码版本、环境段; Markdown 新增"候选单"与"关注环节"两节( PMS 只读 JSON) ; 桥落快照与访问日志; 基座三张只读视图; 复盘脚本; 股票池上下文加字段( PMS 不读 Mongo 池)。
二, PMS 可见但不触发行为变化:给"已启动但无传导证据行"的票填目标环节与源数——只填空值、不覆盖已有值;这些票的档位仍是"无传导", PMS 的档位白名单把它们挡在候选之外,本地主题限额与最低源数过滤不受影响。档位、分数、排序一律不动。
三,需要 PMS 协同修改(拍板后才做,在 tradingSystem 仓库改):第五项第三步的候选来源切换(按判决取候选、按卡内序排,参数集见附录 B) ; 可选的新建仓自主档改"只提议"(运行时参数,零代码)。
上线当天的核对清单(桥机 155, PMS 与桥同机) : PMS 自带的计划探针脚本拉一次计划, 合格候选数与改前一致; PMS 计划快照当日写入正常; PMS 日志无解析告警;桥访问日志里 08:40 那次请求的应答含新增顶层键。
## 三、现有数据与信号的新应用方向(主观选股的工具箱)
### 3.1 推荐顺序
相对拍板三的顺序,新增"环节启动全景"与"环境标签验证"两项排在公告进粮之前,理由是它们不依赖文本进粮、量级小,请确认。
**第一,候选单复盘闭环。** 回答: 上周的名单值不值得看, PMS 拒掉的后来怎样, 哪条理由兑现。用二十一期计划、因子表、行情表、PMS 快照与账本、决策系统结论表、冻结的投影快照。落桥只读脚本,三到四人日。判收:复现 1.8b 与 1.8d 的数字作对账,周五出六节周报。第一步:桥容器只读探针五张账本表是否可达。
**第二,吸筹确认线。** 回答:候选里主力已在吸的是哪些、评分新不新鲜。用决策系统夜间结论表里的吸筹块,桥已有只读连接。落桥卡片,作证据线不作因子,一人日。判收:卡上有状态、评分、评分日,复盘按状态分组复现 1.8c 的方向。第一步:只读探查该表最新两行的吸筹块。
**第三,环节启动全景。** 回答:今天哪些环节被指向、动到什么程度、谁领涨。用传导台账、投影表、个股与行业行情。落基座两张只读视图加桥"关注环节"一节,一到两人日。判收:视图成员数与传导台账成员数对账,只对真差异要求为零。第一步:基座机只读跑一条对账 SQL。
**第四,环境标签验证。** 回答:按事前线上标签分组后,候选单读数是否不同。用决策系统区制规则与快照、指数日线。落桥只读脚本,两人日。判收:第五节的过线条件。第一步:近似重建 07-10 起的标签,只用于与线上标签的一致率核对与复盘分组。
**第五,公告实时进粮。** 回答:今天有什么新披露。一个人每天要读披露,现在三路语料全停。落基座采集任务,三到五人日。判收:公告最新披露日回到前一交易日、近七日入库大于零、卡片事件线不再显示停粮。第一步:来源与频控拍板,回炉后立项。
**第六,行情侧两条展示线。** 一致预期变动(目标价先按机构去重取中位,压掉 +181% 极值,再看五日与二十日变化;逐机构目标价不在基座库,去重要么基座同步任务加一列、要么桥直读原表,二选一);主力净额异常值(已落库无人读)。各一人日以内,只展示。
**第七,次日盘前预案。** 回答:明早每张卡盯什么价位。用决策系统夜间支撑压力位与基座盘前已落库的昨日异动源产物,桥不直连任何盘中流。两到三人日。前置:先问 PMS 与决策系统会不会读,不读不立项。
### 3.2 候选全表
| 应用 | 回答什么 | 落层 | 量级 | 前置 |
|---|---|---|---|---|
| 候选单复盘闭环 | 名单值不值得看 | 桥只读脚本 | 3~4 人日 | 快照先落 |
| 吸筹确认线 | 谁在吸、评分多新 | 桥卡片 | 1 人日 | 评分只覆盖池内票,切片先拍 |
| 环节启动全景 | 哪个环节在动、谁领涨 | 基座视图加桥 | 1~2 人日 | 避开 06:10 |
| 环境标签验证 | 按事前标签分组读数是否不同 | 桥脚本 | 2 人日 | 来源拍板、弱势日定义先锁定 |
| 公告实时进粮 | 今天有什么新披露 | 基座采集任务 | 3~5 人日 | 回炉后、来源合规 |
| 一致预期变动 | 目标价在升还是降 | 基座同步任务或桥视图 | 1~2 人日 | 去重来源二选一 |
| 主力净额异常 | 净额对自己是否异常 | 卡片展示 | 半人日 | 单日噪音大 |
| 次日盘前预案 | 明早盯什么 | 桥计划段 | 2~3 人日 | 下游确认会读 |
### 3.3 不建议现在做或先解决前置
平台评价闭环整条作废;吸筹因子化改为确认线;事件否决闸等进粮;供应关系公司级传导等传导新用法复盘出方向再评估;热点台账作证据线等板块级异动源空表补上再评估;神经网络合成因子复活作废;盘中热度表、实时分布接口、分钟级数据、决策系统盘中告警流不碰。
## 四、拍板点与拍板记录
**拍板记录( 2026-09-02 对话拍板,三项均选推荐):**
1. 方向:接受传导用法从"补涨轮动"改为"环节定位、启动确认、资金确认";先改用法不改公式——强传导档从"买入候选"降为"关注环节",先建复盘闭环,读数齐了再逐项拍口径改动。
2. 环境闸: 桥出环境标签, PMS 读字段定仓位。**拍板后实证修正( 1.8e) **:用过去涨跌定义的闸没有预测力,标签当前只作展示与复盘分组,不作交易前置;"弱环境不加新票"挂起,是否正式退役见本节新增拍板点。
3. 新应用顺序:平台评价闭环作废;候选单复盘闭环、吸筹确认线排最前,公告进粮在回炉之后立项,行情侧两条展示线同批。
2026-09-02 16:39:52 +08:00
**新增拍板点的拍板记录( 2026-09-02 方案批准后对话拍板,均选推荐):** 08:45 环境追加任务走统一调度平台新建任务;代码版本解析挂载进容器的 .git 文件; 冻结快照缺失的四个计划日( 07-29、08-07、08-10、08-20) 用当前投影反推并标注近似; 两个旋钮保持默认、赛道闸保持开启; 环境标签来源为请决策系统加只读日频接口( 就绪前标签为空) ; 弱势日定义为八个指数里弱势个数达到三个; 环境闸只展示与分组、不动 PMS 定时、"弱环境不加新票"退役; 缺评分的关注票走低优先入池切片。板块映射代定: 主板只出全市场标签, 科创板与创业板出板块标签, 依据是桥没有市值列、逐票主参考指数要等接口返回。补两条: PMS 新建仓自主档现在就改为"只提议"作止血(运行时参数,零代码,一键回退,由用户在 PMS 侧操作);新应用顺序同意把"环节启动全景""环境标签验证"插在公告进粮之前。
**本轮新增拍板点(原清单存档):**
2026-09-02 16:04:06 +08:00
1. 快照与版本: 08:45 环境追加任务走统一调度平台还是宿主定时任务;代码版本读不到时用解析仓库文件还是宿主传环境变量。
2. 视图与历史重建:冻结投影快照缺失的日子用当前投影反推并标注,是否接受。
3. 候选卡两个旋钮(启动阈值 3%、评分日龄三十日)保持默认等样本外读数;赛道闸是否放开。
4. 环境标签: 来源选决策系统加只读接口还是临时直连一个键; 弱势日的定义( 指数弱势个数达几个, 或逐票判) 在首份周报前锁定; 板块映射怎么取; PMS 拉计划是否挪到预热之后;"弱环境不加新票"是否正式退役为只展示。
5. 入池与 PMS: 缺评分的关注票走入池切片还是请决策系统现算; PMS 新建仓自主档若为全自动是否先改"只提议"作止血; PMS 切换日与切换参数集(附录 B) 。PMS 侧任何改动一律在 tradingSystem 仓库协同修改, 动之前先重建哨兵断言登记清单( 2.7)。
6. 新应用顺序里把"环节启动全景""环境标签验证"排在公告进粮之前,是否同意。
## 五、验证(每项改动的输出级判收,命令标明机器)
- 快照与版本戳(桥机 155, 用户 factor) : `docker compose exec -T akg-factor-bridge python run.py plan` 后当日 JSON 存在,主榜与观察档条目数等于计数字段;`curl -s 'localhost:8300/plan?top=1'` 含生成时刻与代码版本且版本不为 unknown; JSON、接口应答、PMS 计划快照三处"主榜与观察档代码集合"一致;构建失败日接口仍可用且应答标明实时装配。
- 三张视图(基座机 178, 用户 tlai, 容器内 psql 只读):视图上线日起每个扫描日,已动成员视图的成员总数与传导台账的成员总数对账,差异分"截断"与"真差异",只对真差异要求为零;环节日行情视图最新日环节数等于投影表;个股日行情视图最新日行数等于行情快照当日个股数。
- 候选卡(桥机 155) : `curl -s 'localhost:8300/plan?top=300& obs_top=100& theme_cap=999'` 每行含判决、理由、缺失、风险、卡内序;候选行全部已启动且明确吸筹、硬风险为空;候选数等于 Markdown 候选单条数;开发机 `python3 test_card.py` 打印 ALL OK; PMS 拉取后候选池数量与改前一致(用 PMS 自带的计划探针脚本核对)。
- 环境标签(桥机 155) : 08:45 后接口的环境段状态为正常且数据日为上一交易日; PMS 08:40 那次拉取看到的状态从桥的访问日志读;来源不可达时为空且候选单不变;线上标签可用率(最近十个交易日非空不少于八天)上线满十个交易日后读。过线条件:按事前线上标签分组,弱势日的候选单与生产名单五日超额和命中率都低于非弱势日、方向稳定、弱势日不少于二十个,三条同时满足才标"已验证"并建议 PMS 启用,否则只展示。
- 复盘脚本(桥机 155) : `docker compose exec -T akg-factor-bridge python plan_review.py --since 2026-07-29 --horizons 5,10,20` 分两步。第一步对账:按第一节补记的口径,强传导档 − 2.04、观察档 +0.52 与 1.8b 对上,偏差不超过 0.05 个百分点;已启动且明确吸筹 +2.18 用冻结投影或 09-06 前导出的投影复现,做不到就放宽为同符号、量级差不超过 0.5 并打印成员差异数。第二步常规口径(次日收盘起算),两组并列写进首份周报。之后每周五产出复盘报告六节齐全,漏斗条数对得上 PMS 账本当周新建仓动作;跨系统联表的代码格式与交易日历匹配率低于九成五就停。
- 入池切换(拍板后,桥机 155) : `docker compose exec -T akg-factor-bridge python run.py push-pool --dry-run` 打印候选数、补足数、两边前三十的交集数;池内含 PMS 当日候选全部代码;池总数不超过池上限;入池的候选次日全部有评分。
- PMS 切换(拍板后,桥机 155) : PMS 计划探针脚本输出等于桥候选单减持仓、黑名单、ST, 主题按环节落桶; 切换前读自主档现值; 切换后 PMS 计划快照名册含判决。
- 平台侧:平台因子列表里六个 akg 项标记为不参评或停用,底账跑批与组合成员候选清单里无 akg 前缀因子。
- 结论纪律: 口径切换按两栏判断——全样本合并( 纯可交易口径) 加事前标签分组; 事前栏不可用时只看合并样本。两栏各要求候选单五日超额为正且跑赢过半、且不劣于生产名单。事后五日全池涨跌分组只用于解释。切换判据只在候选卡上线日之后的计划日上算( 样本外) , 1.8d 只作先验引用。样本纪律同 2.4。
## 附录 B · 实现细节(可不读,执行时照抄)
**快照与接口。** 计划步骤写 data/plan/plan_< 数据日 > .json, 含主榜与观察档全部行与全部证据线, 文件头带 generated_at、plan_version、各数据日; 落 JSON 时不裁剪、不设主题限额, Markdown 仍按默认参数。plan_version 先在 155 只读看 data/frozen/2026-09-01/manifest.json 的 git_rev 是否为 unknown( 桥镜像 python:3.11-slim 未装 git) , 若是则改为解析挂载进来的 .git/HEAD 与 refs 取短哈希,或由宿主任务写环境变量传入。每交易日 08:45 追加一次区制快照进 JSON 的 regime 段(触发走 XXL-JOB 新任务或宿主 crontab `docker compose exec -T akg-factor-bridge python run.py regime-append` )。入池跑完把新进、留池、持仓保留、回收明细追加进同一文件。/plan 的 main 与 observe 仍由现有实时装配产出并按 top、obs_top、theme_cap 裁剪(不改),判决类字段按代码从当日 JSON 联入每行, regime 段只读 08:45 落盘那份; JSON 缺失时新增字段为空并在应答里标 snapshot=missing; 顶层加 generated_at 与 plan_version; api.py 对每次请求记一行访问日志( 时刻、来源地址、regime 状态、generated_at) 。api.py 改动需重启桥容器(常驻 uvicorn 无热加载)。
**三张视图。** 放独立文件 sql/astock_kg_card_views.sql, 不追加进 slot_views( 那份文件用 DROP 再 CREATE 且含 ALTER, 整文件重跑会重建生产在用的四张视图) 。已动成员视图: 被指向环节( 只限 target_type 为 Segment) 的投影成员减去 quiet 名单,连接键 COALESCE(orig_segment_name, segment_name) 等于 target, 同样剔除复核账本判定不属于本环节的成员; 带扫描日、目标环节、源数、链符、快照日。环节日行情视图: 按投影聚成环节行, 只给成员数、已动数与名单、涨幅中位、每成员涨幅与主力净额列表、热度变化中位; "主力净额前两名"与"涨停近似(涨幅超 9.8%) "在桥算。个股日行情视图: trade_date、ts_code、pct_change、net_z、heat_chg。建视图先干跑 `python run.py apply-views --file sql/astock_kg_card_views.sql --dry-run` ,再以属主账号 `-e AKG_PG_USER=<owner> -e AKG_PG_PASSWORD=<pw>` 执行。对账:视图成员总数与 transmission_candidates.members_total 比对,不等的环节按 members_total 口径比(传导扫描的成员集有 cap=200 上限,投影表没有),差异分截断与真差异。
**候选卡模块。** card.py 纯函数加离线单测; config 旋钮 CARD_START_PCT 默认 3、CARD_ACCUM_MAX_AGE 默认 30。吸筹三项从 strategy_daily_results 的 raw_logic_json 里 fund_flow 键抽取 score、state、structure、pos_tag, 评分日取该行 trade_date( 整数 YYYYMMDD, 日龄要换算日期后按 gp_day_data 交易日序列计数);该表会被盘中补扫就地改写且无落库时刻列,写成已知局限并在复盘分组标注。候选行的 evidence.theme 与 n_sources 从已动成员视图填,否则到 PMS 会全落进"无主题"桶。硬风险里的坏信号集合 {SELL, AVOID, DROPPED} 三处同源不改。赛道闸现状:候选卡只在主榜与观察档行上算,复盘从已动成员视图单列"被指向且已启动但不在主榜与观察档"的一组量差异。
**环境标签。** regime.py。默认路线: 决策系统加只读日频接口( 例如 /api/v1/market/regime, 返回状态与八个指数明细, 若拍板则含每票主参考指数) , 桥零依赖。临时路线: 直连决策系统信号 Redis 只读键 bionic:market_regime:snap:< 当日 > ,需 requirements 加 redis、.env 加四项连接配置、重建镜像(属容器重建,需单独同意并避开 07:10) 。快照 08:40 预热、三天有效、T-1 口径;预热若早于上游 QRS 产出会带降级标记并每三十分钟自动重算, JSON 记 qrs_stale 与写入时刻,盘后再读一次记是否自愈;复盘固定用 08:45 版。历史近似重建只含"跌破二十日线加缩量或连续破位"并复现迟滞,不含决策系统 7 月 20 日起对三个指数并联的动量条件,只用于与线上标签的日度一致率核对(差异超一成不用)与复盘分组列;指数日线表 zs_day_data 先核是否在 153 代理库,不在则脚本放 188 只读跑。决策系统建仓仲裁已有弱市闸( 三豁免) , PMS 再按标签缩仓位是否罚两次列拍板。
**入池与 PMS 切换参数集。** pool.py 加 POOL_SOURCE 旋钮(默认现状)与切片旋钮(默认 0) ; POOL_TOP 与 POOL_MAX 的 155 现值先核(仓库默认 20/60, 对接说明记 50/100) ; 池深不变式在对接说明与 config 注释两处相反, 核实后再写。PMS 切换(拍板后):新增 PMS_PLAN_REQUIRE_VERDICT=候选; PMS_PLAN_TIERS 置空; PMS_PLAN_MIN_SOURCES 保持 0; PMS_PLAN_TOP_N 30; THEME_CAP_LOCAL 5( 候选行主题已填目标环节) ; INCLUDE_OBSERVE False; 回退为 REQUIRE_VERDICT 置空、TIERS=强传导。切换前干跑核对候选行主题落桶是否按环节、两边前三十交集数;动 PMS 仓库前先重建它的登记清单; 切换前后各留一份计划快照。PMS 两道不追高闸口径不同(距五日线 6% 会优先挡掉涨幅大的一组;当日涨幅 5% 是执行日盘中口径),候选单读数与成交读数预期背离,漏斗按账本 failed_checks 分开计,是否调闸由 PMS 决定。
**复盘脚本。** plan_review.py 只读;名单六份(生产名单以 pms_plan_snapshot 名册按当日参数重算, 不可还原项列出并注明; pms_action_ledger 的 OPEN 行只作漏斗"进评审"事实源);起点价次日收盘;期限 5、10、20; 分组列见 2.4;候选卡上线日之后吸筹三项一律取当天 07:10 JSON, 上线前读结果表并标"可能含盘中改写";被拒绝名单单列且按 NO_CHASE_MA5 与 NO_CHASE_DAYUP 分开计; PMS 账本目前无人判分( outcome_scored 恒为 0) , 桥不填它的位图。案例九只的兑现机判规则: 传导兑现指目标环节其他成员后五日等权跑赢全池且本票跑赢, 环节涨本票不涨记"定位对选票错";已启动兑现指后五日继续跑赢,次日回落吞掉启动日涨幅记"追高失败";吸筹兑现指后五日主力净额累计为正或评分不降档,转派发记"证伪";标签弱势且候选下跌记"标签对",弱势但上涨记"标签误伤"。输出 data/review/复盘_< 周五 > .md 与 CSV, docs/复盘决定台账.md 记规则改动。