第十八章:多资产冲击成本:股票、期货、外汇、债券的冲击成本差异

做量化交易这些年,我接触过各种各样的资产类别。股票、期货、外汇、债券,每个品种都有自己的脾气。冲击成本这东西,说白了就是市场对你交易行为的「惩罚」。但不同市场的惩罚力度和方式,差别大得惊人。

我记得刚入行那会儿,以为冲击成本就是个简单的线性函数。后来在实盘中被狠狠教育了几次,才明白每个资产类别都有自己的「潜规则」。今天我就把这些年踩过的坑和总结的经验,一次性讲清楚。

一、股票市场的冲击成本特征

股票市场是我最早接触的战场。A股、港股、美股,我都做过。股票冲击成本的核心逻辑,其实就一句话:流动性分层严重

核心规律:大盘股冲击成本低,小盘股冲击成本高。这个差异可以相差10倍以上。

举个例子。我在做沪深300成分股时,100万的单子冲击成本大概在0.1%-0.3%之间。但换成创业板的小市值股票,同样100万,冲击成本可能直接飙到1%-2%。为什么会这样?

原因有三:

  • 订单簿深度不同:大盘股买卖盘口挂单厚,小盘股薄得像纸
  • 参与者结构不同:机构主导的股票,冲击成本更可预测
  • 信息不对称程度:小盘股更容易被「聪明钱」盯上

我个人习惯用Amihud非流动性指标来量化股票的冲击成本。公式很简单:

Amihud = 平均(|日收益率| / 日成交额)

这个值越大,说明单位成交额对价格的冲击越大。我在实盘中一般会设定一个阈值,超过这个值的股票直接过滤掉,不参与交易。

实战技巧:做股票T+0策略时,我建议把冲击成本拆成「买入冲击」和「卖出冲击」两部分。因为A股市场的买卖冲击往往不对称——买的时候容易推高价格,卖的时候容易砸出深坑。

二、期货市场的冲击成本特征

期货市场跟股票完全不同。它的冲击成本主要取决于合约的活跃度交割月份

我做过螺纹钢、铁矿石、原油、股指期货。最深的感受是:主力合约和非主力合约的冲击成本,简直是两个世界

合约类型 典型冲击成本(单边) 特点
主力合约(如螺纹钢RB主力) 0.05% - 0.2% 流动性好,滑点可控
次主力合约 0.3% - 1% 流动性骤降,小心被吃
远月合约 1% - 5% 基本没法做高频

我曾经在铁矿石远月合约上吃过亏。当时想做一个跨期套利,结果近月合约成交很顺畅,远月合约一进去就把价格打飞了。那次教训让我明白:期货的冲击成本,跟合约的生命周期强相关

另外,期货市场还有一个独特现象——涨跌停板附近的冲击成本会急剧放大。我建议在接近涨跌停板时,把订单拆得更碎,或者干脆暂停交易。

避坑指南:我曾经在股指期货上犯过一个错误——用市价单做IF主力合约,以为流动性好没问题。结果那天正好赶上交割日,流动性骤降,滑点直接吃掉了我一周的利润。后来我养成了一个习惯:交割日前三天,所有订单都改用限价单。

三、外汇市场的冲击成本特征

外汇市场是个「巨无霸」。日均交易量6万亿美元,按理说冲击成本应该很低。但实际情况要复杂得多。

外汇的冲击成本,核心取决于货币对交易时段

  • 主要货币对(EUR/USD, USD/JPY等):冲击成本极低,一般在0.01%-0.05%
  • 交叉盘(EUR/GBP等):冲击成本中等,0.05%-0.2%
  • 新兴市场货币(USD/TRY, USD/ZAR等):冲击成本高,0.5%-2%

我记得做EUR/USD时,1000万美金的单子,冲击成本几乎可以忽略。但换成土耳其里拉,100万美金就能把价格打出一个坑。

外汇市场还有一个特点:冲击成本在数据发布前后会剧烈波动。非农数据、CPI数据公布的那几分钟,流动性会瞬间消失,冲击成本可能放大10倍以上。

