Kalshi 上的滑点:为什么你的成交比看到的价格更差
滑点不是 Kalshi 的怪癖,也不是一个 bug。它是当你想要的量,大于在你看到的价格上挂着的量时所发生的事——而且在一个从 0 报价到 1 的市场上,单个 tick 占的比例,远比你在其他地方交易过的市场都要高。
Kalshi 上的滑点,是你决定交易时看到的价格,与你实际付出的平均价格之间的差距。它之所以发生,是因为显示的价格只对挂在那个价位的数量有效;一旦你的订单超出那个数量,剩下的部分就会在更差的价格档位上成交。在报价介于 0 到 1 之间的合约上,单个一美分的跳动,占了头寸相当大的比例。
一美分的跳动比看起来更大
这是从股票市场过来的人最惊讶的部分。如果一只 200 美元的股票滑一美分,那是 0.005%,没有人会注意到。Kalshi 合约以 0 美元或 1 美元结算,因此交易区间大约在 0.01 到 0.99 之间,而它的最小跳动同样是一美分。
以 0.33 买进一份合约,滑一美分到 0.34,你就为同一个头寸多付了 3%。如果你策略的优势是每份合约两到三美分——在预测市场里这是相当体面的优势——单单一个 tick 的滑点,就可能吃掉优势的三分之一到全部。
这就是为什么那些以前从没想过执行成本的交易者,一到 Kalshi 就开始认真思考它。市场并没有变得更不友好;只是分母变小了。
yes/no 订单簿如何造成滑点
Kalshi 显示两侧,而且两侧都是买价。有买进 yes 的买价,也有买进 no 的买价。没有独立的一份 yes 卖价清单,因为在价格 p 上买进 no 的买价,在算术上就等于一个在 1 − p 卖出 yes 的卖价。
这代表买进 yes 时你穿越的价格,来自 no 那一侧。在一份从 BTC 15 分钟市场记录下来的真实订单簿里,最优 yes 买价挂在 0.32,最优 no 买价挂在 0.67——因此隐含的 yes 卖价是 1 − 0.67 = 0.33。这个市场的价差只有一美分,而买方付出的是 0.33,而不是他们可能误以为「就是这个价格」的 0.32。
只看订单簿的一侧,或只看最新成交价,会把这一切完全隐藏起来。第一个让人意外的地方,往往根本不是滑点,而是价差本身——心里锚定在买价,实际上却付了卖价。
一份真实的 Kalshi 订单簿实际上长什么样
泛泛而谈的滑点解释,没办法告诉你那里究竟有多少深度,因为那是一个测量值,不是一个定义。在 DepthFeed 记录下来的归档数据中,旗舰的 BTC 15 分钟市场,两侧合计通常呈现一美分的价差、约 96 个价格档位,以及大约 156,000 口合约的挂单深度,数据截至 2026 年 6 月 21 日测量。
这么深的一本簿,听起来滑点应该不可能发生,对小额订单来说,几乎确实如此。问题在于分布:挂单量并不是平均分散在这些档位上的。它会聚集,而紧贴在最优价后面的那几档,经常比总量所暗示的要薄得多。总深度告诉你市场有流动性;最前面几档的形状,才告诉你你的订单实际上会花多少钱。
一个基于真实价格阶梯的实操示例
拿上面记录的那本簿来看。把 no 侧换算成 yes 卖价,大约在 0.33 有 635 口合约可用,在 0.34 有约 1,351 口,在 0.35 有约 2,645 口。
买进 2,000 口 yes 合约。前 635 口以 0.33 成交,接下来的 1,351 口以 0.34 成交,剩下的 14 口以 0.35 成交。总成本约为 674 美元,因此平均付出的价格约为 0.337——而不是屏幕上显示的 0.33。
这大约是每份合约 0.7 美分的滑点,整笔订单约 13.80 美元,占投入现金的略高于 2%。一个假设 2,000 口合约全部以 0.33 成交的回测,会记录成 660 美元,并悄悄地凭空多算出 14 美元从未存在的利润。
| 档位 | yes 付出的价格 | 成交口数 | 成本 |
|---|---|---|---|
| 最优(来自 0.67 的 no 买价) | 0.33 | 635 | $209.58 |
| 第二档(来自 0.66 的 no 买价) | 0.34 | 1,351 | $459.46 |
| 第三档(来自 0.65 的 no 买价) | 0.35 | 14 | $4.75 |
| 总计 | 平均 0.337 | 2,000 | $673.78 |
为什么你的回测没有提醒你
几乎每一份预测市场回测,都是建立在一条价格序列上——最新成交价、中间价,或定期收盘价。价格序列记录的是「某个价格上发生过一笔成交」,而不是「你的数量本来能在那里成交」。
这会产生一种特定且一贯的失败模式:回测恰恰在最重要的地方最乐观,因为滑点会随规模与紧迫程度增加,而那正是一个策略赚钱或亏钱的关键时刻。那些在中间价成交下看起来很强、实盘却消失无踪的策略,通常不是过拟合——它们是用一个从未存在过的成交模型定价出来的。
解法是对照决策当下实际显示的订单簿重播,依预定数量走过价格阶梯,并记录未成交的剩余部分,而不是假设整笔订单都成交了。
依有效程度排序的降低方法
- 依订单簿而不是依信念决定规模——下单前先看清楚挂着多少量。
- 使用限价单并接受部分成交;市价单等于指示按价格阶梯付出任何价格。
- 在短周期市场临近结算的那几分钟要避开,这时价差会扩大,挂单量会变薄。
- 把穿越价差的成本,与滑点分开测量——在一美分的市场上,价差往往是两者中较大的一个。
- 让你的回测走过订单簿,这样成本会显示在研究里,而不是显示在你的账户里。
Key takeaways
- 01滑点是因为你的数量超出了挂着的量,导致你付出比显示价格更差的价格。
- 02在一份 0.33 的合约上,一美分的跳动是 3% 的变动——同样的跳动在一只 200 美元股票上根本看不见。
- 03Kalshi 显示两个买价侧;yes 的卖价是 1 减去最优 no 买价,所以买方是从 no 那一侧穿越的。
- 04深厚的总深度不代表最优价深厚——决定成本的是最前面那几档。
- 05价格序列回测无法显示滑点;只有走过一份记录下来的订单簿才能显示。
滑点不是 Kalshi 的怪癖,也不是一个 bug。它是当你想要的量,大于在你看到的价格上挂着的量时所发生的事——而且在一个从 0 报价到 1 的市场上,单个 tick 占的比例,远比你在其他地方交易过的市场都要高。
免费开始