第二十五讲:高频基差交易——Tick级基差计算、订单簿不平衡与基差、做市商策略中的基差
各位同学,今天我们来聊一个真正考验硬功夫的话题——高频基差交易。说实话,很多做量化的人一听到“高频”两个字就觉得门槛高,其实不然。高频基差交易的核心,说白了就是比别人快半步发现基差的异常,然后抢在对手盘之前把单子挂出去。
我个人习惯把高频基差交易拆成三个层次:算得快、看得准、做得稳。算得快是Tick级基差计算,看得准是订单簿不平衡分析,做得稳是做市商策略中的基差管理。咱们一个一个来。
一、Tick级基差计算:别让延迟吃掉你的利润
先问大家一个问题:你平时算基差用的是什么频率?日频?分钟频?如果你还在用分钟级数据做基差交易,那我得说——你可能已经亏了不少冤枉钱。
为什么?因为基差的变化速度比你想象的要快得多。尤其是在股指期货和ETF之间,或者现货和期货之间,基差在Tick级别上经常出现瞬间的偏离。我曾在项目中遇到过这样的情况:用1秒快照算出来的基差是-2个点,但实际Tick级基差在那一秒内已经来回跳了5次,最大偏离到了-5个点。如果你用1秒数据做决策,你看到的只是平均值,真正的交易机会早就溜走了。
那么Tick级基差怎么算?其实不复杂。核心公式还是那个:
基差 = 期货价格 - 现货价格
但关键在于——时间对齐。期货的Tick和现货的Tick不是同时到达的,你需要做时间戳对齐。我个人习惯用“最近匹配法”:
def tick_basis(futures_tick, spot_ticks):
# 找到期货Tick时间戳之前最近的现货Tick
nearest_spot = None
for spot in reversed(spot_ticks):
if spot.timestamp <= futures_tick.timestamp:
nearest_spot = spot
break
if nearest_spot is None:
return None
return futures_tick.price - nearest_spot.price
嗯,这里要注意:如果期货和现货的Tick频率差异很大,比如期货每秒来10个Tick,现货每秒只来2个,那你算出来的基差序列会有很多重复值。这时候我建议做插值处理,或者干脆只取双方都有新Tick的时刻来计算。
核心要点:Tick级基差计算的关键不是公式本身,而是时间对齐的精度。毫秒级的偏差,可能让你误判一个套利机会。
二、订单簿不平衡与基差:从深度中预判方向
算出了Tick级基差,然后呢?如果你只是盯着基差数值看,那跟看K线没什么区别。真正有价值的是——订单簿不平衡。
什么叫订单簿不平衡?说白了就是买盘和卖盘的深度不一致。比如在期货的订单簿上,买一档挂了100手,卖一档只挂了20手,这就是明显的买盘强势。这种不平衡会直接影响基差的短期走势。
我常用的一个指标叫订单簿不平衡率:
imbalance = (bid_volume - ask_volume) / (bid_volume + ask_volume)
这个值在-1到1之间。正值表示买盘强,负值表示卖盘强。你想想看,如果期货这边买盘强,而现货那边卖盘强,基差是不是大概率会扩大?
我在项目中做过一个回测:把订单簿不平衡率和基差变化做相关性分析。结果发现,当期货的订单簿不平衡率超过0.6且现货的不平衡率低于-0.3时,未来3秒内基差扩大的概率超过75%。
实战技巧:不要只看单边的订单簿不平衡。我建议你同时看期货和现货两边的订单簿,计算一个“联合不平衡指标”。比如:
联合不平衡 = 期货不平衡 - 现货不平衡
这个值越大,说明期货相对现货越强势,基差倾向于扩大。
为什么会这样?因为订单簿不平衡反映了市场参与者的短期供需压力。当期货这边买盘拥挤,而现货那边卖盘拥挤,套利者就会进场做多现货、做空期货,从而推动基差回归。但如果你能比套利者更早发现这个不平衡,你就可以提前布局。
三、做市商策略中的基差:赚的就是流动性差价
做市商这个角色,说白了就是两边挂单,赚买卖价差。但在基差交易中,做市商策略要复杂得多——因为你不仅要管理单边的库存风险,还要管理基差变动的风险。
我见过很多做市商新手犯的一个错误:他们只盯着自己挂单的那一档,忽略了基差的整体走势。比如你在期货上挂了买单,在现货上挂了卖单,看起来是在赚价差,但如果基差突然收窄,你可能两边都亏。
那么做市商策略中的基差怎么用?我总结了一个三步法:
- 设定基差目标区间:根据历史波动率和当前市场状态,确定一个合理的基差波动范围。比如-2到+2个点。
- 动态调整挂单位置:当基差接近区间上沿时,倾向于在期货上挂卖单、在现货上挂买单;接近下沿时则相反。
- 基差偏离止损:如果基差突破了目标区间,说明市场可能发生了结构性变化,这时候要果断撤单,而不是死扛。
避坑指南:我曾经在2019年的一次股指期货交割日附近,因为忽略了基差在交割前的收敛效应,导致做市策略连续亏损。交割日前后,基差会强制收敛到零,这时候你的目标区间必须动态调整,否则就是送钱给别人。
下面这张图是我自己画的高频基差交易的核心逻辑框架,大家可以对照着理解:
从这张图你可以看到,高频基差交易不是孤立的,它是一个从数据到计算再到决策的闭环。我个人习惯在实盘之前,先用历史Tick数据跑一遍这个流程,看看信号延迟和胜率。你想想看,如果模拟都跑不通,实盘就更别说了。
四、实战中的几个坑
最后,我把自己踩过的几个坑分享给大家,希望能帮你们省点学费:
- Tick数据质量:不是所有交易所的Tick数据都是干净的。我曾经遇到过某交易所的Tick时间戳偶尔会跳变,导致基差计算出现异常峰值。一定要做数据清洗,比如剔除时间戳倒序的Tick。
- 订单簿快照的延迟:有些行情接口的订单簿快照是每隔100毫秒推送一次,但Tick是实时推送的。这时候你算出来的订单簿不平衡率其实是滞后的。我建议用Tick级别的成交数据来辅助判断。
- 基差的微观结构噪声:Tick级基差会有很多随机波动,不要每个小波动都去交易。我一般会加一个阈值,比如基差偏离超过0.5个Tick才触发信号。
一个小技巧:如果你没有高频Tick数据,可以用Level 2行情中的逐笔成交数据来近似模拟Tick级基差。虽然精度差一点,但至少比分钟级数据强得多。
好了,关于高频基差交易的核心内容就这些。记住:算得快是基础,看得准是核心,做得稳是关键。三者缺一不可。
公众号:蓝海资料掘金营,微信deep3321