4. 买卖价差与交易成本:价差的构成与估算模型
做市商赚的是什么钱?说白了,就是买卖价差。但价差不是凭空产生的,它背后藏着三个成本:逆向选择成本、订单处理成本、存货持有成本。我刚开始做市时,以为价差就是简单的「低买高卖」,结果亏得挺惨。后来才明白,不理解价差的构成,就是在给市场送钱。
4.1 价差的三大构成
我们先拆开来看。每个价差,其实都是做市商在承担风险后的「补偿」。
4.1.1 逆向选择成本
这是最隐蔽、也最致命的一块。什么叫逆向选择?就是对手方比你更聪明。你想想看,如果有人突然砸一大笔买单进来,他是不是知道什么内幕消息?你作为做市商,接了他的单子,很可能下一秒价格就朝不利方向跳。
我在项目中遇到过一件事:某只小盘股,平时价差只有2个tick。突然有一天,买单特别猛,我习惯性地接了。结果半小时后公司发了利空公告,股价直接跌了5%。嗯,那笔单子让我亏掉了之前一周的利润。
逆向选择成本的计算,通常用价格冲击系数来量化。简单说,就是订单流不平衡时,价格会往哪个方向偏。
4.1.2 订单处理成本
这个好理解。交易所要收费吧?清算要收费吧?系统要维护吧?这些都是实打实的成本。我见过一些新手做市商,把价差压得特别低,结果算下来连手续费都覆盖不了。
订单处理成本包括:
- 交易所交易费(通常按成交金额的万分之几)
- 清算与结算费用
- 系统托管与数据费用
- 人力与运维成本
举个例子,如果每笔交易的手续费是0.01%,那么你的价差至少得大于0.02%才能不亏。因为一买一卖,手续费要交两次。
4.1.3 存货持有成本
做市商手里得有货吧?你持有股票,就得承担价格波动的风险。这个成本怎么算?用存货风险溢价来衡量。
我个人的习惯是,用VaR(在险价值)来估算存货成本。比如你持有100万市值的股票,日波动率2%,那么一天的潜在亏损就是2万。这个成本,必须摊到每一笔交易里。
4.2 有效价差与实现价差
报价价差是你能看到的,但真正成交的价差往往不一样。这就引出了两个重要概念。
4.2.1 有效价差
有效价差衡量的是实际成交价格与买卖中间价的差距。公式很简单:
有效价差 = 2 × |成交价格 - 中间价|
为什么用绝对值?因为不管是买还是卖,偏离中间价的部分都是成本。举个例子,中间价是10.00元,你以10.02元买入,有效价差就是0.04元。
有效价差比报价价差更真实。因为很多时候,大单会在价外成交,报价价差根本反映不了实际成本。
4.2.2 实现价差
实现价差更狠——它考虑的是成交后价格的变化。公式:
实现价差 = 2 × (成交价格 - 成交后中间价) × 方向符号
这个指标能告诉你:你赚到的价差,有多少被后续的价格变动吃掉了。如果实现价差远小于有效价差,说明逆向选择成本很高。
我记得有一次做回测,某只股票的报价价差只有0.02元,看起来流动性很好。但一算实现价差,居然是负的!说明每次成交后,价格都朝不利方向跑。嗯,这就是典型的「流动性幻觉」。
4.3 交易成本估算模型
实战中,我们需要一个模型来估算总交易成本。这里介绍两个最常用的。
4.3.1 线性成本模型
最简单的模型,假设成本与交易量成正比:
总成本 = 固定成本 + 可变成本 × 交易量
固定成本包括手续费、系统费用等。可变成本就是价差和冲击成本。这个模型适合做快速估算,但精度不够。
4.3.2 Almgren-Chriss 模型
这是业界标准。它把成本拆成三块:
- 市场冲击成本:你的订单对价格的瞬时影响
- 延迟成本:等待成交期间的价格波动
- 机会成本:未成交部分的潜在收益损失
代码实现起来也不复杂:
def almgen_chriss_cost(volume, spread, volatility, alpha=0.1):
"""
简化的Almgren-Chriss成本估算
volume: 交易量
spread: 当前价差
volatility: 波动率
alpha: 冲击系数(需根据历史数据校准)
"""
# 冲击成本
impact_cost = alpha * volume * spread
# 延迟成本(假设等待时间1分钟)
delay_cost = 0.5 * volatility * (1/1440)**0.5
# 机会成本(假设成交率80%)
opportunity_cost = 0.2 * spread
total = impact_cost + delay_cost + opportunity_cost
return total
4.4 实战中的价差调整策略
知道了价差的构成,怎么用?我分享几个经验:
- 波动率上升时,主动加宽价差:因为存货持有成本变高了
- 订单流不平衡时,收紧价差:避免被逆向选择吃掉
- 收盘前半小时,逐步收窄价差:降低隔夜风险
说白了,价差不是固定的,它是你根据市场状态动态调整的「风险定价」。我刚开始做市时,总想着一劳永逸地设一个固定价差。后来发现,市场分分钟教你做人。
嗯,今天就聊到这儿。下一章我们会深入讲订单簿的动态建模,到时候你会看到,价差只是冰山一角。
- 价差 = 逆向选择成本 + 订单处理成本 + 存货持有成本
- 有效价差反映实际成交成本,实现价差反映逆向选择
- Almgren-Chriss模型是估算总交易成本的工业标准
- 动态调整价差,比固定价差更有效