3、买卖价差(Bid-Ask Spread)的微观结构:价差构成、价差与波动率的关系、价差套利策略
买卖价差,说白了就是你想买就得比现价高一点,想卖就得比现价低一点。这个差价,就是市场的「摩擦力」。我做了这么多年跨市场套利,最深的体会就是:价差不是噪声,它里面藏着大量信息。
今天我们就把它拆开来看。看看价差到底由什么组成,它和波动率怎么纠缠,以及我们怎么利用它来赚钱。
3.1 价差的三大构成
很多人以为价差就是做市商赚的辛苦费。其实没那么简单。我习惯把价差拆成三块:逆向选择成本、订单处理成本、存货持有成本。这三块,每一块都对应着不同的市场行为。
3.1.1 逆向选择成本
这是最隐蔽的一块。你想想看,做市商挂单的时候,最怕什么?怕遇到「知情交易者」——那些知道内幕消息的人。一旦有人比你更懂这只股票的真实价值,你挂的单子就会被「吃掉」。
我在做美股跨市场套利时遇到过这种情况。某只股票在A股和港股之间价差突然收窄,我以为是套利机会,结果一查,是有人在港股那边提前知道了财报数据。嗯,那次我亏了不少。
逆向选择成本,本质上就是做市商为了保护自己而加上的「信息不对称溢价」。市场越不透明,这个成本就越高。
3.1.2 订单处理成本
这个好理解。交易所要收费,清算要收费,系统要维护。这些都是实打实的成本。做市商不是做慈善的,这些成本最终都会体现在价差里。
我建议你关注一下不同交易所的费率结构。比如,有些交易所对做市商有返佣,那它的价差就会比没有返佣的交易所窄。这个细节,在跨市场套利中特别重要。
3.1.3 存货持有成本
做市商手里拿着股票,是有风险的。万一价格暴跌呢?万一流动性枯竭呢?这些风险,都需要用价差来补偿。
存货持有成本跟持仓时间直接相关。持仓越久,成本越高。所以你会发现,临近收盘的时候,很多做市商会主动收窄价差——他们不想把仓位过夜。
| 成本类型 | 核心驱动因素 | 跨市场套利中的影响 |
|---|---|---|
| 逆向选择成本 | 信息不对称程度 | 价差越大,套利空间越小 |
| 订单处理成本 | 交易所费率、系统成本 | 决定套利的最低门槛 |
| 存货持有成本 | 持仓时间、波动率 | 影响套利持仓周期 |
3.2 价差与波动率的关系
这个关系,我做了十年交易才真正搞明白。简单说就是:波动率越高,价差越宽。但背后的逻辑,比这句话复杂得多。
为什么会这样?因为波动率上升时,做市商面临的不确定性增加了。逆向选择成本上升,存货持有成本也上升。做市商只能通过扩大价差来保护自己。
我记得2015年A股股灾的时候,很多股票的价差从平时的0.1%直接飙到1%以上。那时候做跨市场套利,基本就是送人头。价差太宽,套利空间全被吃掉了。
这里有一个实用的规律:价差和波动率之间,存在一个非线性关系。波动率低的时候,价差变化不大;但波动率一旦突破某个阈值,价差会急剧扩大。这个阈值,我建议你用历史数据去拟合一下,每个市场都不一样。
3.3 价差套利策略
好了,前面讲了那么多理论,现在来点干货。价差套利,说白了就是利用价差的「不合理」来赚钱。但要注意,这里的「不合理」是相对的。
3.3.1 跨市场价差套利
这是最经典的。比如同一只股票在A股和港股之间,价差应该在一个合理范围内。如果A股比港股贵太多,那就做空A股、做多港股。
但这里有个坑:价差可能长期不合理。我曾经在A股和H股之间做套利,价差偏离了理论值5%,我以为稳了。结果等了两个月,价差不但没回归,反而扩大到8%。嗯,那次教训很深刻。
所以我现在做跨市场价差套利,一定会加一个条件:价差偏离必须超过历史均值的2倍标准差。低于这个阈值,我不进场。
3.3.2 订单流不平衡套利
这个策略更微观。它利用的是订单簿上的短期不平衡。比如,买单突然大量涌入,卖单跟不上,做市商就会被迫提高卖价。这时候,你可以提前在卖单那边挂单,等价格回归。
我建议你关注一下Level 2数据。只看买卖价差是不够的,你得看到订单簿的深度。比如,买一和卖一之间的价差是0.01元,但买一只有100股,卖一有10000股。这种情况下,价差虽然窄,但实际流动性很差。
3.3.3 统计套利中的价差因子
这个策略适合做量化的人。把价差作为一个因子,加入到你的统计套利模型中。比如,你可以构建一个「价差动量因子」——当价差从宽变窄时,说明市场情绪在变化,可能有套利机会。
我习惯用以下代码来提取价差因子:
# 计算价差因子
def calc_spread_factor(bid_prices, ask_prices):
"""
bid_prices: 买一价序列
ask_prices: 卖一价序列
"""
spreads = ask_prices - bid_prices
# 计算价差的相对变化率
spread_momentum = (spreads - spreads.shift(5)) / spreads.shift(5)
# 标准化
spread_factor = (spread_momentum - spread_momentum.mean()) / spread_momentum.std()
return spread_factor
这个因子在流动性好的市场中效果不错。但在流动性差的市场,比如某些小盘股,价差变化太随机,这个因子基本没用。
3.4 知识体系总览
下面这张图,是我自己总结的价差微观结构知识体系。你可以把它当作一个思维导图来用。
最后说一句。价差这个东西,你研究得越深,越觉得它有意思。它不只是买卖之间的那点差价,它是市场所有参与者的博弈结果。做跨市场套利,如果你能读懂价差背后的微观结构,你就比别人多了一双眼睛。