开盘卖出执行质量 & 出场方式对比
全账户 · 2026-03 → 2026-08-17 · 550 笔开盘卖单 / 25 个周一 OPG 批次 / $17.3M 名义 · 回测对比在 asof0814(2023-04-20 → 2026-08-14, $5M, 1x)· 生成 2026-08-17
三句话结论:
① 开盘竞价立刻卖出没有执行问题——历史 190 组 OPG 卖单对 9:28 盘前 mark 的中位损耗只有 −4.8bp(SPY 调整后),累计"蒸发" ≈ $0(+$5.5k / $17.3M),参与率再高也没有把价格砸下去的证据。
② 你朋友 PR(rvol0<0.8 无量票 day1 15:30 提前卖)是真改进——我在最新 asof0814 数据上独立复现:10f Calmar 10.55→12.28(+16%)、11f 11.75→12.99(+11%),MaxDD 双降,建议采纳。
③ "周一晚 5 分钟卖"反而更差——交易层平均能多拿 +$4.3 万,但组合层 Calmar 10.55→9.41(−11%)、MaxDD 恶化 1pp:多赚的小钱被"周一继续崩的日子"的重尾亏回去。开盘竞价即卖是正确的风险纪律。
1. 今晨(8/17)你看到的"202→192"是什么
- 今晨三账户在 09:30/09:31 通过 OPG 开盘竞价单卖出 8 只票(4081 名义 ~$1.67M)——三账户同票成交价一分不差(RIOT 全 18.91、CORZ 全 20.22)正是 OPG 的正常签名:所有人拿同一个官方竞价印花价,价格记录真实。
- 成交价 vs 周五收盘:合计只有 −$14.2k(ONT −7.0% 是大头,SNDK 反而 +3.6%);今晨已实现 PnL(vs 入场)= −$49.3k。
- 9:28 账面 → 竞价成交之间的精确分解(盘前 mark 有多虚高)待数据商今晚放出 8/17 分钟数据后补——但从 25 个历史批次统计看(§2),这个环节的典型损耗只有个位数 bp,~10 万的账面回落主要是持仓本身在跌 + 已实现亏损入账,不是卖出执行送掉的。
2. 开盘竞价(OPG)执行质量 — 历史全量统计
| 指标 | 中位 | 均值 | p10 | p90 | 解读 |
| 竞价成交 vs 9:28 盘前 mark(SPY 调整) | −4.8bp | −12.3bp | −99bp | +73bp | 用户视角的"蒸发"≈0 |
| 竞价成交 vs 9:24(我们挂单前) | −24.3bp | −41.2bp | −175bp | +83bp | 挂单后 9:25-9:30 有小幅不利漂移 |
| 卖出后 15 分钟反弹 | +9.5bp | +11.0bp | −255bp | +301bp | 没有"卖完就弹回"的自我冲击签名 |
| 隔夜/周末 gap(昨收→9:24) | +61bp | +66bp | −230bp | +352bp | 大波动发生在盘前,与执行无关 |
- 参与率无剂量反应:我们合计卖量占开盘一分钟成交量 <10% / 10-25% / 25-50% / >50% 各桶的蒸发中位数无单调恶化——即使把三账户十几万股塞进竞价盘,也没有可测量的自我砸价。
- 价格记录可信:竞价成交价与官方 09:30 bar 开盘价中位偏差 6.3bp(65% 在 ±20bp 内,余差主要是分钟线复权 vs 原始成交价的口径差);已剔除 2 行 CRWD 分钟线错标度数据。
- 周中 Adaptive 卖出对照(1,247 笔,floor=bid 限价):成交价 vs 执行分钟中价中位 0.0bp——周中执行同样干净。
- 交易层反事实:历史所有 OPG 单若等 5 分钟卖 = +$42.8k、等 30 分钟 = +$38.2k、拿到收盘 = +$54.2k(中位 +10~38bp、胜率 53-56%)——平均有小便宜,但看下一节组合层的代价。
3. 出场方式对比回测(asof0814,同引擎同参数,只改出场)
| 变体 | 10f 年化% | 10f MaxDD% | 10f Calmar | 11f Calmar | 10f 2026回撤 | 判定 |
| V0 现行:2天到期 + 周一 09:30 竞价 | 115.3 | 10.93 | 10.55 | 11.75 | 8.57 | 基准 |
| V1 朋友 PR:rvol0<0.8 → day1 15:30 | 119.7 | 9.75 | 12.28 (+16%) | 12.99 (+11%) | 7.94 | ✅ 全面改善,建议采纳 |
| V2 PR 参考口径:day1 收盘 | 120.8 | 9.47 | 12.76 | 12.96 | 8.19 | 上限参考(MOC 滑点难拿) |
| V3 周一出场晚 5 分钟(09:35) | 112.3 | 11.94 | 9.41 (−11%) | 11.06 | 8.01 | ❌ 更差 |
| V4 周一出场晚 30 分钟(10:00) | 118.9 | 11.88 | 10.01 (−5%) | 11.46 | 10.59 | ❌ 年化升但回撤更差 |
| V5 PR + 晚5分钟 组合 | 115.0 | 10.79 | 10.66 | 12.73 | 8.01 | 晚5分钟把 PR 的增益拖掉 |
为什么交易层"晚 5 分钟平均多赚"而组合层更差?等待的收益是常态小赢(中位 +10bp),代价是周一恐慌日的重尾(p10 −143bp)——那些天所有持仓一起跌,5 分钟的敞口延长恰好落在组合最脆弱的时刻,MaxDD 从 10.93% 恶化到 11.94%。竞价即卖等于把周末风险在第一时间了结。
你朋友 PR 的复现细节:我用 dev_lrh_v2 分支同款机制(只改 signal_table 出场字段、不改引擎、同式扣滑点)在更新 4 个交易日的 asof0814 上重算:10f gated 216 笔(11%),结果与其 asof0810 报告(Calmar 12.31/12.80)一致;11f 同向。其 6 档杠杆×因子集全过、阈值 0.7-0.9 平台稳固的结论见分支报告 rvol0_early_exit_job/README.md。
4. 机制备忘(为什么三账户同价 / 什么单型)
- 周一/跨假期到期 → 09:25-09:28 盘前预挂
MarketOrder + tif=OPG → 开盘竞价成交(无限价保护,拿官方竞价价);周中到期 → IBKR Adaptive Limit(floor=实时 bid,Patient,180s 超时重挂 → 产生 max_hold_partial 分段)。
- 回测口径与实盘对齐:周一出场 = 09:30 bar 开盘价(≈OPG 竞价价)+ 5bp 单边滑点——竞价成本两边同吃,live vs bt 不会因此漂移。
5. 建议
- 采纳朋友的 rvol0 早退 PR(day1 15:30 生产口径)——独立复现通过,与现有 atr 因子互补。
- 不要给周一开盘卖加延迟——竞价即卖是风控正确的做法;执行层无损耗证据。
- 数据侧遗留:分钟缓存个别票错标度(CRWD 两处已剔)需修;8/17 盘前分解待今晚数据补充。
产物与复现:claude_explore/open_exit_quality_zlj/(opg_stats_zlj.py · precompute_compare_zlj.py · run_compare_zlj.py · opg_lots.csv · compare_summary_zlj.csv · logs/);PR 原始报告:origin/dev_lrh_v2:rvol0_early_exit_job/README.md