一张大单落下来,金价会怎么动
七月我做过一次回测,结果对不上,我当时不知道为什么。这篇是我回头把这一年黄金期货逐笔数据从头看一遍的记录。看完发现其实是两件事:大单有两种,一种自己把价格推到位,之后就不动了;另一种撞上一堵墙,当时几乎不动,后面慢慢走。后面这种扣掉成本还剩一点,但主要在后半年。
起因是七月那次回测
KTV 终端默认有一个「聚合大单」信号。七月我拿一年的黄金期货逐笔数据回测过它:一年触发大约 10 万次,毛收益 −0.19 tick,等于什么都没有。
换一条规则,「单笔成交记录 ≥60 手」,同样的数据,全年 +13 万美元,块置换检验(把整天的方向随机翻转再重跑,看真实结果能排多前;做法在后面)p = 0.010。
同一份数据,两种数「大单」的办法,一个有,一个没有。我一开始以为是聚合的口径太宽。后来发现不是宽窄的问题,是数的东西根本不一样。这个后面再说。
先看数据长什么样
数据是 Databento 的 GLBX.MDP3,也就是 CME 的原始行情回放,schema 是 MBP-1:每条成交都带成交那一刻的最优买卖价和挂量。区间 2025-05-20 → 2026-05-19,312 个交易日,每天取成交量最大的那个单腿 GC 合约。一共 3,160 万笔成交,4,775 万手;把同一张主动单的记录合并之后是 2,782 万张。金价这一年从大约 3,275 涨到 5,551 美元。
两个我实际查过的细节:成交记录带的盘口和前一条消息 100% 一样,所以记的是成交前的簿;side = B 的成交价高于中价的比例是 99.6%,方向没标反。另外价差 ≤0 或 >10 tick 的记录我扔掉了,交叉盘口只占 0.001%,但不扔会算出几百 tick 的假利润。
第一眼看到三件事。
一是顶档很薄。最优价上挂量的中位数只有 2 手,2026 年以后只剩 1 手。单笔成交中位 1 手,99.9 分位也只有 36 手。所以 20 手在这里就算大单了:它们只占主动单的 0.38%,却贡献 7.7% 的成交量;≥40 手占 0.088%,每天大约 79 张,贡献 3.5%。一张 20 手的单子通常要打穿 4–10 个价位。所以「大单」在这里同时是两件事:它是一个信息事件,也是一次机械的吃簿。把这两件事分开,是我这次主要在做的。
二是手数分布的尾巴是幂律,不过比股票薄很多。
三是后半年和前半年不是一个状态。2026 年 2–3 月金价冲高,波动率和价差都翻了一倍。具体数字放在「不稳的地方」那节,和图 7 一起。后面每个分半的结果,都得先想着这一点。
顺手记一个后面要用的:≥20 手里 45% 是整数手数,光 20 手这一档就有 23,844 张。
统计口径一句话:所有均值都先在每个交易日内平均,再对 312 个日均值算均值和 t;回归按日聚类;区间用按日重抽的自助法(500 次)。这样算比逐笔算保守很多,后面的 t 都是这个口径。详细的样本数字在文末。
先把成交记录拼回一张单
我最先做的事,是按原始成交记录画「即时冲击 vs 手数」。结果大手数反而往下走:20–29 手 3.1 tick,100–149 手 2.2 tick,300 手以上 1.7 tick。可 15 分钟冲击又很大(40–49 手 15.1、100–149 手 17.1 tick,标准误 4–7)。我以为是代码写错了。
后来发现是 CME 的报法。一张主动单在每个价位单独报一条。60 手打穿三个价位,就是三条记录,ts_event 一样,方向也一样。我把这些合并成一个「扫单」,手数相加,顺便记下打穿了几层。7.7% 的主动单打穿了不止一个价位;≥20 手里接近 90%。
冲击怎么量:按主动方向定号的中价变化,单位 tick(GC 一个 tick = 0.1 美元 = 每手 10 美元);时距从 0+(扫单结束后市场看到的第一个报价)到 1 小时。
合并之后曲线就正常了。即时冲击随手数单调上升:1 手 0.95 tick,40–49 手 7.5,100–149 手 14.6,300 手以上 22.6;每档按日 t 都 ≥ 8.9,大多在 20 以上。
≥20 手的扫单,冲击差不多全是永久的。15 分钟冲击除以即时冲击在 0.9–1.2 之间(30–39 手的 0.58 和 40–49 手的 1.58 看起来是相邻桶的噪声,合并后约 0.9)。一小时内基本不回撤。也就是说,扫单结束时那个报价,平均看已经把这张单的信息吃完了。
小单反而事后还在涨:1 手从 0.95 到 1.5,2 手从 1.1 到 1.6。我不觉得是 1 手自己带信息,更像订单流自相关,一笔买后面更容易跟着买(Bouchaud 等 2018 叫它订单拆分)。完整数表(表 2)在文末。
冲击按根号长,单位是波动率
把每个手数桶的即时冲击均值对桶内平均手数做对数—对数回归。扫单口径全部 15 个桶:β = 0.59,按日自助 95% 区间 0.57–0.61。只用 ≥20 手的 10 个桶是 0.52 [0.46, 0.58];时距换成 1 秒、1 分钟、15 分钟,β 是 0.52、0.54、0.55。
这个在股票市场早有人发现(Lillo 等 2003),Tóth 等 (2011) 在元订单层面叫它平方根律。我这里是单张主动单,看起来也差不多。直觉上不难理解:顶档只有 2 手,越深越厚,吃 Q 手要推的距离大约 ∝ √Q。
然后是我担心的事。后半年波动率翻倍,按 tick 算,40–59 手的即时冲击前半年 5.2、后半年 10.8;100 手以上 9.5 对 23.5。所有按 tick 算的数后半年都差不多翻倍。把即时冲击除以当天的日内波动 σday(当天 1 分钟中价变化的平方和再开方,单位 tick)之后,40–59 手前后半年是 1.82% 对 1.65%,100 手以上是 3.41% 对 3.26%,差别在标准误里。手数那边也同样除以当天成交量 Vday。
全样本斜率 0.55(区间 0.535–0.566),前后半年两条线叠在一起。冲击的单位看起来是波动率,不是 tick。同一张单放到波动率翻倍的市场里,推的 tick 数翻倍,推的 σ 数不变。顺带一句:用 tick 或美元定的「大单门槛」,换个波动率区间就不准了。
我还做了个事件级回归(表 4 在文末)。只放手数,log 手数每加一个单位(大约 2.7 倍)即时冲击多 4.1 tick;加上手数/顶档挂量(后面叫深度比;系数 1.95,t = 28),意思是同样的手数,顶档越薄冲击越大;再加打穿层数、事件前价差和当日波动率,R² 从 0.11 升到 0.51。这时层数(每 log 单位 2.95 tick,t = 22)和事件前价差(每 tick 0.95 tick,t = 24)把深度比的解释力拿走了大半,手数本身的系数降到 2.8,还是显著。即时冲击一半以上能从簿的形状直接算出来,是机械的部分。但 15 分钟冲击对这些变量的 R² 只有 0.001,手数效应还在(每 log 单位 6.3 tick,t = 6.5),事件之间几乎全是噪声。所以我后面把冲击拆成机械的和信息的两块。斜率的完整表(表 3)也在文末。
两种数法,答案相反
回到七月的问题。如果扫单后的报价已经无偏,那事件后漂移(15 分钟中价 − 1 秒中价)应该是零。这个数也是一个在事件后 1 秒进场的人能拿到的毛收益。
扫单口径:从 20 手到 299 手,每个桶的漂移都在零附近或者是负的(30–39 手 −2.8 tick,t = −2.2;100–149 手 −4.9,t = −1.5)。只有 300 手以上(全年 99 张)有 +32.7 tick(t = 2.7)。
成交记录口径反过来:40–49 手 +9.6 tick(t = 2.4),60–79 手 +5.5,100–149 手 +8.6,150–199 手 +12.7(这几档 t 在 1.1–1.6),300 手以上 +65 tick(只有 19 条)。
同一批成交,两种数法,答案相反。差别只有一个:一张主动单被拆成了几条来报。这不是噪声,是报告方式造成的。
到这里七月那件事就对上了。「单笔记录 ≥60 手」本来就是记录口径。一条 100 手的记录,说明那个价位上本来至少挂着 100 手。这么深的一层,吃掉它报价不会马上动,信息要过一阵才进价格。
所以下一步很自然:把 ≥40 手的扫单按打穿了几层拆开。
两种大单,一种一步到位,一种慢慢走
| 类型 | n | 即时 0+ | 15 min | 漂移 15 min − 1 s | 扣成本净值 | 15 min / σday |
|---|---|---|---|---|---|---|
| ≥40 手 · 单层块吸收 | 3,553 | +1.25 (20.7) | +13.87 (4.4) | +6.78 (2.8) | +3.41 (1.4) | 1.82% (3.0) |
| ≥40 手 · 扫 2–3 层 | 841 | +1.35 (17.7) | +13.00 (2.9) | +7.49 (1.7) | +4.30 (1.0) | 1.08% (1.4) |
| ≥40 手 · 扫 ≥4 层 | 18,191 | +12.31 (24.4) | +10.75 (5.2) | -3.79 (-2.3) | -7.41 (-4.4) | 1.74% (4.1) |
| ≥100 手 · 单层块吸收 | 552 | +1.22 (16.3) | +21.74 (3.3) | +13.58 (2.7) | +10.48 (2.1) | 3.14% (3.3) |
| ≥100 手 · 扫 2–3 层 | 103 | +1.10 (6.4) | +22.47 (2.1) | +16.11 (1.5) | +12.91 (1.2) | 3.49% (1.5) |
| ≥100 手 · 扫 ≥4 层 | 2,436 | +19.64 (22.3) | +16.44 (4.0) | -4.86 (-1.4) | -8.31 (-2.4) | 2.88% (4.0) |
漂移 = 15 分钟中价 − 1 秒中价;净值 = 漂移 − 进出各半个真实价差 − 0.4 tick 手续费。
先说一句怎么读数:漂移是 15 分钟中价减 1 秒中价,不是减即时冲击。1 秒时中价通常已经比 0+ 又走了几 tick,所以下面三个数不能直接相减。
三类:
- 单层块吸收,整张单只在一个价位成交完:全年 3,553 张,每天大约 12 张。即时冲击 1.25 tick,15 分钟 13.9 tick(t = 4.4),漂移 +6.8 tick(t = 2.8)。被吃掉的那个价位事前挂着中位 55 手,正常顶档是 2 手,25 倍以上。
- 扫 2–3 层:841 张。即时 1.35,15 分钟 13.0,漂移 +7.5(t = 1.7),在中间。
- 扫 ≥4 层(走簿):18,191 张,≥40 手的大部分。即时 12.3 tick(t = 24),15 分钟 10.8,漂移 −3.8 tick(t = −2.3),有一点反转。
到 ≥100 手差别更大:块吸收即时 1.2、15 分钟 21.7(t = 3.3)、漂移 +13.6 tick(t = 2.7);走簿即时 19.6、15 分钟 16.4、漂移 −4.9。按当日波动率算,块吸收 ≥100 手的 15 分钟冲击是 σday 的 3.1%(t = 3.3)。
我的理解
两类的信息含量差不多,15 分钟都在 11–22 tick,差别在价格是谁推上去的。走簿是主动方自己把价格推到位,还略微推过头,之后回吐一点;块吸收是主动方撞上一堵 55 手的墙(可能是冰山,可能是大机构的被动单),报价几乎没动,别人看到的只是「有人愿意在这个价位一口吃掉 50 手」,这个信号要过 15 分钟才慢慢定价。我的猜法是:市场对「打穿了几层」反应够了,对「一个价位上消失了多少手」反应不够。Glosten 和 Milgrom (1985) 那种做市商从成交里学信息的框架大概能套上。
两条旁证。按手数/顶档挂量分组,比值 ≤1 的漂移是正的(40–59 手 +7.3,100 手以上 +11.5,t = 2.2),比值 >20 的是负的。块吸收里那 292 张没把显示挂量吃空的(即时 0.07 tick),15 分钟也有 17.7 tick(t = 2.2)。
整数手数。≥100 手里,整数手数(100、150、200……)的 15 分钟冲击只有 4.9 tick(t = 0.6),非整数是 19.4 tick(t = 4.3);整数的漂移 −12.3(t = −2.2)。40–99 手区间差别不显著。按整数下单的,更像在执行一个定好的数,不是按有多确定来选手数。Alexander 和 Peterson (2007) 在股票上记过类似的事。
时段(亚洲 / 欧洲 / 美国 / 尾盘)之间没差别:40–59 手即时冲击 7.3–8.2 tick,漂移也没有稳定的时段模式。
价差一秒就回来了,然后算成本
上一节的延续能不能拿到手,要看成本。成本又要看大单之后价差变成什么样。这里又是一个和我想的相反的结果。
10–49 手扫单之后,市场看到的第一个价差比事前窄 0.35–0.5 tick(50–149 手窄 0.05–0.3)。我猜是两个原因叠一起:大单常在价差本来就宽的时候出现(≥20 手事件事前价差 3.2–3.7 tick,日中位 3.0),事后往均值回;扫单把薄的那层清掉后,新的限价单很快补上。只有 150 手以上先扩 0.7–1.15 tick,1 秒内回到 ±0.35 以内。15 分钟到 1 小时后,5–149 手的大多数桶比事前低 0.1–0.5 tick。在这个市场,大单打掉的流动性是秒级恢复的,不是分钟级。
所以成本可以按事件当时的真实价差算,不会系统性低估:事件后 1 秒进场吃半个价差,15 分钟后出场再吃半个,加 4 美元手续费(0.4 tick)。≥20 手事件的往返成本 3.1–3.7 tick,一手 31–37 美元。
| 口径 · 手数桶 | n | 漂移(t) | 往返成本 | 净值 | t(净值) |
|---|---|---|---|---|---|
| 扫单 · 20-29 手 | 57,432 | +0.14 (0.2) | 3.67 | -3.53 | -3.9 |
| 扫单 · 30-39 手 | 16,934 | -2.77 (-2.2) | 3.62 | -6.39 | -5.0 |
| 扫单 · 40-49 手 | 7,066 | -0.31 (-0.2) | 3.53 | -3.84 | -2.0 |
| 扫单 · 50-59 手 | 6,618 | -0.74 (-0.4) | 3.57 | -4.32 | -2.1 |
| 扫单 · 60-79 手 | 3,695 | -0.48 (-0.2) | 3.47 | -3.95 | -1.7 |
| 扫单 · 80-99 手 | 1,931 | -2.01 (-0.3) | 3.47 | -5.48 | -0.9 |
| 扫单 · 100-149 手 | 2,069 | -4.94 (-1.5) | 3.40 | -8.34 | -2.5 |
| 扫单 · 150-199 手 | 551 | +2.50 (0.4) | 3.22 | -0.72 | -0.1 |
| 扫单 · 200-299 手 | 328 | -5.60 (-0.6) | 3.10 | -8.70 | -1.0 |
| 扫单 · 300+ 手 | 99 | +32.68 (2.7) | 3.06 | +29.62 | 2.4 |
| 成交记录 · 20-29 手 | 11,076 | +1.49 (1.0) | 3.53 | -2.04 | -1.4 |
| 成交记录 · 30-39 手 | 3,331 | -2.92 (-1.0) | 3.46 | -6.38 | -2.2 |
| 成交记录 · 40-49 手 | 1,638 | +9.59 (2.4) | 3.40 | +6.19 | 1.6 |
| 成交记录 · 50-59 手 | 1,026 | -2.18 (-0.5) | 3.34 | -5.52 | -1.2 |
| 成交记录 · 60-79 手 | 987 | +5.46 (1.2) | 3.36 | +2.11 | 0.5 |
| 成交记录 · 80-99 手 | 606 | +4.79 (1.1) | 3.22 | +1.56 | 0.4 |
| 成交记录 · 100-149 手 | 430 | +8.60 (1.6) | 3.08 | +5.52 | 1.0 |
| 成交记录 · 150-199 手 | 193 | +12.73 (1.4) | 3.20 | +9.54 | 1.1 |
| 成交记录 · 200-299 手 | 87 | -1.37 (-0.1) | 3.14 | -4.51 | -0.3 |
| 成交记录 · 300+ 手 | 19 | +65.27 (2.3) | 3.91 | +61.36 | 2.2 |
往返成本 = 事件后 1 秒的半个价差 + 15 分钟后的半个价差 + 0.4 tick 手续费(4 美元)。净值为正且 t > 1.5 者标红。
扣完成本,扫单口径全负,20–299 手各桶 −3.5 到 −8.7 tick,大多显著。跟着走簿的大单做,扣完成本是亏的。这和第一节那个「聚合大单」回测(10 万次、−0.19 tick)对得上。块吸收口径为正但在边缘:≥40 手 +3.4 tick(t = 1.4),≥100 手 +10.5 tick(t = 2.1),不过后者一天只有 1.8 张。记录口径 ≥40 手各桶 −6.4 到 +9.5,单桶 t 都不到 1.6。
和七月回测对账(表 7 在文末)。七月那套更严:记录口径 ≥60 手、250 ms 延迟、持有 900 秒、最多同时 10 张。全年 +131,980 美元,日 t = 2.42,夏普 2.18;块置换检验(整天翻方向、重跑全部参数、取最大 t、按搜索次数校正)p = 0.010。两套口径说的是同一件事:信号是真的,但量级被成本压在 1–3 倍价差之内。
为什么它还在。我能想到的是:剩下的延续大约刚好等于把它套走要付的成本;一天十来张,容量太小,没人有动力抹平它。后半年价差翻倍,延续也翻倍。
不稳的地方
先看图 7,这是后面所有分半都绕不开的背景。
| 指标 | 前半年 H1 | 后半年 H2 |
|---|---|---|
| 扫单 20-39 手 · 即时冲击 | 3.66 tick · 1.46% σ | 7.04 tick · 1.27% σ |
| 扫单 40-59 手 · 即时冲击 | 5.17 tick · 1.82% σ | 10.79 tick · 1.65% σ |
| 扫单 60-99 手 · 即时冲击 | 6.33 tick · 2.10% σ | 15.49 tick · 2.21% σ |
| 扫单 100+ 手 · 即时冲击 | 9.50 tick · 3.41% σ | 23.53 tick · 3.26% σ |
| 块吸收 ≥40 手 · 漂移 | +0.44 tick (t 0.2) · 0.11% σ | +13.42 tick (t 2.9) · 3.60% σ |
| 块吸收 ≥40 手 · 扣成本净值 | -2.08 tick (t -1.2) | +9.15 tick (t 2.0) |
| 成交记录 ≥60 手 · 纸面净损益 | $50,440 | $59,632 |
即时冲击以 tick 计后半年翻倍,以 σday 计不变;块吸收的漂移几乎全部来自后半年。
分半:前半年 2025-05-20 → 2025-11-17,后半年 2025-11-18 → 2026-05-19。即时冲击按 tick 后半年翻倍、归一化后重合,这部分我觉得站得住。
但块吸收之后的延续,几乎全部来自后半年。≥40 手块吸收的漂移,前半年 +0.4 tick(t = 0.2),后半年 +13.4 tick(t = 2.9);归一化之后是 0.1% 对 3.6% 的 σday,不是波动率尺度能解释的。纸面权益 83% 来自后半年。记录口径的 ≥60 手规则前后半年各一半(5.0 万对 6.0 万美元),七月那次严格的样本外检验也过了,所以我不觉得它「不存在」。但块吸收这个解释在前半年没有独立的支持。我更愿意把它看成一个和波动率状态有关的东西,不是常数。
其余的:
- 定义敏感。扫单和记录两种口径给出相反的漂移。做大单研究,先说清数的是主动单还是记录。
- 报价是怎么取的。MBP-1 只在成交时带盘口,所以「τ 时刻的报价」其实是下一笔成交前的报价。对即时冲击(0+)来说,我量的是「下一笔成交前」,不是「下一次报价更新后」。活跃时段两者差亚秒,清淡时段可能几秒。
- 延迟。七月回测里从 250 ms 到 120 s 试了五档延迟,每笔分别是 17、14、3、13、0 美元,不单调,事件级噪声还很大。
- 刀切得太多。层数这一刀是从口径矛盾直接推出来的;深度比、价差、时段、整数手数这几刀都是探索性的。试的分法多,单看某一刀的 t 会偏高。只有七月回测做过搜索校正。
- 换品种、换年份没试过。只有 GC、只有这一年,没有订单 ID(认不出交易者,也确认不了冰山)。
最后
四句话:
- 单张主动单的即时冲击看起来按根号长(β 约 0.55–0.59),而且是按波动率计价的。
- 走簿型扫单,即时报价就是全部反应,15 分钟内没有额外漂移,略有反转。
- 单层块吸收,市场反应不足:即时约 1 tick,之后 15 分钟又走了 7–14 tick;整数手数的信息更少;流动性 1 秒内恢复。
- 延续大约和往返成本一样大(1–3 倍),所以扣完成本只剩一点,而且集中在高波动的月份。
下一步。这套做法只要逐笔成交和簿快照就能搬,不依赖 CME 的任何特性。想试加密货币的现货和永续,还有用 CLOB 撮合的预测市场(比如 Polymarket)。那里价格本身就是概率,可以直接看一张大单之后价格要多久才走到位,以及价差和簿深有没有把这段延续吃掉。
复现。几个脚本,16 核机器上跑完不到两分钟,不含下载:
extract2.py:从日文件抽前月逐笔,带顶档挂量和纳秒时间戳;p1_impact.py:扫单重建、九个时距的冲击与价差变化、按日分桶、归一化;p2_stats.py:冲击曲线、永久/暂时分解、平方根律与主曲线的自助区间、价差响应、手数分布;p3_conditional.py/p3b_blocks.py:深度比、层数、价差、时段、整数手数、日聚类回归、块吸收对照、逐月流动性、纸面权益;p4_figs.py:全部图(无依赖的 SVG,颜色跟页面主题走)。
七月的 backtest.py / holdout.py / block_perm.py 用的是同一份抽出来的逐笔。表都是脚本输出直接生成的,没手抄。
看过的几篇:
- Lillo, F., Farmer, J. D., & Mantegna, R. N. (2003). Master curve for price-impact function. Nature, 421.
- Tóth, B., Lempérière, Y., Deremble, C., de Lataillade, J., Kockelkoren, J., & Bouchaud, J.-P. (2011). Anomalous price impact and the critical nature of liquidity in financial markets. Physical Review X, 1(2).
- Bouchaud, J.-P., Bonart, J., Donier, J., & Gould, M. (2018). Trades, Quotes and Prices: Financial Markets Under the Microscope. Cambridge University Press.
- Glosten, L. R., & Milgrom, P. R. (1985). Bid, ask and transaction prices in a specialist market with heterogeneously informed traders. Journal of Financial Economics, 14(1).
- Alexander, G. J., & Peterson, M. A. (2007). An analysis of trade-size clustering and its relation to stealth trading. Journal of Financial Economics, 84(2).
- Gopikrishnan, P., Plerou, V., Gabaix, X., & Stanley, H. E. (2000). Statistical properties of share volume traded in financial markets. Physical Review E, 62(4).
完整的表格都在这里
表 1,样本概览:交易日数、成交笔数、手数、合并后的主动单数、顶档挂量和单笔手数的分位数。
| 项目 | 数值 | 备注 |
|---|---|---|
| 交易日 | 312 | 2025-05-20 → 2026-05-19 |
| 成交记录 / 主动单(扫单) | 31,621,111 / 27,815,758 | 多层扫单占主动单 7.7% |
| 成交量(手) | 47,750,032 | 日中位 153,106 |
| 单笔 / 扫单手数中位数 | 1 / 1 | 扫单 99.9 分位 36 手 |
| 顶档挂量中位(手) | 2 | 2026 年以后为 1 手 |
| 价差(tick,日均值的均值) | 3.16 | 前半年 2.17 · 后半年 4.16 |
| 日内波动 σday(tick,中位) | 436 | 前半年 324 · 后半年 623 |
| 中价范围(美元) | 3,275 – 5,551 | 日收盘中价 |
表 2,冲击响应函数的完整数表:扫单口径各手数桶在九个时距上的冲击,以及 15 分钟冲击除以即时冲击的比值。
| 手数桶 | n | 0+ | 1 s | 1 min | 15 min | 1 h | 15 min / 0+ |
|---|---|---|---|---|---|---|---|
| 1 手 | 19,040,678 | 0.95 (0.03) | 1.35 (0.04) | 1.48 (0.07) | 1.51 (0.15) | 1.62 (0.24) | 1.58 |
| 2 手 | 3,594,412 | 1.10 (0.03) | 1.62 (0.05) | 1.77 (0.12) | 1.56 (0.20) | 1.64 (0.30) | 1.42 |
| 3-4 手 | 1,791,586 | 1.29 (0.04) | 1.85 (0.06) | 1.74 (0.13) | 2.31 (0.47) | 2.23 (0.52) | 1.79 |
| 5-9 手 | 911,462 | 1.73 (0.05) | 2.25 (0.08) | 2.00 (0.27) | 2.84 (0.54) | 2.33 (0.64) | 1.64 |
| 10-19 手 | 265,702 | 3.01 (0.09) | 3.52 (0.12) | 3.14 (0.33) | 3.27 (0.79) | 1.12 (0.78) | 1.09 |
| 20-29 手 | 57,836 | 4.99 (0.16) | 5.60 (0.24) | 5.35 (0.68) | 5.55 (1.04) | 4.01 (2.53) | 1.11 |
| 30-39 手 | 17,075 | 6.46 (0.24) | 7.24 (0.29) | 6.10 (0.48) | 3.76 (1.40) | 7.54 (2.49) | 0.58 |
| 40-49 手 | 7,133 | 7.50 (0.33) | 7.94 (0.34) | 6.93 (0.64) | 11.85 (3.02) | 8.57 (3.42) | 1.58 |
| 50-59 手 | 6,670 | 8.41 (0.36) | 9.74 (0.49) | 9.21 (0.79) | 8.31 (1.84) | 6.58 (2.79) | 0.99 |
| 60-79 手 | 3,736 | 9.58 (0.48) | 10.11 (0.52) | 10.76 (1.04) | 11.24 (2.76) | 6.36 (3.59) | 1.17 |
| 80-99 手 | 1,955 | 11.48 (0.70) | 11.81 (0.71) | 10.77 (1.24) | 10.96 (6.28) | 14.01 (6.73) | 0.95 |
| 100-149 手 | 2,095 | 14.64 (0.78) | 14.83 (0.77) | 13.57 (1.35) | 14.18 (4.47) | 15.05 (6.80) | 0.97 |
| 150-199 手 | 562 | 15.37 (1.13) | 16.26 (1.02) | 19.36 (2.29) | 24.33 (7.48) | 19.16 (13.21) | 1.58 |
| 200-299 手 | 334 | 15.58 (1.43) | 17.91 (1.42) | 17.92 (2.78) | 13.68 (8.96) | 6.72 (15.52) | 0.88 |
| 300+ 手 | 100 | 22.61 (2.54) | 21.20 (2.10) | 32.84 (4.17) | 51.50 (12.87) | 38.89 (18.65) | 2.28 |
最后一列为 15 分钟冲击与即时冲击之比;≥20 手各桶在 0.9–1.2 之间者标红。30–39 与 40–49 两桶合并后该比值约为 0.9。
表 3,平方根律的斜率:不同口径、不同桶集合、不同时距下的 β 和按日自助区间。
| 口径 | 时距 | β | 95% 区间 |
|---|---|---|---|
| 扫单 · 全部 15 桶 | 0+ | 0.588 | [0.567, 0.605] |
| 扫单 · ≥20 手 10 桶 | 0+ | 0.520 | [0.457, 0.581] |
| 扫单 · 全部 15 桶 | 1 s | 0.518 | [0.499, 0.536] |
| 扫单 · ≥20 手 10 桶 | 1 s | 0.480 | [0.428, 0.538] |
| 扫单 · 全部 15 桶 | 1 min | 0.541 | [0.511, 0.570] |
| 扫单 · ≥20 手 10 桶 | 1 min | 0.629 | [0.536, 0.719] |
| 扫单 · 全部 15 桶 | 15 min | 0.547 | [0.424, 0.628] |
| 扫单 · ≥20 手 10 桶 | 15 min | 0.722 | [0.343, 1.016] |
| 归一化主曲线(I/σday 对 Q/Vday) | 0+ | 0.550 | [0.535, 0.566] |
| 归一化主曲线(I/σday 对 Q/Vday) | 15 min | 0.491 | [0.361, 0.593] |
| 成交记录口径(对照) | 0+ | -0.003 | [-0.052, 0.036] |
| 成交记录口径(对照) | 15 min | 0.463 | [0.315, 0.595] |
表 4,事件级回归:≥20 手扫单的即时冲击和 15 分钟冲击对手数、深度比、层数、事件前价差、当日波动率的回归,标准误按日聚类。
| 变量 | (1) 即时冲击 | (2) 即时冲击 | (3) 即时冲击 | (4) 15 分钟冲击 |
|---|---|---|---|---|
| log 手数 | 4.13 (19.7) | 2.96 (17.3) | 2.81 (17.3) | 6.35 (6.5) |
| log(手数/顶档挂量) | 1.95 (28.1) | 0.06 (1.9) | 0.38 (0.8) | |
| log 打穿层数 | 2.95 (21.8) | 0.11 (0.1) | ||
| 事件前价差(tick) | 0.95 (24.4) | 0.17 (0.4) | ||
| σday(百 tick) | 0.17 (5.3) | 0.20 (1.0) | ||
| 常数 | -8.84 (-14.5) | -9.29 (-15.4) | -13.15 (-19.9) | -19.27 (-5.5) |
| R² | 0.106 | 0.252 | 0.515 | 0.001 |
| n | 96,492 | 96,492 | 96,492 | 97,496 |
表 7,纸面策略汇总:这里的几条规则和七月那次回测放在一起。
| 规则 | 笔数 | 总净损益 | 日 t | 夏普 | 最大回撤 | 前半 / 后半 |
|---|---|---|---|---|---|---|
| 成交记录 ≥60 手(本文,不限并发) | 2,322 | 110,072 | 2.12 | 1.91 | 24,194 | 50,440 / 59,632 |
| 单层块吸收 ≥40 手(本文,不限并发) | 3,518 | 87,258 | 1.20 | 1.08 | 61,246 | 14,912 / 72,346 |
| 任意 ≥40 手扫单(本文,不限并发) | 22,357 | -611,268 | -3.18 | -2.86 | 700,524 | -344,704 / -266,564 |
| 成交记录 ≥60 手 · 250 ms 延迟 · 并发 ≤10(2026-07 回测) | 2,320 | 131,980 | 2.42 | 2.18 | 24,614 | 51,066 / 80,914 |
前三行:每事件 1 手、事件后 1 秒进场、持有 15 分钟、扣真实价差与手续费。末行为此前更严格的回测(含延迟、并发上限、按日 PnL),其块置换检验经搜索校正的 p = 0.010。