技术博客

Delta 对冲的执行:标的对冲的批量下单与滑点控制

第 128 / 141 篇 · 2026-08-25 · secfin · 期权对冲执行算法

期权做市商的报价引擎(《做市报价引擎》篇)挂出去的是一张张非线性合约,留在账上的是一堆 Delta 敞口。标的每动一下,组合的 Delta 就漂移一点;敞口不处理,做市的利润就变成方向性赌大小的亏损。所以做市商的交易系统里跑得最勤的不是报价任务,是对冲任务:全天候盯着一个数——组合净敞口 $E$(所有期权的 Delta 加总,加上已建现货/期货头寸),只要 $|E|$ 超过阈值,就下一张标的单把它打回去。本篇讲这个"打回去"的执行工程。

对冲目标的计算

组合净敞口的实时计算:

$$ E = \sum_i q_i \cdot \Delta_i \cdot m_i + Q_{spot} $$

$q_i$ 是合约 $i$ 的净持仓(正多负空),$\Delta_i$ 是该合约的 Delta,$m_i$ 是合约乘数(ETF 期权常见 10000),$Q_{spot}$ 是已持有的标的对冲头寸。$\Delta_i$ 本身随标的价格和波动率变动,所以 $E$ 即使在零成交时也在漂移——这是期权对冲和股票对冲的本质区别:对冲目标本身是个移动的靶。

计算链的延迟决定对冲质量。行情进来到 $\Delta_i$ 更新,BS 公式反解加上曲面插值(《波动率曲面》篇),毫秒级能算完;瓶颈通常在行情到撮合持仓更新的链路。成交回报延迟 1 秒,这 1 秒里 $E$ 就是失真的。工程上的折中:成交回报到达前,按申报量预估持仓乐观更新 $E$,回报到达后校正,两者差额触发补偿对冲。这和《成交回报与确认:回报流水的幂等设计》篇的幂等处理是孪生问题——对冲系统消费的是同一条回报流。

对冲阈值的设定:带宽而不是点

理论上 $E \ne 0$ 就该对冲到零,实际用带宽(band):

$$ |E| > H \quad\Rightarrow\quad \text{对冲到} \ |E| \le H/2 $$

带宽太小,对冲频率爆炸,手续费和滑点吃掉全部价差利润;太大,gamma 敞口时间拉长,一次标的大跳变直接打穿日内止损。带宽的经验设定和组合的 Gamma 挂钩:未对冲时长 $\Delta t$ 内,Delta 的漂移量级是 $\frac{1}{2}\Gamma (\Delta S)^2$,让 $H$ 大致覆盖"两次对冲之间预期漂移的 $z$ 倍标准差":

$$ H \approx z \cdot \Gamma_{total} \cdot \sigma_S \cdot S \cdot \sqrt{\Delta t_{expected}} $$

$\Delta t_{expected}$ 是预期对冲间隔。近月平值期权 Gamma 大,$H$ 该收得紧;远月深度虚值 Gamma 小,$H$ 可以放宽——按合约桶(bucket)分档设带宽是成熟系统的标配,而不是全组合一个阈值。

执行方式的选择

对冲单走什么通道,取决于单子的规模和市场的盘口深度:

  • 小单直接限价吃盘口:$|E|$ 不到几百张标的时,直接对手价限价单,求快;
  • 大单拆单:$E$ 上万张时(标的停牌复牌、波动率跳空后的集中调仓常见),吃盘口会打出几个跳变的滑点,要用 TWAP/VWAP 思路拆到几分钟内执行(《量化接入:API 柜台与算法交易》篇的执行算法在这里复用);
  • 期货替代:用股指期货对冲 ETF 期权敞口时,基差风险和保证金效率要一起算。期货对冲省资金(保证金 vs 全额标的款),但引入基差漂移 $E$ 之外的新敞口项,系统要在 $E$ 的计算里显式建模基差项并在调仓时校验。

选择逻辑通常固化成一个规则表:单量/盘口深度比 < 某比例走直连,超过走拆单,触发条件写进配置。

滑点度量:对冲质量的闭环

对冲做得好不好,不能只看过没过风控限额,要量化。每笔对冲单记三个数:下单时对手价 $P_{mid}$、成交 VWAP $P_{exec}$、成交后 1 分钟中间价 $P_{1min}$。执行滑点 $= P_{exec} - P_{mid}$(买为正),趋势成本 $= P_{1min} - P_{mid}$——前者是冲击成本,后者是等待和拆单期间市场离开你的成本。两者按日按合约桶聚合,和做价差收入的账本对账:价差毛利 - 手续费 - 执行滑点 - 趋势成本 = 净做市利润。趋势成本持续为负说明带宽设太宽(敞口留太久),执行滑点大说明拆单算法或通道选择有问题。

Delta 对冲闭环:敞口监测到滑点归因 行情 + 持仓 成交预估更新 净敞口 E 按合约桶带宽 H 执行决策 直连 / 拆单 / 期货 标的下单 回报回填 滑点归因 执行滑点 + 趋势成本 参数回校 带宽 / 通道规则 近月平值 Gamma 大 → 带宽收紧;远月深虚 Gamma 小 → 带宽放宽

和报价引擎的联动

对冲系统和报价系统共享同一个库存状态。对冲成交改变了 $Q_{spot}$,$E$ 归零的同时,库存偏差项 $\Delta z$ 也该回落——两个系统的状态同步如果不同步,会出现报价还在引导、对冲已经打完的互相打架。常见做法是把组合状态(持仓、敞口、已对冲量)收敛到一个状态总线,报价引擎和对冲执行器都是订阅方,各自只写自己的执行结果。这是低延迟系统里"单一事实来源"原则最朴素的一次应用。

Delta 对冲的全部工程目标就一句话:让 $E$ 的波动停留在带宽内、让每次出带宽的回程尽量便宜。带宽设计决定对冲频率,执行算法决定单程成本,滑点归因决定参数迭代方向——三件事都做完,做市的利润表才是可解释的数字。