一、滑点概述:什么是滑点、滑点产生的原因、滑点对套利策略的影响
1.1 什么是滑点?先给你一个直观感受
滑点,说白了就是「你下单时看到的价格」和「实际成交的价格」之间的那点差距。
举个例子你就明白了。我在做股指期货套利时,看到沪深300期货的买一价是4000点,我果断敲了买入指令。结果成交回报回来,成交价是4000.2点。这0.2点,就是滑点。
你可能会想:「才0.2点,至于大惊小怪吗?」
嗯,单看一次确实不多。但套利交易讲究的是高频、小利、大仓位。一次滑掉0.2点,一天做100次,那就是20点。一个月下来,利润可能就被滑点吃光了。
所以,滑点不是小问题。它是套利策略的隐形杀手。
滑点的本质:理想价格与真实成交价格之间的偏差。这个偏差可能是正的(对你有利),也可能是负的(对你不利)。但在实际交易中,绝大多数情况是负滑点——你买贵了,或者卖便宜了。
1.2 滑点是怎么产生的?我总结了三个核心原因
我在实盘交易中踩过不少坑,滑点的成因其实就三类。咱们一个一个说。
1.2.1 流动性不足——最直接的元凶
流动性,就是市场上愿意接你单子的人有多少。
你想想看,如果你要买100手比特币,但卖一价上只有5手挂着。那剩下的95手怎么办?只能吃卖二、卖三、卖四的价。价格自然就上去了。
我曾在某个小币种的套利对里吃过这个亏。那个币种日均成交量才几百万美元,我一次下了个50万美元的单子,结果直接把价格拉高了0.3%。那次套利不仅没赚到钱,还亏了手续费。
- 盘口深度不够:买卖挂单稀疏,大单会直接吃掉多层价位
- 交易时间冷清:比如凌晨、节假日,流动性骤降
- 品种本身冷门:小市值股票、低交易量期货合约
1.2.2 市场波动剧烈——你永远追不上价格
这个我印象太深了。有一次做黄金期货的跨期套利,突然出了个非农数据,金价瞬间跳了5美元。我的限价单还没到交易所,价格已经变了。
为什么会这样?因为市场在剧烈波动时,价格变化的速度远远快于你的订单传输速度。你看到的价格,其实是「历史价格」——虽然只差了零点几秒,但已经足够让滑点变得很大。
注意:在重大新闻发布前后(比如美联储议息、非农数据、财报季),滑点会急剧放大。我建议你在这段时间要么暂停策略,要么大幅降低仓位。
1.2.3 订单执行机制——你的对手是算法
这个原因很多人会忽略。其实,你的订单怎么被处理,也直接影响滑点。
市价单:追求成交速度,但价格不可控。你告诉交易所「给我买,多少钱都行」,那滑点就完全交给市场了。
限价单:价格可控,但可能成交不了。你挂了个好价格,结果市场一飞冲天,你根本没成交。
我个人习惯是:在套利交易中尽量用限价单,配合适当的撤单重发策略。虽然麻烦一点,但能有效控制滑点。
| 订单类型 | 滑点风险 | 成交概率 | 适用场景 |
|---|---|---|---|
| 市价单 | 高 | 100% | 流动性极好、波动极小的品种 |
| 限价单 | 低 | 不确定 | 套利交易首选,配合撤单重发 |
| 冰山订单 | 中 | 高 | 大单拆小,减少市场冲击 |
1.3 滑点对套利策略的影响——别小看它
套利策略的核心逻辑是什么?就是「价差回归」。你发现两个相关资产的价格出现了偏离,于是买入便宜的、卖出贵的,等它们回归正常后平仓获利。
但滑点会直接破坏这个逻辑。我举个例子:
假设你发现A和B两个期货合约的价差应该是10元,现在变成了12元。你判断价差会回归,于是做空价差(卖A买B)。
理想情况:价差从12元回归到10元,你赚2元。
实际情况:你卖A时滑了0.3元,买B时滑了0.3元。开仓成本就多了0.6元。平仓时再滑一次,又是0.6元。总共1.2元的滑点成本。你原本能赚2元,现在只剩0.8元。
如果滑点再大一点,或者价差回归的幅度小一点,这笔交易就直接亏损了。
我的经验:在评估一个套利策略是否可行时,我会先把预期滑点成本算进去。如果扣除滑点后的预期收益还不到风险敞口的2倍,我就直接放弃。别贪,滑点会教你做人。
1.4 滑点的量化——你得心里有数
光知道滑点有害还不够,你得能算出来它到底有多大。
我常用的方法是「历史滑点分析」。简单说,就是回测你的策略在过去一段时间内,实际成交价和信号触发价之间的平均偏差。
# 一个简单的滑点计算示例
def calculate_slippage(signal_price, fill_price, volume):
"""
signal_price: 策略触发时的价格
fill_price: 实际成交价格
volume: 成交量
"""
slippage = (fill_price - signal_price) / signal_price * 10000 # 以基点为单位
return slippage
# 假设你做了100笔交易
slippages = []
for trade in trades:
s = calculate_slippage(trade['signal'], trade['fill'], trade['volume'])
slippages.append(s)
avg_slippage = sum(slippages) / len(slippages)
max_slippage = max(slippages)
print(f"平均滑点: {avg_slippage:.2f} 基点")
print(f"最大滑点: {max_slippage:.2f} 基点")
有了这个数据,你就能判断:这个品种、这个时间段、这个策略,到底能不能做。
1.5 小结——滑点是你绕不开的坎
说了这么多,其实就一句话:滑点是套利交易中无法完全消除的成本,但你可以通过理解它、量化它、控制它,来把影响降到最低。
我曾经见过一个团队,策略逻辑非常漂亮,回测年化收益30%。结果一上实盘,连续三个月亏损。最后查出来,就是滑点控制没做好。回测时假设零滑点,实盘里每笔交易滑掉0.5个基点,高频交易下利润全被吃掉了。
所以,从今天开始,请把滑点当成你的头号敌人。后面的章节,我会详细讲怎么用各种方法控制它、甚至利用它。
嗯,咱们下一章见。