我的经验:做外汇高频交易时,我一般会在数据发布前30秒暂停所有策略。等市场稳定下来再重新进场。这个习惯帮我躲过了好几次「闪崩」。

四、债券市场的冲击成本特征

债券市场是最容易被忽视的领域。很多人以为债券波动小,冲击成本也小。其实不然。

债券的冲击成本,核心取决于券种剩余期限

债券类型 典型冲击成本 说明
国债(活跃券) 0.02% - 0.1% 流动性最好,但也要看期限
国债(老券) 0.2% - 0.5% 流动性差,买卖价差大
信用债(AAA) 0.1% - 0.5% 评级越高,流动性越好
信用债(AA及以下) 0.5% - 3% 基本只能做持有到期

债券市场最坑的地方在于:很多债券一天都成交不了几笔。你挂个单可能等一整天都没人理你。这种情况下,冲击成本的计算就变得很棘手。

我个人习惯用买卖价差作为冲击成本的代理变量。对于流动性差的债券,我还会额外加一个「流动性溢价」的惩罚项。

实战技巧:做债券策略时,我建议优先选择「活跃券」。虽然收益率可能低一点,但冲击成本小得多。算总账的话,活跃券反而更划算。

五、多资产冲击成本的统一框架

说了这么多,你可能会问:有没有一个统一的框架来比较不同资产的冲击成本?

答案是有的。我个人习惯用Kyle的Lambda指标来做跨资产比较:

Lambda = 价格变化 / 订单流不平衡量

这个指标衡量的是「单位订单流对价格的冲击程度」。数值越大,说明冲击成本越高。

我整理了一份不同资产的典型Lambda值(基于历史数据):

资产类别 典型Lambda值 流动性等级
EUR/USD 0.0001 - 0.0005 极高
标普500指数期货 0.001 - 0.005
沪深300成分股 0.01 - 0.05 中等
10年期国债活跃券 0.005 - 0.02 中高
小盘股 0.1 - 0.5
新兴市场货币 0.05 - 0.2

你想想看,EUR/USD的Lambda值只有小盘股的千分之一。这意味着同样规模的订单,在外汇市场几乎感觉不到冲击,但在小盘股上可能直接把价格打飞。

核心结论:做多资产策略时,一定要把冲击成本的差异纳入仓位管理。流动性好的资产可以多配,流动性差的资产必须严格控制单笔规模。

六、实战中的冲击成本管理

最后,分享几个我在实战中总结的经验:

  1. 分资产设定冲击成本预算:股票0.3%,期货0.1%,外汇0.05%,债券0.2%。超过预算就暂停交易
  2. 用VWAP/TWAP算法拆单:对于冲击成本高的资产,一定要用算法交易
  3. 关注市场微观结构:订单簿的深度、买卖价差、挂单撤单频率,这些都能提前预警冲击成本的变化
  4. 建立冲击成本数据库:我每笔交易都会记录实际冲击成本,用来修正模型参数

最后提醒:冲击成本不是静态的。市场环境变了,冲击成本也会变。比如2020年3月美股熔断期间,所有资产的冲击成本都放大了10倍以上。所以,定期更新你的冲击成本模型,别用去年的参数做今年的交易。

多资产冲击成本对比框架 冲击成本建模 股票 期货 外汇 债券 股票特征 • 流动性分层严重 • 大盘/小盘差异大 • 买卖冲击不对称 期货特征 • 主力/非主力差异大 • 交割日流动性骤降 • 涨跌停附近放大 外汇特征 • 主要货币对极低 • 新兴市场波动大 • 数据发布时放大 债券特征 • 活跃券/老券差异 • 信用评级影响大 • 流动性分层明显 统一框架:Kyle's Lambda + 流动性溢价

这张图把四个资产类别的冲击成本特征和统一框架串在了一起。你可以把它当作一个快速参考。做策略的时候,先定位你的资产属于哪一类,再套用对应的冲击成本模型。

嗯,多资产冲击成本这个话题,今天就聊到这儿。记住一句话:不了解冲击成本,就别谈量化交易。这是我从无数次亏损中换来的教训。

无相订单流研究社 微信Lucian808555