滑点度量:如何量化滑点?
做量化交易的朋友,最头疼的问题之一就是滑点。
你策略回测跑得漂漂亮亮,年化收益30%,夏普比率3.0。结果一上实盘,收益直接腰斩。为什么?滑点吃掉了你的利润。
我刚开始做算法交易那会儿,也吃过这个亏。回测时觉得成交价跟信号价差不多,实盘才发现,大单子一进去,价格直接跑偏。嗯,今天我们就来聊聊,滑点到底怎么量化。
滑点的本质:你看到的 vs 你拿到的
说白了,滑点就是「预期成交价」和「实际成交价」之间的差值。
你看到买一价是10.00元,下单买入,结果成交在10.02元。这0.02元就是滑点。别小看这几分钱,高频交易里,滑点可能吃掉你一半的利润。
核心公式:
滑点 = 实际成交价 - 预期成交价(买入时)
滑点 = 预期成交价 - 实际成交价(卖出时)
但问题来了——「预期成交价」到底取哪个价格?是信号触发时的最新价?还是下单时的买一价?还是昨天的收盘价?
不同的取法,算出来的滑点天差地别。这就引出了三种主流的滑点度量方法。
方法一:实现成本(Implementation Cost)
这是最直观的度量方式。我习惯把它叫做「裸滑点」。
实现成本 = 实际成交均价 - 决策时的基准价格
举个例子:
- 你在10:00:00决定买入,当时最新价是10.00元
- 你花了30秒分批买入,最终成交均价是10.03元
- 实现成本 = 10.03 - 10.00 = 0.03元(3个基点)
我在项目中遇到过一种情况:有些交易员喜欢用「下单时的买一价」作为基准。这其实不太对。因为从你「决定交易」到「真正下单」,中间还有网络延迟、系统延迟。你想想看,这期间价格可能已经变了。
我的建议:
基准价格尽量用「信号触发时间」的价格,而不是「订单到达交易所」的价格。这样才能真实反映你的策略表现。
方法二:VWAP偏离(Volume-Weighted Average Price Deviation)
VWAP偏离,是机构交易员最常用的指标。
它的逻辑很简单:你的成交价,跟市场同期成交量加权平均价比,差了多少?
公式:
VWAP偏离 = (你的成交均价 - 市场VWAP) / 市场VWAP × 10000(单位:基点)
举个例子:
- 你在9:30-10:00之间买入100万股
- 你的成交均价是10.05元
- 同期市场VWAP是10.02元
- VWAP偏离 = (10.05 - 10.02) / 10.02 × 10000 ≈ 29.9个基点
为什么会用VWAP?因为市场VWAP代表了「流动性提供者」的平均成交价。如果你的成交价比VWAP还差,说明你付出的流动性成本太高了。
我曾经帮一家私募优化算法,发现他们的VWAP偏离长期在15个基点以上。后来一查,原来是他们的订单拆分策略太激进,总是在流动性差的时候猛吃单子。嗯,这就是典型的「算法设计问题」。
注意:
VWAP偏离有个坑——它假设市场VWAP是「公平价格」。但如果市场本身在剧烈波动,VWAP可能失真。比如单边上涨行情,你买入的VWAP偏离可能是负的(你买得比市场平均便宜),但这不代表你的算法好,只是运气好。
方法三:实现亏损(Implementation Shortfall)
这是最全面、也是最严格的滑点度量方法。由Perold在1988年提出,现在已经是机构级算法交易的标配。
实现亏损 = 组合理论收益 - 实际实现收益
拆开来看:
- 理论收益:假设你能以「决策时的价格」瞬间完成全部交易
- 实际收益:你实际成交后的真实收益
两者的差值,就是你的「实现亏损」。它包含了三部分:
| 组成部分 | 含义 | 例子 |
|---|---|---|
| 固定成本 | 佣金、印花税、过户费等 | 万2.5佣金 |
| 市场冲击成本 | 你的订单对价格的直接影响 | 大单买入推高价格 |
| 延迟成本 | 从决策到成交期间的价格不利变动 | 下单后价格涨了0.5% |
我个人觉得,实现亏损是最能反映「交易执行质量」的指标。因为它把机会成本也考虑进去了。
举个例子:
- 你决定在10:00买入,当时价格10.00元,计划买10万股
- 你花了30分钟分批买入,最终成交均价10.10元
- 到10:30,价格涨到10.20元
计算实现亏损:
理论收益 = (10.20 - 10.00) × 100,000 = 20,000元
实际收益 = (10.20 - 10.10) × 100,000 = 10,000元
实现亏损 = 20,000 - 10,000 = 10,000元
你看,虽然你赚了1万块,但跟「完美执行」相比,你亏了1万块。这就是滑点的真实代价。
关键认知:
实现亏损 = 固定成本 + 市场冲击成本 + 延迟成本
其中,市场冲击成本和延迟成本是此消彼长的关系。你下单越快,冲击成本越大;你下单越慢,延迟成本越大。最优执行算法,本质上就是在两者之间找平衡。
三种方法的对比
| 方法 | 优点 | 缺点 | 适用场景 |
|---|---|---|---|
| 实现成本 | 简单直观,计算方便 | 忽略机会成本 | 日常监控、快速评估 |
| VWAP偏离 | 反映流动性成本,行业标准 | 受市场波动影响大 | 机构交易、算法评估 |
| 实现亏损 | 最全面,包含机会成本 | 计算复杂,需要完整数据 | 策略优化、绩效归因 |
一张图看懂滑点度量体系
下面这张图,是我自己总结的滑点度量知识框架。你可以把它当作一个「检查清单」——每次评估交易执行质量时,对照着看一遍。
避坑指南
我曾经犯过一个低级错误,分享出来给大家提个醒。
有一次我在评估一个高频策略,用实现成本算出来滑点只有0.5个基点,觉得算法表现不错。结果一算实现亏损,发现滑点高达8个基点。为什么?因为那段时间市场在快速上涨,我的延迟成本被实现成本完全忽略了。
从那以后,我养成了一个习惯:至少用两种方法交叉验证滑点。实现成本+VWAP偏离,或者实现成本+实现亏损。单一指标太容易骗人了。
实战小技巧:
如果你做的是日内交易,建议用VWAP偏离作为主要指标。如果你做的是中低频策略(持仓几天到几周),实现亏损更合适。如果你只是做回测后的快速检查,实现成本就够了。
好了,滑点的度量方法就讲到这里。记住一句话:你无法管理你无法度量的东西。把滑点量化清楚了,你才能知道自己的算法到底赚没赚钱。
公众号:蓝海资料掘金营,微信deep3321