23、交易量与风险度量:流动性风险。交易量衰减与市场冲击成本
一、流动性风险:藏在交易里的隐形杀手
做量化交易这些年,我越来越觉得流动性风险是个「沉默的杀手」。你策略回测跑得再漂亮,实盘一上,流动性不足直接教你做人。
什么叫流动性风险?说白了就是你想买的时候没人卖,你想卖的时候没人买。更可怕的是——你挂单进去,价格直接被打飞了。
我个人习惯把流动性风险拆成三个维度来看:
- 宽度(Breadth):买卖价差大不大。价差越大,你进出的成本越高。
- 深度(Depth):订单簿上挂了多少单。深度不够,大单进去直接穿层。
- 弹性(Resilience):价格偏离后多久能恢复。弹性差的品种,你一砸就回不来了。
核心观点:流动性风险不是「有没有」的问题,而是「够不够」的问题。你交易量越大,流动性风险越突出。
二、交易量衰减:为什么越做越难做?
你有没有发现一个现象?某个策略刚开始跑的时候,收益很漂亮。跑着跑着,收益就下来了。很多人以为是策略失效了,其实不全是。
我遇到过这种情况。2019年做某只小盘股的统计套利,回测年化30%。实盘前两周确实赚了,第三周开始滑点越来越大,到第四周基本不赚钱了。
原因是什么?交易量衰减。
交易量衰减指的是:随着你交易频率或规模的增加,市场对你的「容忍度」在下降。你每次进场,都在消耗市场的流动性。消耗多了,流动性就变差了。
这里有个关键指标——衰减系数。我一般这么算:
# 交易量衰减系数计算
def decay_coefficient(volume_today, volume_yesterday):
"""
volume_today: 今日成交量
volume_yesterday: 昨日成交量
"""
decay = (volume_yesterday - volume_today) / volume_yesterday
return decay
# 如果衰减系数持续大于0.15,说明流动性在恶化
# 我个人经验:超过0.2就要警惕了
为什么会衰减?三个原因:
- 信息摩擦:你的交易行为本身就在向市场传递信息。别人看到你在买,就不卖了,等着抬价。
- 订单簿消耗:你把买单挂在那里,吃掉了浅层的挂单,剩下的都是「硬骨头」。
- 对手方撤退:做市商或者高频交易者发现你在「扫货」,他们会主动撤单,让你吃不到量。
我的习惯:每次实盘前,我会先用小单测试一下市场的「衰减曲线」。比如先打1%的量,看滑点;再打2%,看滑点变化。如果滑点非线性增长,说明这个品种不适合大资金玩。
三、市场冲击成本:你每笔交易都在「交税」
市场冲击成本,就是你交易时「推动价格」付出的代价。你想想看,你买100股和买10万股,对价格的影响能一样吗?
冲击成本通常分为两部分:
- 瞬时冲击:下单瞬间造成的价格偏离。这个主要看订单簿的深度。
- 持久冲击:交易完成后,价格没有完全恢复的部分。这个跟市场情绪和流动性弹性有关。
我常用的冲击成本模型是Almgren-Chriss框架,简单说就是:
# 冲击成本估算(简化版)
def impact_cost(volume, avg_volume, spread, sigma):
"""
volume: 你的交易量
avg_volume: 日均成交量
spread: 买卖价差
sigma: 波动率
"""
# 参与率
participation = volume / avg_volume
# 瞬时冲击(线性部分)
instant_impact = 0.5 * spread * participation
# 持久冲击(非线性部分)
permanent_impact = sigma * (participation ** 0.5)
total_impact = instant_impact + permanent_impact
return total_impact
# 举个例子:
# 某股票日均成交1亿,你打1000万,参与率10%
# 价差0.1%,波动率2%
# 冲击成本 ≈ 0.5*0.1%*0.1 + 2%*0.316 ≈ 0.005% + 0.632% ≈ 0.637%
嗯,这里要注意。冲击成本不是线性的。你交易量翻倍,冲击成本可能翻三倍。我见过最夸张的一次,某只小盘股我打了3%的量,冲击成本直接吃掉了我一个月的预期收益。
避坑指南:我曾经犯过一个错误——只看平均冲击成本,忽略了极端情况。某天市场流动性骤降,我的冲击成本比平时高了5倍。从那以后,我每次交易前都会算一下「压力情景」下的冲击成本。
四、知识体系:流动性风险的核心逻辑
下面这张图是我自己总结的流动性风险管理框架,你看一眼就明白了:
五、实战中的应对策略
讲完理论,说说我怎么在实际交易中处理流动性风险的。我总结了四条:
| 策略 | 具体做法 | 适用场景 |
|---|---|---|
| 拆分订单 | 大单拆成小单,分批进场。我一般控制在参与率5%以内 | 流动性一般的品种 |
| 时间加权 | 用TWAP/VWAP算法,把交易量均匀分布在时间轴上 | 日间交易、大资金配置 |
| 流动性筛选 | 只交易日均成交额在1亿以上的品种 | 策略选股阶段 |
| 动态调整 | 实时监控冲击成本,超过阈值就暂停交易 | 高频率交易 |
我的经验:流动性风险管理不是「做不做」的问题,而是「做到什么程度」的问题。我见过太多人,策略回测年化50%,实盘一跑就亏。一问,全是流动性问题。你想想看,回测里你假设的是「无限流动性」,实盘里哪有这种事?
最后说一句。流动性风险这东西,你越早重视越好。别等到实盘亏钱了才想起来。嗯,今天就聊到这儿。