akg-factor-bridge/docs/G1实测与待办_2026-07-26.md

104 lines
6.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 量化因子 · G1 实测结论与待办2026-07-26
> 第一批(桥侧口径修复 + 插槽视图 v2已实机验证通过代码已入库不在此重复。
> 本文只记两件事G1 实测读出的事实(后续决策的依据)、尚未完成的第二三批。
> **07-27 增补**改1 交付后做了阶段方案交叉评审,结论并入二三批与新增的第五节(待回传读数)。
## 一、G1 实测2026-07-24 截面,实机)
**覆盖池 2391 只**——设计文档写的 1675 已过时316 个池在持续涌现收录。
**1. 门槛② 的损耗几乎全部来自"没有券商覆盖",不是估值**
U 2391 → 有 upside 79533%)→ upside≥0 剩 755。
无券商覆盖挡掉 **1596 只67%**θ_v=0 只挡掉 **40 只(有覆盖股的 5%**
⇒ §9-3 的 q 必须显著上调,否则估值那一刀形同虚设。
⇒ §9-4无覆盖股怎么办不是边角料是三分之二的池。
**2. 三项正交**
corr(z_H, z_V) = 0.033z_T 与另两项均 ≈ 0.01。
⇒ 评审中"三项加权实为两项"的担心**被证伪**,三项各带独立信息。
**3. 0.5/0.3/0.2 是严格的"传导优先",不是加权混合**
w_T=0.50 → top10 **10/10**、top20 **20/20**、top30 **30/30**、top50 **39/39**
39 只传导票精确占满前 39 名0.3/0.2 只在组内排序、跨组不起作用。
实测要真混合需 w_T ≈ 0.20(此时 top20 只有 6/20 是传导票)。
**4. 传导票 39 只P 的 5.2%),组合可行性没问题**
top20 可以整篮子都是传导票,不存在"只剩 1~3 只"的塌缩。
**5. 硬伤1 真实 binding**
当日 12 个候选里 **6 个** quiet 存满 12 条。
## 二、第二批 · 基座四处 + 桥侧一尾(施工中)
不触碰 claims/documents不需 replay不需重抽。
1. ✅(07-27 已交付已提交) `graph_store.topic_context` 的 Cypher 加 `ORDER BY`cap 30 → 200。
实际落法q_members `ORDER BY ts_code, name`(升序 NULL 后置 → 上市成员优先入 cap
q_drives 同类补序。**验证读数未回**(见五-1
⚠️ 传导数值口径自此有断点(成员抽样确定化),仪表盘回看时注意。
2. `transmission.scan` 去掉 `quiet[:12]`(那 12 是给旁批用的,却把因子锁在 144 行/日;
**落库存全量,旁批仍只喂前 12**);落库带上 `mkt_trade_date`
⚠️ cap200 改变 members_total / moved_ratio 的分母语义scan 内用到成员数的阈值
(如 members_total≥30此时逐个过一遍。
3. `hotspot._latest_mkt` / `_movers_set``trade_date` 参数(现恒取最新快照)。
语义 = scan 起点解析一次 D 后全程穿透(顺带修 17:30 快照落在扫描中途的竞态);
**参数化 ≠ 打开传导历史重扫**§2.2 铁律不动。
4. `sync_consensus``asof` 参数§9-6 甲案,约 5 行)
**必须同时补 `report_date <= ref` 上界**,否则历史回填是前视。
实现时核对 `consensus_daily` 唯一键含 asof 日期(否则回填互相覆盖);
甲案的**回填驱动脚本**(逐日 asof 循环、幂等)是另一项,不算在"5 行"里。
5. (桥侧收尾)`v_factor_transmission` v3 曝 `mkt_trade_date`
(桥仓库 sql/astock_kg_slot_views.sql + apply-views只增列不改名
——没有这截,"桥自行判断采信"无从实现。
**已定**:新鲜度不中止扫描,只告警 + 记 `mkt_trade_date`
**并行建议07-27唯一逐日流失项**:二三批都可以晚做,快照每晚一天永久少一天——
① freeze.py 确认进每日调度;② 基座 `industry_pools_history`(池成员日快照)尽早开积累
(覆盖池 1675→2391 的膨胀速度加重此项);③ 全量 quiet 的 live 传导史从改2上线日才开始
§10 GRU 的"≥1 年"计时器实质从那天起算 ⇒ **改2 宜紧不宜慢**
## 三、第三批 · 待决策
**前置07-27 评审加三批一律用二批落地后的重跑读数拍板07-24 读数作废。**
去 quiet[:12] + cap200 会改变 z_T 的生成分布:传导覆盖从 83 行/日上一个量级、
"池内 95% 为 0"的稀疏前提§3.4 例外处理的依据、39 票、16/20 重合全部要重测
——重跑 probe 的 corr / 权重 / 票数三张读数即可。
1. **无券商覆盖的 1596 只§9-4——升为主决策**:门槛②实测语义 ≈ "有覆盖 ∧ upside≥0"
覆盖挡 67%、估值只挡有覆盖股的 5%q 只作用于剩下三分之一。
9-4 不定,门槛②的价值主张站不住。
2. **θ_v 的 q§9-3**——9-4 定了之后按重跑读数定,次级旋钮。
3. **传导组内部怎么排**——当前按连续 z_T两段式按"冷+便宜"(档位 + tiebreak
§9-8/9-9 实质并入此题成一道结构选择题。07-24 读数 top20 重合 16/20 仅供方向感,
按前置重测后再拍。
4. **赛道门槛 C 的数据源**——`industry_pools` 成员级无 segment/layer图谱在 Neo4j。
建议claims 口径先用于覆盖体检,基座投影视图(第五/六插槽)作 S1 正解。
5. **mkt_trade_date 采信规则07-27 评审加)**——stale 时剔除 / 打折 / 只标记?
与 §9-7 A 案有一处会打架:若桥把 stale 日传导整体剔掉 → 当日 z_T std=0 → 按 §3.4
整列置 0 → 恰违反 §10"不得静默置零"判收。⇒ **A 案"有数据才出行"的判据升级为
"有采信规则放行的数据才出行"**,随本条一并拍。
**§9 对账07-27**9-1 热度翻转从未正式关掉零成本建议即关9-6 已定甲案(关);
9-7 建议现在拍 A其形态由上面第 5 条决定9-2 赛道清单仍是 G2 阻塞项9-5 延后 S2 不变。
## 四、下一步建议
`akg_gate`0/1全池出行`akg_score` 一起注册——否则平台的 IC/分层只看得到
池内排序,完全看不到两道门槛的价值,而门槛才是这套逻辑的主体。
07-27 补gate 先注册可兼当"覆盖溢价"仪表(帮 9-4 拍板),但 factor_metadata 描述必须
写明当前语义 = 覆盖 ∧ upside≥0 ∧ C并预期 9-4 决策后重定义——否则平台 IC 史读到的
主要是"有无券商覆盖"。**G3 开工前置确认从 §9-8 一项扩为 §9-3 / 9-4 / 9-8 三项。**
## 五、待回传读数清单07-27 汇总)
1. 改1 验证:同一天连跑两次扫描,各主题 moved_ratio 逐位相同
2. `SELECT kind, min(trade_date), max(trade_date), count(DISTINCT trade_date)
FROM mkt_daily GROUP BY kind`(老项一直没回;决定 §7 近似区间讨论的边界)
3. 环节成员数分布max 与 P95——cap200 会不会被大环节击穿
4. freeze.py 是否已进每日调度
5. G1 判收项①factor_coverage_probe 补跑与③gp_day_data 起始日复核)的读数
——做了没记,还是没做?
6. 二批全落地后:重跑 probe 的 corr / 权重 / 票数三张读数(三批的拍板依据)