- 强化学习最优执行:用策略梯度把大单拆成低冲击序列
要卖掉 100 万股,一次性砸下去会把价格砸穿;TWAP 均分又扛着最大的库存风险。经典 Almgren-Chriss(AC) 用闭式解给出「前重后轻」的最优拆单,但它假设连续时间、平滑冲击。本文用 REINFORCE 策略梯度直接在离散环境里学拆单:30 步、临时冲击 ε=0.01、波动 σ=0.05、风险厌恶 λ=9。结果——REINFORCE 期望总成本 0.00367(3.67bps),远低于 TWAP 的 0.01082(10.82bps, 降 66%),也比 naive 离散化的 AC 闭式(0.00583)更低;实现短fall 标准差从 TWAP 的 0.032 压到 0.005(约 1/6)。图表显示它学到与 AC 一致的「前重后轻」,且因为端到端优化真实离散成本,落在 AC 公式之下。附完整 numpy 实现与四张真实计算图。
9 min Chinese - 交叉冲击:你买 A 却把 B 推高了,逐股成本模型为什么两头都错
冲击成本模型几乎都是逐股独立算的——每只股票一条平方根曲线,加总就是篮子成本。但冲击矩阵 Λ 的非对角元不是零:受控模拟 60 只股票 3 因子结构(非对角均值是对角的 0.343 倍)量化两个方向相反的错误:单边买入篮子上,逐股模型只报出真实成本的 1/19.5(低估 94.9%);市场中性篮子上反而高估 62.6%——多空腿的冲击互相抵消,逐股模型看不见这份折扣。方向性扫描给出连续图景:市场因子暴露占比从 0 到 1,真实/逐股比值从 0.61 单调升到 18.17,穿越 1.0 的那一点就是逐股模型恰好正确的位置。唯一的免费午餐是内部轧差:两个组反向重叠 0.5 时先轧差再下单省 48.9% 成本,重叠 0.9 时省 90.1%。六项对抗式检验全过:把 Λ 强制对角化后真实/逐股恰好 1.00000000、5000 个随机篮子最小成本 0.511 为正(Λ 半正定,无往返套利)、12 个矩阵方向性比值 20.53±1.30 且中性比值 0.582±0.032 符号从不翻转。两个反直觉发现被完整保留:打乱非对角元后单边比值 19.57 几乎不变(一边倒的篮子只感受 Λ 的总和),而抽掉共同因子后比值塌到 2.02——真正的元凶是共同因子而非「非对角非零」;且 19.5 这个倍数随组合宽度单调放大,N=10 时 3.57、N=250 时 86.53,不可跨组合搬运(高阶)
17 min Chinese - Obizhaeva-Wang 最优执行:把限价簿弹性写进下单节奏
用固定种子(20260801)、20期离散时间模型的受控模拟,从零复现 Obizhaeva & Wang (2013) 最优执行模型:暂时冲击以速率ρ指数恢复,最优策略在首尾加速、中间放缓,形成与 TWAP 截然不同的节奏。核心结论:当弹性ρ=10时,OW 策略相对 TWAP 节省2.2%的期望成本,首期交易速度高出均值24.5%、末期低15.5%;弹性越高,优势越大——ρ从0.5升到50,成本节省从-1.3%升到7.2%。关键洞察:OW 的价值不在降低总交易量,而在利用冲击恢复的时间结构,通过改变下单节奏吃掉限价簿的弹性红利。对抗式检验两项通过:ρ→1000时策略退化为接近匀速(变异系数0.14),单期执行成本比率0.80符合预期。
17 min Chinese - 传播子模型 Propagator:把每笔成交的冲击衰减写成核函数
Kyle 说冲击是永久的,平方根定律说冲击是凹的,传播子模型(Bouchaud 2004)说:都对,但你们少了时间维度。每笔成交的冲击不是一个数,是一条衰减曲线 G(ℓ)=G₀/(1+ℓ)^β——价格是所有历史成交冲击残留的叠加。模拟实测三条 β 曲线的执行实验:50 笔子单打完后,β=0.9 时残留只剩 5.5%(冲击几乎全是暂时的),β=0.2 时残留 55.5%(切碎不消失);实证 β≈0.4-0.6 恰好卡在中间。模型最深刻的预言是扩散性悖论的解:订单流符号自相关是幂律长记忆(本文模拟 C(ℓ)~ℓ^-0.6),价格却近似随机游走——唯一自洽的方式是核衰减恰好抵消订单流记忆,β≈(1-γ)/2 的临界关系不是巧合而是市场自组织的结果。60000 笔模拟数据用 80 阶滞后 OLS 反解核函数:对数斜率估出 -0.483 vs 真实 -0.5,G(1)/G(10)/G(50) 全部贴住真值。工程含义:执行成本模型必须区分『打单时的峰值冲击』和『打完后的残留冲击』,TWAP 拆单省的钱全部来自衰减段;反过来做冲击套利(跟着大单买)赚的是同一段衰减。诚实边界:核的平稳性假设在危机中失效、线性叠加忽略流动性反馈、日内与日间核形状不同(中阶)
15 min Chinese - Kyle 连续拍卖模型:把知情者的最优下单速度解出来
Kyle (1985) 的连续时间版本回答了一个更狠的问题:手里握着私有信息的交易者,不是「买不买」,而是「以什么速度买」。答案出奇优雅——最优交易强度 β(t) 与剩余时间成反比,知情者匀速释放信息,让价格误差 Σ(t) 严格线性衰减到零,而价格冲击系数 λ 全程恒定。本文从离散版单期直觉讲到连续时间均衡的三个核心结论,用可复现 Python 模拟验证:价格向真实价值收敛、β 在收盘前发散、知情者期望利润恰好等于 σ_u·√Σ₀。并讨论它对算法交易的三个实际启示:为什么 TWAP 是 Kyle 均衡的影子、为什么临近收盘的订单流毒性最高、以及 λ 作为流动性度量的估计陷阱(中阶)。
10 min Chinese - Obizhaeva-Wang 执行模型:把限价簿弹性写进最优拆单
Almgren-Chriss 假设冲击成本只跟'交易多快'有关,却漏掉了限价簿的一个关键性质——它会恢复。你砸下一笔单,价格被临时推走,但只要停手,挂单会重新涌入,把冲击慢慢填平。Obizhaeva-Wang (2013) 把这个'弹性'写进模型,得出一个 AC 里没有的结论:最优执行不是一条平滑衰减曲线,而是'两端各下一个离散大块 + 中间恒定速率连续吃单'的 U 型轨迹。本文从限价簿动力学出发推导 OW 最优解,用蒙特卡洛证明它在期望成本(43.4bp vs TWAP 45.0bp)与成本方差上双双改善,弹性越低优势越大,并诚实拆解连续模型在离散撮合、日内弹性时变、被猎杀四个方向上的失真(中阶)。
18 min Chinese - TWAP/VWAP 最优执行:把大单拆细在时间轴上隐身
散户下单只关心买不买、卖不卖;机构下单还要多问一句:这单怎么下才不会自己把价格打飞?一笔 10 万股的市价单一次性砸进去,滑点可能高达 98bp——本文用 4000 条蒙特卡洛路径实测,同样的量拆成 TWAP(均匀切)滑点降到 43bp、VWAP(跟着成交量切)再降到 40bp,一次性冲击是它的 2.3 倍。文章从零推导市场冲击的凸性为什么让『拆单+跟量』能省钱(Cauchy-Schwarz),复现日内 U 型成交量曲线、Almgren-Chriss 有效前沿(执行成本 vs 时序风险的取舍),并诚实拆穿 VWAP 的死穴:它跟踪的是一个你下单时还不知道的未来基准,预测成交量偏 35% 就会变成跑输基准的跟踪误差。附完整 Python 与四类真实陷阱(中高阶)。
20 min Chinese - 最优执行 Almgren-Chriss:把大单拆成最优执行流
上一篇讲了 Almgren-Chriss(AC)怎么把冲击成本和波动风险写进同一个目标,解出一条由 γ 决定的轨迹。本篇换个角度把这套框架用透:①执行期限 T 怎么定——拖久冲击成本低但波动风险高,存在权衡;②最优『交易速率 v*(t)』长什么样,为什么越怕波动越前置;③VWAP 这种成交量加权基准和 AC 最优差在哪;④调度偏一点要多付多少。附完整 Python、连续时间闭式解与六类真实陷阱(高阶)。
13 min Chinese
返回