2. 市场微观结构:订单簿深度、买卖价差、流动性分层、交易所撮合机制差异
做交易所间套利,说白了就是在不同市场之间「搬砖」。但砖不是你想搬就能搬的——你得先搞清楚每个市场的「地基」长什么样。这个地基,就是市场微观结构。
我刚开始做套利那会儿,踩过一个大坑。当时看到两个交易所价差很大,兴奋得不行,直接上了大仓位。结果呢?订单一进去,价格瞬间滑了十几个点,价差没了,我还亏了手续费。后来我才明白——你看到的价差,不一定是你吃得到的价差。
这一章,我们就来拆解一下市场微观结构的四个核心要素。搞懂了这些,你才算真正入了套利的门。
2.1 订单簿深度:你的对手盘到底有多厚?
订单簿深度,说白了就是「在某个价格附近,有多少人愿意跟你做对手盘」。深度越厚,你吃进去的量越大,价格波动越小。
我个人习惯用「深度图」来快速判断一个市场的流动性状况。你看下面这张图:
你看,买盘和卖盘像两座山。山越陡,说明深度越薄;山越平缓,深度越厚。做套利的时候,我一般会看「买1到买5」和「卖1到卖5」的总量。如果总量不到我计划交易量的10倍,我就会非常小心。
2.2 买卖价差:你的隐性成本
买卖价差(Spread),就是买一价和卖一价之间的差值。这个差值,是你每做一笔交易必须付出的「过路费」。
举个例子:
- 交易所A:买一100.00,卖一100.02,价差0.02
- 交易所B:买一100.01,卖一100.04,价差0.03
表面上看,A和B之间好像有套利空间——你在A买,在B卖,能赚0.01。但别忘了,你买的时候要付出价差,卖的时候也要付出价差。一来一回,0.02 + 0.03 = 0.05的成本,反而亏了。
我曾经犯过这个错误。看到价差0.01,觉得稳赚,结果算完手续费和价差成本,倒亏0.03。嗯,从那以后,我每次算套利空间,都会把价差成本乘以2算进去。
2.3 流动性分层:别只看表面
流动性不是均匀分布的。你想想看,一个市场里,有做市商、有散户、有量化基金、有套利者……他们的行为模式完全不同。
我一般把流动性分成三层:
| 层级 | 特征 | 典型参与者 | 对套利的影响 |
|---|---|---|---|
| 表层流动性 | 订单簿前几档,量小价优 | 高频做市商、散户 | 容易被吃掉,不适合大单 |
| 中层流动性 | 中间几档,量中等 | 量化基金、中型交易者 | 适合中等规模套利 |
| 深层流动性 | 远离最优价,量大价差大 | 机构、对冲基金 | 大单必须考虑,但成本高 |
为什么会这样分层?说白了,不同参与者对价格的敏感度不同。做市商愿意在最优价附近提供流动性,但量不大。机构投资者不在乎多等几个tick,但一出手就是大单。
我记得有一次,我在一个交易所看到表层流动性很厚,以为可以放心交易。结果一进去,发现那些单子全是「幽灵单」——一碰就撤。这就是典型的流动性假象。所以我现在都会用「订单簿快照」对比「成交记录」,看看那些挂单到底是不是真实的。
2.4 交易所撮合机制差异:规则决定策略
不同交易所的撮合机制,差别比你想象的大得多。我整理了几个关键差异点:
2.4.1 价格优先 vs 时间优先
大部分交易所都是「价格优先、时间优先」。但有些交易所(比如某些DEX)用的是「价格优先、按比例分配」。这意味着,如果你和另一个交易者同时挂同一个价格,你们会按比例分到订单,而不是谁先到谁全吃。
这对套利的影响很大。在「时间优先」的交易所,你拼的是速度。在「按比例分配」的交易所,你拼的是仓位大小。我个人的经验是:做高频套利,选时间优先的交易所;做中低频大单套利,选按比例分配的交易所。
2.4.2 撮合频率
连续竞价 vs 定期竞价(比如每秒一次)。连续竞价的交易所,订单簿实时更新,适合高频策略。定期竞价的交易所,订单簿只在撮合时刻更新,中间的价格变化都是「假象」。
我曾经在定期竞价的交易所吃过亏。看到价差很大,赶紧下单,结果等到撮合时刻,价格已经变了。嗯,从那以后,我每次接入新交易所,第一件事就是看它的撮合频率。
2.4.3 订单类型支持
有些交易所支持「冰山订单」(只显示部分量),有些支持「止损限价单」,有些只支持最简单的限价单和市价单。这些差异直接决定了你能用什么策略。
2.5 实战:如何评估一个交易所的微观结构?
说了这么多理论,来点实际的。我一般用下面这个流程来评估一个新交易所:
- 拉取订单簿快照:至少拉取前20档的挂单数据
- 计算价差和深度:算出买卖价差,以及各档位的累积深度
- 分析流动性分层:看表层、中层、深层的量分布是否合理
- 测试撮合机制:用小单测试成交速度、滑点、以及是否按比例分配
- 对比历史数据:看不同时间段的微观结构是否稳定
下面是一个简单的Python代码示例,用来计算订单簿的关键指标:
def analyze_orderbook(bids, asks):
"""
bids: [[price, volume], ...] 买盘
asks: [[price, volume], ...] 卖盘
"""
best_bid = bids[0][0]
best_ask = asks[0][0]
spread = best_ask - best_bid
# 计算前5档累积深度
bid_depth_5 = sum([b[0]*b[1] for b in bids[:5]])
ask_depth_5 = sum([a[0]*a[1] for a in asks[:5]])
# 计算价差百分比
spread_pct = spread / ((best_bid + best_ask) / 2) * 100
return {
'spread': spread,
'spread_pct': spread_pct,
'bid_depth_5': bid_depth_5,
'ask_depth_5': ask_depth_5,
'depth_ratio': bid_depth_5 / ask_depth_5 if ask_depth_5 > 0 else None
}
这个函数虽然简单,但我在实际项目中一直在用。它帮我快速筛选出「不值得做」的交易所——比如价差超过0.1%的,或者深度比严重失衡的。
好了,这一章的内容就到这里。搞懂了订单簿深度、买卖价差、流动性分层和撮合机制差异,你就有了评估套利机会的基本功。下一章,我们会把这些知识用起来,开始设计真正的套利策略。
公众号:蓝海资料掘金营,微信deep3321