← 返回模块
Q2.6.5.3beta 可读 · 未来付费内容校验中内容版本 2026-05-26

机器学习用于执行与对冲:Almgren-Chriss 与深度对冲

2.6.5 · 金融量化中的机器学习 · 数学与统计能力

钩子:一笔 5000 手的 IF 单与一个等待你的 4 小时

周二上午 10:00,你的私募(private fund)风控屏上闪着一个标红:旗下中证500 多因子产品需要在午盘后到收盘前,把一个 5000 手的 CFFEX IF(沪深300 股指期货, stock-index future)空头头寸全部减仓。合约乘数 ¥300/点,IF 当前 3,520 点,名义敞口约 ¥5.28 亿。盘面上的 IF 主力 5 档队列总厚度不到 1500 手,你不能挂市价单也不能等;一根直接打出去的市价腿会被 涨跌停 板和市场冲击(market impact)联手吃掉至少 30 个基点。你要的是一个​​执行​​算法。问题分三层:(1)Almgren-Chriss 闭式最优轨迹给的是不带行情自适应的「静态计划」基线,先把它当 1990 年代旧学派的对照组;(2)Nevmyvaka-Feng-Kearns 把这个基线推进到「带行情自适应的强化学习」,用 ITCH/Level-2 实时订单流(order flow)信号做条件;(3)随后,期权台在 50ETF/300ETF/500ETF 期权(ETF options)上的对冲问题同样有结构性相似的政策梯度解——Buehler-Gonon-Teichmann-Wood 的深度对冲(Deep Hedging)。这一课把这三件事串起来。

Almgren-Chriss 闭式最优执行

Almgren-Chriss(2000, J. Risk)给出最干净的执行模型。设一笔母单(parent order)规模 NN 股,执行期 TT 离散成 KK 个区间,每个区间 τ=T/K\tau = T/K 长。两条市场冲击通道:​​永久冲击​​(线性)g(v)=γvg(v) = \gamma v 作用于成交后的价格,其中 vv 是当期交易速率(股/区间)、γ\gamma 是永久冲击系数;​​临时冲击​​(线性近似)h(v)=ηvh(v) = \eta v 作为每笔成交的瞬时执行成本,η\eta 为临时冲击系数。价格动力学:

Sk+1=Skγ(nk/τ)τ+στZk,S_{k+1} = S_k - \gamma \cdot (n_k / \tau) \cdot \tau + \sigma \sqrt{\tau} \, Z_k,

其中 nkn_k 是第 kk 区间成交量、ZkN(0,1)Z_k \sim \mathcal{N}(0, 1)。效用为均值-方差:E[cost]+λVar(cost)\mathbb{E}[\text{cost}] + \lambda \mathrm{Var}(\text{cost}),λ\lambda 是风险厌恶系数。通过动态规划(或等价的连续时间 HJB)解出闭式最优剩余库存轨迹:

xk=Nsinh(κ(Tk))sinh(κT),κ=λσ2η.x_k = N \cdot \frac{\sinh(\kappa(T - k))}{\sinh(\kappa T)}, \qquad \kappa = \sqrt{\frac{\lambda \sigma^2}{\eta}}.

κ\kappa 是价格风险与冲击成本的权衡参数。两个极限:λ0\lambda \to 0(风险中性)给到匀速执行 xk=N(1k/T)x_k = N(1 - k/T),即 时间加权平均价(TWAP, time-weighted average price)风格;λ\lambda \to \infty 给到立即清仓 x1=0x_1 = 0,几乎所有量在第一段成交完。中间过渡:风险厌恶越高,前置执行越快,冲击成本越高但价格风险敞口越低。​​关键缺陷​​:Almgren-Chriss 政策是非自适应的——计划在 t=0t=0 算出,之后不更新,完全不利用实时行情。

​示意图(Almgren-Chriss 轨迹)​​:横轴时间 0T0 \to T,纵轴剩余库存 xk/Nx_k / N。三条曲线:(a)λ\lambda 很小,接近直线下降(成交量加权平均价(VWAP)/TWAP 风格);(b)λ\lambda 中等,凹向下、前置执行;(c)λ\lambda 很大,几乎立即清空。各曲线旁标对应的 κ\kappa 值。

