11 KiB
量化因子 · G1 实测结论与待办(2026-07-26)
第一批(桥侧口径修复 + 插槽视图 v2)已实机验证通过,代码已入库,不在此重复。 本文只记两件事:G1 实测读出的事实(后续决策的依据)、尚未完成的第二三批。 07-27 增补:改1 交付后做了阶段方案交叉评审,结论并入二三批与新增的第五节(待回传读数)。
一、G1 实测(2026-07-24 截面,实机)
覆盖池 2391 只——设计文档写的 1675 已过时,316 个池在持续涌现收录。
1. 门槛② 的损耗几乎全部来自"没有券商覆盖",不是估值 U 2391 → 有 upside 795(33%)→ upside≥0 剩 755。 无券商覆盖挡掉 1596 只(67%);θ_v=0 只挡掉 40 只(有覆盖股的 5%)。 ⇒ §9-3 的 q 必须显著上调,否则估值那一刀形同虚设。 ⇒ §9-4(无覆盖股怎么办)不是边角料,是三分之二的池。
2. 三项正交 corr(z_H, z_V) = −0.033;z_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,不需重抽。
- ✅(07-27 已交付已提交)
graph_store.topic_context的 Cypher 加ORDER BY,cap 30 → 200。 实际落法:q_membersORDER BY ts_code, name(升序 NULL 后置 → 上市成员优先入 cap)、 q_drives 同类补序。验证读数未回(见五-1)。 ⚠️ 传导数值口径自此有断点(成员抽样确定化),仪表盘回看时注意。 - ✅(07-27 已交付待实机验证)
transmission.scan:去quiet[:12]全量落库 (核实:旁批只消费聚合 pricing 不吃明细行,"喂前12"之说不成立,无需保留);mkt_trade_date写值 + 新鲜度/完整度双告警(快照非扫描日、stock 行数 < MIN_MKT_STOCK_ROWS=1000,均只告警不中止);已拍板并落地:调用点显式 cap=1000 + 大主题闸 MAX_TARGET_MEMBERS=600(超者跳过并 log)。 pricing 语义随之升级为全体未动成员统计(原为前 12 样本)。 核实:scan 内并无 members_total≥30 之类代码闸(读数清单那条是读数请求)。 hotspot._latest_mkt/_movers_set加trade_date参数(现恒取最新快照)。 语义 = scan 起点解析一次 D 后全程穿透(顺带修 17:30 快照落在扫描中途的竞态); 参数化 ≠ 打开传导历史重扫,§2.2 铁律不动。sync_consensus加asof参数(§9-6 甲案,约 5 行) ★ 必须同时补report_date <= ref上界,否则历史回填是前视。 实现时核对consensus_daily唯一键含 asof 日期(否则回填互相覆盖); 甲案的回填驱动脚本(逐日 asof 循环、幂等)是另一项,不算在"5 行"里。- ✅更正:视图 v3 不需要——第一批 apply-views 已一并落了表列 ALTER 与视图 曝列(sql 第 9 / 72 行:mkt_trade_date、n_quiet_stored),已实机验证过。 链条真缺口只剩桥侧采信规则(三批-5)。
已定:新鲜度不中止扫描,只告警 + 记 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 / 权重 / 票数三张读数即可。
- 无券商覆盖的 1596 只(§9-4)——升为主决策:门槛②实测语义 ≈ "有覆盖 ∧ upside≥0", 覆盖挡 67%、估值只挡有覆盖股的 5%,q 只作用于剩下三分之一。 9-4 不定,门槛②的价值主张站不住。
- θ_v 的 q(§9-3)——9-4 定了之后按重跑读数定,次级旋钮。
- 传导组内部怎么排——当前按连续 z_T,两段式按"冷+便宜"(档位 + tiebreak; §9-8/9-9 实质并入此题,成一道结构选择题)。07-24 读数 top20 重合 16/20 仅供方向感, 按前置重测后再拍。
- 赛道门槛 C 的数据源——
industry_pools成员级无 segment/layer,图谱在 Neo4j。 建议:claims 口径先用于覆盖体检,基座投影视图(第五/六插槽)作 S1 正解。 - 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 汇总)
- ✅(07-27 判收通过) 改1 验证:源码在容器生效(cap200 + ORDER BY×3)+
topic_context 8 大环节双跑逐位一致(正是改1 所修之层;movers 集合为确定性 SQL)。
更正:第三层 scan 双跑实为空转比较——07-27 无 hotspot 台账 → 空扫描落库 0 行,
list_candidates()回落到最新日(07-24)静态行,比较必然一致; 07-24 台账未被触碰(84 行为周五 beat 原始产出,旁批完好)。 真端到端双跑并入改2 验证。 - ✅(07-27 已回) mkt_daily 分 kind 深度:concept/industry 均 07-10~07-23 共 7 天, stock 07-10~07-24 共 9 天。 结论①:快照史与 live 传导史(07-11 起)同龄,§7"近似区间前推"没有空间, 该讨论正式关闭——传导只 live 定案;改3 的价值回归纯 live 正确性。 结论②(新异常):07-24 有 stock 快照而 concept/industry 止于 07-23,kind 间 新鲜度错位实锤(17:30 快照任务疑似部分失败,查当日 sync 日志);改3 的 mkt_trade_date 告警须覆盖"非 stock kind 落后"情形。
- ✅(07-27 已回) 环节成员数:Segment 9663 组 max 217、>200 仅 1 组(整机制造, 实测已被 cap 截到 200);Concept 31993 组 max 4010、>200 有 10 组——巨组多为 资质类垃圾标签(高新技术企业 4010 / 小型微利企业 843 / 联营企业 298),但真实 热门题材也超(人工智能 449 / 新能源 380)。⇒ 改2 拍板:moved_ratio / quiet 改 不截断聚合口径(推荐)或再提 cap;顺带把资质类概念挡在传导主题源之外。
- ✅(07-27 已迁) cron 曾装错机器(基座机 tlai4090),已清零并改装到
factor@factorevaluation(40 18 * * 1-5,build all daily 自动带 freeze)。
data/frozen/尚无 = freeze 从未跑过 ⇒ 今晚 18:40 首跑,明早验data/frozen/2026-07-27/+data/cron_build.log(若报 service not running, exec 换run --rm)。 - ✅(07-27 已回) 两项判收读数: ①probe 全输出已回:universe 316 主题 / 2391;热度覆盖 100%(2389/2391); 事件 13~15%;传导近窗并集 6%。新发现:probe 的 upside 分节走基座内部 mkt_daily 现价路径,算出"可算 0/2391"且"有现价仅 727/2391"——是 probe 侧 连接伪象或 mkt_daily stock 快照本身只存部分股票(待五-7 定位);与桥的 upside (gp_day_data 现价,795 行正常落库)不同源,不影响因子。 赛道覆盖初判:核聚变系(可控核聚变16/核聚变15/聚变10/托卡马克装置29,有重叠)、 商业航天 69、低空经济 95、脑机接口 20、6G 21、氢能 53 全部非空,"空赛道" 担忧初步解除;但主题名碎片化严重(核聚变 4 种写法、AI算力 2 种、"无"41 / "报告分部"3 等垃圾主题)= G2 映射 yml 的实际工作面。 ②gp_day_data 按年:1997~2006 稀疏(34~119 天/年),2007 起完整(≈250 天/年) ⇒ 可信起点定为 2007-01-01;§6.2 ⚠️ 关闭,§7"理论可回填到 2006"修正为 2007。
- 二批全落地后:重跑 probe 的 corr / 权重 / 票数三张读数(三批的拍板依据)
- ✅(07-27 已回) mkt_daily stock 按日行数:52/52/131/81/1674/1674/1675/1675/727 (07-10~07-24,缺 07-16、07-21)。四个结论: ① stock 快照 = 池内快照非全市场(1674≈当时池规模)——probe"有现价 727" 即 07-24 部分写入所致,五-5① 伪象定位完毕; ② 07-24 的 17:30 sync 中途挂(stock 只写 727/2391,concept/industry 0 行) ⇒ 当日传导在残缺行情上算出,07-24 记为受污染日; ③ 快照史 flaky:07-16、07-21 整日缺,07-10~15 仅 52~131 行 ⇒ 传导 live 完好起点 = 07-17(完好日仅 17/20/22/23 四天); 快照完整性建议纳入周检/巡检(非二批)。 ④ 今晚 17:30 盯行数:≈2391=健康且池源同步;≈1675=sync 用滞后池源(新问题); 再挂=马上查日志。07-24 缺口的 sync 日志仍待查。