回测里用一个价格成交,实盘里你要逐档往上吃。 两者的差在薄盘上大到能让一个策略从正变负。 这一篇讲清怎么正确估这笔成本、盘口到底有多薄(实测中位比你想的小很多), 以及两个看起来聪明、实际是自残的「优化」。
盘口卖方那一侧长这样:
| 价格 | 这一档有多少 | 累计 |
|---|---|---|
| 0.63 | 150 股 | 150 |
| 0.64 | 300 股 | 450 |
| 0.66 | 800 股 | 1,250 |
你要买 500 股:150 股按 0.63、300 股按 0.64、50 股按 0.66,
加权均价 0.6390 —— 而你看到的「价格」是 0.63。
这 0.9 分就是走书成本,它在回测里通常完全不存在。
(自己验算:150×0.63 + 300×0.64 + 50×0.66 = 319.5,除以 500 股。)
直觉上「这个盘很活跃,深度应该够」。我们把一千六百多个短周期窗的盘口全档回放, 量了卖方最优档的实际厚度:
| 分位 | 最优档金额 |
|---|---|
| 中位 | 约 $94 |
| 四分之一分位 | $37 |
| 十分之一分位 | 只有 $13 |
分布极度右偏:平均值会被少数厚盘拉高,而你实际会遇到的多数窗口远比平均薄。 报深度必须报分位数,报平均值等于什么都没说。
而且它随时段和窗口位置剧烈变化:最厚的时段是最薄时段的两倍多; 同一个窗口内,早段的厚度到后段会掉到三分之一左右。
| 做法 | 结果 |
|---|---|
| 用最优价 | 错。系统性乐观 |
| 用中间价 | 更错。连价差都没算 |
| 用固定滑点假设 | 薄盘上严重低估,厚盘上过度惩罚 |
| 逐档吃到目标金额,算加权均价 | 对。这是唯一能对上实盘的做法 |
我们按这个方法量过一笔约 $110 的单子:45% 的窗口零滑点 (最优档就够了),平均走书成本 0.56 个百分点, 没有一次吃不满。
更有用的是反过来算 —— 多大的单子会把边吃光:
| 条件 | 净收益归零的单笔规模 |
|---|---|
| 只算走书成本 | 约 $200 |
| 再加上下单期间的价格漂移 | 约 $90 |
第二行才是现实。容量比多数人以为的小一个数量级 —— 这也是为什么「这个策略回测很好,我放大十倍」几乎总是失败: 边是有容量的,而容量常常只有几百美元。
「一次吃穿三档太亏,我分五次吃」—— 这个想法在两个层面都不成立:
同一瞬间拆单没有意义:你吃的还是同样那几档,加权均价一模一样。
跨时间拆单更差:你多付的是等待期间的价格漂移。 我们实测过这笔账 —— 每等 30 秒付出的漂移成本, 高于一口吃掉的走书成本。
结论:一口吃,越快越好。这和股票市场的直觉正好相反, 因为这里的单笔规模相对市场深度小,而短周期盘的漂移极快。
「盘口薄的时候少下点,厚的时候多下点」听起来是风控。实际上它是个隐藏的选择规则。
原因:深度和价格是相关的。按深度调整仓位,等于在不知不觉中 按价格调整仓位 —— 你以为在控制滑点,其实在改变策略的成分。
这类「看起来是风控,实际是选股」的动作,会让回测和实盘指向完全不同的东西, 而且很难发现,因为它的伪装是「谨慎」。
这一篇的所有内容都是同一条原则的实例:
用最优价回测 → 偏乐观。用固定滑点 → 薄盘偏乐观、厚盘偏保守。 用长周期成交流模拟短周期 → 偏乐观(我们实测被高估 1.3 到 2.1 倍)。
只要偏差方向写在纸上,近似就还能用;写不出来,那个数就不能拿来做决定。 这已经是我们的家规,也是判死档案里最常见的死因之一。
回测里的「价格」是盘口最好的那一档,实盘里你要把它吃完再往上。 在中位只有 $94、十分位只有 $13 的盘口上,这个差别足以让一个策略换符号。 估容量的时候,看的不是价格,是你能吃掉多少而不把边吃光。