Formula Explorer

sinh(k*(1-x)) / sinh(k)

(把 xx 设为已用执行进度比例 k/Tk/Tkk 设为 κT\kappa T,曲线给你剩余库存比例。κT\kappa T 越大越前置。)

Nevmyvaka-Feng-Kearns:执行的强化学习首作

Nevmyvaka-Feng-Kearns(2006, ICML)第一次把表格型 Q-learning 用在真实 NASDAQ TotalView ITCH 数据上做最优执行。MDP 公式化:状态 = (剩余时间,剩余库存,订单簿特征如 买卖价差(bid-ask spread)/ 队列深度 / 签名订单流),动作 = 限价单挂单深度(多激进)或市价单触发,奖励 = IS-\mathrm{IS},其中 实施差额(implementation shortfall, Perold 1988)是

IS=k(PkexecP0arrival)nk.\mathrm{IS} = \sum_k (P_k^{\text{exec}} - P_0^{\text{arrival}}) \cdot n_k.

P0arrivalP_0^{\text{arrival}} 是母单到达时的市价,PkexecP_k^{\text{exec}} 是第 kk 笔子单成交价。Q-表在历史 ITCH 数据上做轨迹采样,学到的政策在样本外稳定超越 Almgren-Chriss、TWAP、VWAP。两个原因:(a)​​自适应​​——政策条件在实时订单簿,而不仅仅是流逝时间与剩余库存;(b)​​奖励信号丰富​​——每一微秒的订单簿演化都是信息,与 alpha 生成里稀疏的日收益相比,RL 的反馈密度高几个数量级。

后 2015 年的深度 RL 扩展:DQN、DDPG、PPO、SAC 接管表格 Q,订单簿状态走向高维表征。九坤、鸣石、衍复、幻方、Renaissance、Two Sigma、Citadel、Jane Street、Jump Trading、Hudson River Trading、Tower Research 在执行台都跑深度 RL 是行业共识(具体算法当然是机密的)。​​关键观察​​:执行是 RL 在量化金融里​​唯一​​真正规模化落地的场景——奖励信号密、回测可信(可在历史 ITCH/Level-2 上做带反事实成交建模的回放)、模拟-到-现实(sim-to-reality)的差距可控。RL 用在 alpha 生成上为什么不规模化?反过来——奖励稀疏、sim-to-reality 差距大。

CN 端的执行特殊性

CFFEX IF 执行的 CN 独有维度:涨跌停(limit-up / limit-down, 主板 ±10%、创业板/科创板/STAR Market(科创板) / ChiNext(创业板) ±20%)在重大宏观事件后产生整段不可成交带,Almgren-Chriss 闭式解里的高斯价格扰动假设直接失效;印花税(stamp duty, 现金股票卖出方 0.05%,期货零)主导股票端执行成本,期货端反而很干净;手续费/经手费/过户费组合给出与美国不同的成本曲线。SSE 50ETF 期权(2015 上市)、SSE 300ETF 期权(2019)、SZSE 500ETF 期权(2022)上的对冲——下一节的 Deep Hedging 是 中信证券 / 中信建投 / 国泰君安 / 招商证券 的卖方衍生品台与 灵均 / 衍复 / 黑翼 / 鸢飞 / 明汯 的私募期权专做盘正在采用的框架。

Deep Hedging(深度对冲):期权头寸的政策梯度对冲

Buehler-Gonon-Teichmann-Wood(2019, Quant. Finance 19(8):1271–1291)给出现代政策梯度框架,直接处理含 交易成本(transaction cost)与不完备市场(jump、随机波动、非高斯)的动态对冲(dynamic hedging)。设衍生品头寸到期收益 Φ(ST)\Phi(S_T)(如香草 European call(欧式期权)max(STK,0)\max(S_T - K, 0))。在 t0,t1,,tN=Tt_0, t_1, \ldots, t_N = T 各时点动态调整对冲手数,选 h(tk,Stk,hk1)h(t_k, S_{t_k}, h_{k-1}) 最小化终端 P&L 的风险测度。终端 P&L:

