4. 跨期套利中的流动性风险:滑点与执行成本
做跨期套利,很多人第一反应是看价差、算回归。但我得说句实话——你策略再漂亮,流动性一差,全白搭。我见过太多人,回测曲线美如画,实盘一跑就崩盘。为什么?滑点和执行成本吃掉了所有利润。
今天我们就来聊聊这个容易被忽视,但极其致命的问题。
4.1 滑点:你看到的价差,不是你能拿到的价差
滑点,说白了就是你的成交价和预期价之间的差值。在跨期套利里,这个问题会被放大。因为你要同时操作两个合约,滑点会叠加。
举个例子。你看到近月合约买一价100,远月合约卖一价102。价差2个点,你觉得有套利空间。但当你真正下单时,近月可能成交在100.5,远月成交在101.5。实际价差变成了1个点。嗯,利润直接腰斩。
核心公式:
实际执行价差 = 理论价差 - (近月滑点 + 远月滑点)
当实际执行价差 ≤ 0 时,这笔交易就是亏钱的。
我在项目中遇到过最夸张的一次,是交易某个冷门品种的跨期组合。盘口薄得像纸,我这边刚下完单,价格直接被打穿了两个tick。那次之后,我养成了一个习惯——先看流动性,再看价差。
4.2 执行成本:不只是手续费那么简单
执行成本包含三部分:
- 显性成本:手续费、印花税、过户费等。这些是明码标价的。
- 隐性成本:滑点、市场冲击、延迟成本。这些才是大头。
- 机会成本:因为流动性不足,你无法及时建仓或平仓,错过的利润。
你想想看,很多新手只算了手续费,觉得一个来回才几块钱,没问题。结果一算滑点,好家伙,一个滑点顶你十次手续费。
| 成本类型 | 典型数值(以螺纹钢为例) | 是否可控 |
|---|---|---|
| 手续费 | 约0.01% | 是(可谈判) |
| 滑点(高流动性) | 0.5 - 1个tick | 部分可控 |
| 滑点(低流动性) | 3 - 10个tick | 几乎不可控 |
| 市场冲击 | 取决于订单规模 | 部分可控 |
我的习惯:在策略里直接预留2个tick的滑点成本。如果回测还能赚钱,实盘才有戏。别太乐观,市场会教你做人。
4.3 流动性分层:不是所有合约都一样
跨期套利涉及两个合约,它们的流动性往往天差地别。近月合约通常流动性好,远月合约可能门可罗雀。
为什么会这样?因为大部分交易者都在做近月投机或套保,远月合约参与者少。你想想看,一个每天成交10万手的合约,和一个每天成交100手的合约,它们的滑点能一样吗?
我建议你把合约流动性分成三个等级:
- 高流动性:盘口深度好,买卖价差小,适合做高频或小资金套利。
- 中等流动性:有一定深度,但大单会打穿价格。需要控制仓位。
- 低流动性:盘口稀薄,一单下去就是一根针。我个人建议直接避开。
避坑指南:我曾经在低流动性合约上吃过亏。当时远月合约只有3手挂单,我下了5手,结果成交均价直接比预期高了4个tick。那次之后,我定了个规矩——单笔订单不超过盘口挂单量的30%。
4.4 如何量化流动性风险?
光靠感觉不行,得量化。我常用的几个指标:
- 买卖价差(Bid-Ask Spread):最直接的流动性指标。价差越小,流动性越好。
- 市场深度(Market Depth):看盘口前五档的挂单量。深度越厚,大单冲击越小。
- 成交额/持仓量比:比值越高,说明合约越活跃。
- Amihud非流动性指标:衡量价格对成交量的敏感度。敏感度越高,流动性越差。
下面这张图,是我自己整理的一个流动性分析框架。你可以照着这个思路来评估你的跨期组合。
4.5 实战中的执行策略
知道了风险,怎么应对?我分享几个实战技巧。
技巧一:分批下单
别一口气全干进去。把大单拆成小单,分批进场。虽然可能错过最佳时机,但能有效降低市场冲击。我一般拆成3-5批,每批间隔几秒钟。
技巧二:使用冰山订单
如果你的交易平台支持,用冰山订单。只显示部分挂单量,隐藏真实意图。这样不会吓跑对手盘。
技巧三:选择交易时段
开盘和收盘时段流动性最好。午休时段和夜盘后半段,流动性会明显下降。我建议尽量在活跃时段交易。
一个简单的滑点估算代码:
def estimate_slippage(bid_depth, ask_depth, order_size):
"""
估算市价单的滑点成本
:param bid_depth: 买盘前五档挂单量(列表)
:param ask_depth: 卖盘前五档挂单量(列表)
:param order_size: 订单数量
:return: 预估滑点(tick数)
"""
remaining = order_size
slippage = 0
level = 0
# 以买入为例,遍历卖盘
for depth in ask_depth:
if remaining <= 0:
break
if remaining <= depth:
slippage += level * remaining
remaining = 0
else:
slippage += level * depth
remaining -= depth
level += 1
return slippage / order_size
一个小技巧:在实盘前,先用小单测试流动性。比如下1手看看成交速度和滑点。如果1手都滑了半个tick,那大单就别想了。
4.6 总结一下
流动性风险是跨期套利的隐形杀手。它不像价差那么直观,但杀伤力极大。我个人习惯是,每做一个新组合,先花一周时间观察它的流动性特征。别急着赚钱,先搞清楚你能不能活着出来。
记住一句话:在流动性差的市场上,你的对手不是其他交易者,而是市场本身。
公众号:蓝海资料掘金营,微信deep3321