一、最优执行概述:什么是最优执行?为什么需要算法交易?市场冲击的基本概念

1.1 什么是最优执行?—— 别把「买得便宜」当成目标

先问大家一个问题:你下单买100万股,成交均价是10.01元。这算好还是不好?

很多人第一反应是「还行,没买贵」。但我会告诉你——这完全取决于你下单那一刻的市场状态。如果当时市场买一价是10.00元,你成交在10.01元,那其实你多花了1个bp的成本。但如果市场买一价是10.03元,你成交在10.01元,那你反而赚了。

所以,最优执行不是「买得便宜」,而是「相对于某个基准,偏差最小」

我个人习惯用到达价格(Arrival Price)作为基准。也就是你决定下单那一刻的市场中间价。如果你的成交均价比这个基准低,那就是正收益;比它高,就是负收益。这个差值,我们叫它执行缺口(Implementation Shortfall)

核心定义:最优执行 = 在给定时间窗口内,以最小化执行缺口为目标,完成指定数量的交易。

你想想看,这个定义其实包含三个要素:

  • 时间窗口——你有多长时间来完成交易?
  • 数量——你要买/卖多少?
  • 执行缺口——你愿意承担多大的成本?

这三者之间是互相制约的。想快?成本就高。想成本低?就得慢慢来。想一次全干完?市场冲击会让你哭。这就是最优执行要解决的不可能三角

1.2 为什么需要算法交易?—— 人脑算不过机器

我刚开始做交易那会儿,还没有算法交易。下单全靠手动,盯着盘口,凭感觉拆单。那时候我自认为手感不错,直到有一次……

那是一个流动性很差的股票,我要卖出50万股。我手动拆成10笔,每笔5万股,每隔几分钟下一单。结果呢?第一单下去,股价直接砸了2毛钱。后面几单越卖越低,最后一算,执行缺口接近1%。

后来我复盘发现,问题出在哪?人脑无法同时处理多个维度的信息。你要看盘口深度、看订单流、看市场情绪、还要算时间够不够。而且人容易情绪化——看到股价跌了就想赶紧卖,看到涨了就想等等再卖。这些都会让执行成本失控。

算法交易能解决什么?说白了,就三件事:

  1. 拆单优化——把大单拆成小单,分散到不同时间点,降低单笔冲击
  2. 时机选择——根据市场微观结构信号,选择流动性好的时机下单
  3. 成本控制——实时监控执行缺口,动态调整下单节奏

我的经验:算法交易不是「自动下单」那么简单。好的算法交易系统,本质上是一个实时优化器——它每秒钟都在计算:现在下单划算,还是再等等?

举个例子。一个简单的TWAP(时间加权平均价格)算法,就是把订单均匀分配到每个时间切片。但如果你遇到一个流动性突然枯竭的时刻,TWAP还是会硬着头皮下单,结果就是吃大亏。所以现在的主流算法,都会加入流动性感知模块——流动性好的时候多下点,流动性差的时候少下点甚至不下。

1.3 市场冲击的基本概念—— 你的订单本身就是市场信号

市场冲击,简单说就是你的订单对价格造成的影响。你买,价格涨;你卖,价格跌。这个影响有多大?取决于两个因素:

  • 订单规模——你买的越多,冲击越大
  • 市场流动性——流动性越好,同样的订单规模冲击越小

但这里有个坑。很多人以为市场冲击是线性的——买100股冲击1个tick,买1000股就冲击10个tick。错!市场冲击是非线性的。我曾在项目中遇到过一只小盘股,买1000股只让价格跳了1个tick,但买5000股直接让价格跳了5个tick。为什么?因为5000股吃掉了盘口好几层的挂单,触发了其他做市商的撤单和重新报价。

市场冲击可以拆成两部分:

冲击类型 定义 特点
瞬时冲击 订单执行瞬间造成的价格偏离 短期、可逆(部分)
持久冲击 订单执行后价格无法完全恢复的部分 长期、不可逆

瞬时冲击好理解——你一个大单砸下去,买一价被吃掉,价格自然跳上去。但为什么会有持久冲击?因为市场会解读你的订单信息。一个大买单,会被其他交易者解读为「有机构在买入」,他们可能会跟风买入,从而推高价格。这部分影响不会因为你买完了就消失。

避坑指南:我曾经犯过一个错误——以为市场冲击只跟订单大小有关,忽略了市场状态。同样是1000股,在开盘集合竞价阶段和尾盘阶段,冲击成本可能差3-5倍。所以,永远不要脱离市场微观结构去谈冲击

1.4 知识体系框架

说了这么多,我们来梳理一下本章的核心逻辑。下面这张图是我自己画的,把最优执行、算法交易和市场冲击的关系串起来了:

最优执行知识体系 最优执行 时间窗口 交易数量 执行缺口 算法交易(解决不可能三角) 市场冲击(瞬时 + 持久)

这张图想表达的核心思想是:最优执行是目标,算法交易是手段,市场冲击是约束。三者缺一不可。

嗯,说到这里,我想起一个真实的案例。2019年,某大型基金要调仓,涉及上百只股票。他们用了一个简单的VWAP算法,结果在几只小盘股上产生了巨大的市场冲击,导致整个调仓的执行缺口比预期高了0.3%。0.3%听起来不多,但乘以几十亿的规模,那就是几千万的损失。后来他们找我做咨询,我帮他们改成了自适应冲击模型——根据每只股票的流动性特征,动态调整下单速度。结果执行缺口降到了0.05%以内。

所以,理解市场冲击,是做好算法交易的第一步。后面我们会深入讨论如何建模、如何预测、如何控制冲击。但今天先把基础打牢。

一句话总结:最优执行不是玄学,是数学。算法交易不是黑箱,是工具。市场冲击不是敌人,是约束条件。理解了这三者的关系,你就入门了。


专注资料整理