P&LT=Φ(ST)+k=0N1hθ(tk,Stk,hk1)(Stk+1Stk)k=0N1c(hkhk1,Stk),\mathrm{P\&L}_T = -\Phi(S_T) + \sum_{k=0}^{N-1} h_{\theta}(t_k, S_{t_k}, h_{k-1}) \cdot (S_{t_{k+1}} - S_{t_k}) - \sum_{k=0}^{N-1} c(h_k - h_{k-1}, S_{t_k}),

其中 c()c(\cdot) 是交易成本函数(包含 SSE/SZSE ETF 期权印花税豁免 + 经手费 + 做市商点差)。把 hh 参数化为深度神经网,典型是 2-3 层 MLP hθh_\theta,通过模拟路径上的 SGD 训练,最小化终端 P&L 的相干风险测度——最常用的是 条件在险价值(conditional VaR, CVaR / 期望损失,置信水平 α[0.05,0.10]\alpha \in [0.05, 0.10])。

CVaR 的 Rockafellar-Uryasev(2000)凸优化表示让它变得可用 SGD 上行的目标:

CVaRα(L)=minv{v+1αE[max(Lv,0)]}.\mathrm{CVaR}_\alpha(L) = \min_v \Bigl\{ v + \frac{1}{\alpha} \mathbb{E}[\max(L - v, 0)] \Bigr\}.

​特例​​(零摩擦极限):Black-Scholes 假设 + 零交易成本 + 连续再平衡,hθh_\theta 在训练后会收敛到 Black-Scholes 模型(Black-Scholes)Delta。这是 Deep Hedging 的健康检查——把 希腊字母(Greeks)中的 Delta(德尔塔对冲, delta hedging)、伽马(gamma)、维加(vega)的经典对冲作为「零摩擦极限」恢复出来。带交易成本时,最优对冲比经典 BS Delta 小(过度对冲更贵)且依赖当前对冲位置——出现「不交易带」(no-trade band)的迟滞效应。带跳跃-扩散动力学时,Deep Hedging 学到比「BS Delta + Vega + Gamma」对冲更丰富的政策。

​示意图(对冲比 vs 标的价格)​​:横轴为价值度 S/KS/K,纵轴为对冲手数 hθh_\theta。两条曲线:(a)零交易成本下,与 Black-Scholes Delta 重合;(b)有限交易成本下,在 BS Delta 上下一个迟滞带——当前对冲位置不变,直到 BS Delta 漂出某个区间。J.P. Morgan(Hans Buehler 在 JPM 期间共同发表论文)已经把这套框架内置在它的衍生品定价-对冲工具栈里;Goldman Sachs FICC、伦敦多家买方期权台、CN 端的 SSE/SZSE 期权做市商也在落地。

工作示例:Almgren-Chriss 在 100 万股母单上的数值

母单 N=1,000,000N = 1{,}000{,}000 股,执行期 T=6.5T = 6.5 小时 = 23,400 秒,年化波动 σ=30%\sigma = 30\%,λ=106\lambda = 10^{-6},γ=107\gamma = 10^{-7},η=105\eta = 10^{-5}

  1. ​算 κ\kappa​​​:把 σ\sigma 换成秒频:σsec2=(0.3)2/(25223400)1.53×108\sigma_{\text{sec}}^2 = (0.3)^2 / (252 \cdot 23400) \approx 1.53 \times 10^{-8}κ=λσsec2/η=1061.53×108/1051.53×1093.9×105\kappa = \sqrt{\lambda \sigma_{\text{sec}}^2 / \eta} = \sqrt{10^{-6} \cdot 1.53 \times 10^{-8} / 10^{-5}} \approx \sqrt{1.53 \times 10^{-9}} \approx 3.9 \times 10^{-5} 每秒。κT=3.9×105234000.92\kappa T = 3.9 \times 10^{-5} \cdot 23400 \approx 0.92
  2. ​算 xkx_k​​​:sinh(0.92)1.046\sinh(0.92) \approx 1.046xT/4x_{T/4}:sinh(0.69)/sinh(0.92)0.745/1.0460.71\sinh(0.69)/\sinh(0.92) \approx 0.745/1.046 \approx 0.71xT/2x_{T/2}:sinh(0.46)/1.0460.475/1.0460.45\sinh(0.46)/1.046 \approx 0.475/1.046 \approx 0.45x3T/4x_{3T/4}:sinh(0.23)/1.0460.232/1.0460.22\sinh(0.23)/1.046 \approx 0.232/1.046 \approx 0.22
  3. ​与 TWAP 对比​​:TWAP 在 k=T/4,T/2,3T/4k = T/4, T/2, 3T/4 给的剩余库存比例分别是 0.75、0.50、0.25。Almgren-Chriss 在低风险厌恶下与 TWAP 几乎重叠,前置很轻。
  4. ​成本含义​​:把 λ\lambda 拉到 10510^{-5},κT\kappa T 跳到 2.9\sim 2.9,xT/2x_{T/2} 落到约 0.120.12——几乎完成。代价是临时冲击成本变大、二阶矩内的价格风险变小。

