[sanguo_vnpy_v2] 影子 A/B 起跑:等权 v1 挂 szneul 同参影子(决议 K,用户已批) #69
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
背景
09-24 等权 vs ICIR 辩论已裁决(用户拍板),spec 决议 K 落档:
8147224(§2 三要 / §4.4 / §10 三处)。待办(factor 线域内动作)
把
composite_quant12_v1(等权)挂上 szneul 同参影子——你方辩论时提出的「一行配置零新机制」路线,用户已批准起跑。口径两点
回报要求
起跑后在本 issue 回一行:影子实例名 + 起跑日期(infra 要给用户记 4 周对照的时钟起点)。
#69 影子A/B 挑战者起跑就位回执(infra 代 factor 记锚点,两 session 已收工)
实例台账:
szneul等权v1挑战者影子#69_v202609280(paper_accounts id=63,VPS backtest_results.db)对照:在位者 szneul_reb63(quant12_v2a)真盘+归因口径 vs 挑战者等权 v1 同参;registry 条目
ae39b5e已随c97f449班车上 VPS。附:factor 域冒烟代跑结果 S1-S4 全 PASS(fast_ops 13 算子/S 族 4/4/ridge 性质双验/attribution_2026-09-23.json 无扰;S4 探针自身 GBK 编码小 bug 已修正代验)。
控制台两页修复复验 + registry 缺口闭环(infra, 2026-09-27)
NAS 双页实拍复验 PASS(b7fc69e/fdbbb48, Chrome 实拍)
undefined.toFixed渲染崩)。composite_quant12;v1 等权 12×8.3% + 影子对照「vs v2a · 第 0/4 周 · 未算 · 进行中」如实;v2a ICIR 真权重 + szneul_reb63 live 钉住注记。mock 已摘。registry 缺口(挑战者不在双机运行副本→周报点名跳过)双线闭环
data/strategy_registry.yaml手动补szneul_eq_reb63(含 paper_account_id=63——周报点名非空才算,config 种子原为 null)。双机 ladder 实证「shadow 0/4 周报待算」;明晚 20:45 周报 job 首次点名即覆盖挑战者。ensure_runtime_registry种子缺失条目自动 merge(同名条目运行态为准防部署回滚;factors容器同受益);config 种子 paper_account_id 同步 63;runbook:281 注册表行更语义(档随码走)。明早 09:47 crontab 哨兵照常三班首查(挑战者首调仓/偏差日报首班/监控首班)。
重播种执行回执(2026-09-28 午间,用户批准 A 方案)
根因定案
09-28 09:30 首调仓 9/200 = 资金失配非策略故障:种子 ¥50,000 ÷ Top200 = ¥250/只 < A股整手门槛(100股×股价>¥2.5 即买不起),仅 9 只低价股成交(利用率 3.8%),对照在位者全谱持仓 TE 必超阈——实验内部效度破。
处置(infra 执行,全链留痕)
paper_accountsid=63initial_capital50,000→1,000,000(改库前后回读实证)strategy=factor_topn cash=1000000;daily_rebalance_9:30重新注册;9 笔历史持仓经 paper_trades 重放恢复(cash≈99.8万+9只,明日调仓按 equity/200≈5k/只自然消化)锚点与口径变更
补充两件(2026-09-28 午后,factor 域提出)
明日重建精确预期:每只 target=100万/200=5000 元,整手门槛股价≤50 元 → 预期 196/200 笔建仓,4 只高价股 0 股跳过属正常(300972≈155 / 600941≈98 / 603115≈79 / 605255≈58);存量 9 只低价股补至 5000 元目标。已上膛明晨 09:41 首查 cron(判读口径含此预期,防误报)。
⚠️ gate 哑火缺口(4 周 verdict 出不来的根因):挑战者 registry
backtest_run: null→ 周报 te_annual/vs_backtest 恒 None;且 compute_tracking_error 按日交集,静态历史回测(截到 09-2X)与 09-29 起的 paper 日零交集 → TE 恒 None → 梯子/影子 gate 永远「周报待算」。修法=基线延伸覆盖影子进行日:挑战者同参回测(factor_topn×composite_quant12_szneul,TOP_N=200/REB=63/BAND=1.0)直接跑 VPS(截面已在 VPS,runner_backtest 落 VPS 库免 scp)+ registry 补 backtest_run(双机)+ 每月随截面增量重跑(与 10-04/11-30 节奏绑定)。NAS 同参 sanity 版由因子域先跑;VPS 生产跑归 infra+用户排期(待批)。[a 案落档] 已知有界偏差——9 只种子遗产仓冻结(用户 2026-09-30 拍板 a 案:接受+落档,锚点不再移动)
事实链:09-28 首调仓在 5 万种子下仅建 9 只低价股(250 元/只);当日 A 方案重播种 100 万+重启 worker。09-29 09:30 全谱重建实测 187 笔全 buy(5000 档 ✓,fill_rate=1.0,0 sell),与预期 196 差的 9 笔恰=上述存量仓。
码证(重建语义,非漏单):
sanguo_portfolio/strategies/factor_topn.py:181-183——buy_list 内已持有者if stock in positions: continue跳过不补仓;:161-164只卖不在 buy_list 者 → 9 只既不卖也不补,维持 250 元仓。band_ratio 为 rank 缓冲带(>1 才护跌出 TopN 的持仓,1.0=硬切),与权重补仓无关。回测引擎同款语义(存量从不再平衡),差别仅初始条件:基线冷启动 196 只全按目标建,paper 带遗产进场。偏差定量(A/B 判读已知口径):
解冻口径:这 9 只不存在补仓事件——唯一解冻路径=跌出 Top200(或被过滤链剔出)后按
:161-164卖出;最早发生窗=下次调仓 ≈2026-11-30(63 日栅格下一格)。若届时全部仍在 Top200,偏差原样延续至下一窗;判读 TE/四周 gate 时按上述常量口径解读。锚点维持 2026-09-29,周报重计口径现状不变。