Exercise

你在 CFFEX 上需要把 5000 手 IF 多头在 4 小时(14,400 秒)内平掉。秒频波动率 σsec1.0×104\sigma_{\text{sec}} \approx 1.0 \times 10^{-4}(对应年化约 25%),λ=5×106\lambda = 5 \times 10^{-6},η=2×105\eta = 2 \times 10^{-5}

(i) 算 κ\kappaκT\kappa T

(ii) 算 xkx_kk=T/3k = T/3k=2T/3k = 2T/3 时的剩余库存。

(iii) 把 λ\lambda5×1065 \times 10^{-6} 提到 5×1045 \times 10^{-4}(风控更紧,更怕隔夜风险)。给一句直觉判断:轨迹会更前置还是更平?

提示
κ=λσsec2/η=5×106108/2×105=2.5×1095.0×105\kappa = \sqrt{\lambda \sigma_{\text{sec}}^2 / \eta} = \sqrt{5 \times 10^{-6} \cdot 10^{-8} / 2 \times 10^{-5}} = \sqrt{2.5 \times 10^{-9}} \approx 5.0 \times 10^{-5};κT=5.0×105144000.72\kappa T = 5.0 \times 10^{-5} \cdot 14400 \approx 0.72
提示
xk=Nsinh(κ(Tk))/sinh(κT)x_k = N \sinh(\kappa(T-k))/\sinh(\kappa T)sinh(0.72)0.787\sinh(0.72) \approx 0.787xT/3x_{T/3}:sinh(0.48)/0.7870.498/0.7870.63\sinh(0.48)/0.787 \approx 0.498/0.787 \approx 0.63,即 5000 手剩 3150 手左右。x2T/3x_{2T/3}:sinh(0.24)/0.7870.242/0.7870.31\sinh(0.24)/0.787 \approx 0.242/0.787 \approx 0.31,即剩 1550 手。λ\lambda 提两个数量级 κT7.2\Rightarrow \kappa T \approx 7.2 \Rightarrow 大部分量在前段成交,轨迹明显前置。

预测层 vs 控制层的统一

最后一个引子:lesson 1 和 lesson 2 是预测层(预测明日收益,把订单交给一个独立的执行层),本课是控制层(预测 + 执行作为一个联合政策)。当两者联合优化,小 alpha 可以比大 alpha 更值钱——如果小 alpha 执行成本低、大 alpha 执行成本高。这是因子研究与交易现代化的统一。市场做市/最优报价(market making, Avellaneda-Stoikov 2008, Cartea-Jaimungal-Penalva 2015)是 RL 在金融的第三个传统应用面,本课仅一段提及;详细算法在 Track 4 / 4.4 执行。

下一课接什么

到这里 lesson 1(验证)+ lesson 2(信号)+ lesson 3(执行/对冲)凑齐了从研究室到下单台的全链。下一课覆盖剩下的:模型上线之后到退役的整个生命周期——模型风险管理(MRM, model risk management)、SR 11-7 / 私募投资基金监督管理条例 治理框架、覆盖偏移与漂移监测(PSI、Jensen-Shannon、Page-Hinkley CUSUM 变点检测),以及 2024-2026 基础模型(LLM、DeepSeek-R1 的 GRPO 推理强化学习)在量化研究里到底带来了什么。