你要在人多时慢慢进入会场,又不想提前猜几点最拥挤。一种办法是先排好时间表;另一种办法,是看见有人进队伍,就跟到他身后。论文提出的 Shadow-PPOV,大致采用第二种思路:它不预测未来成交量,也不计算哪一档最容易成交,而是逐笔跟随市场里刚出现的真实挂单。
这值得关注,因为交易执行的难题往往不是“买不买”,而是“一笔大单怎样分批完成”。一次下完可能吃掉太多流动性,推高自己的成本;拆得太慢,又可能错过价格。Shadow-PPOV 把其中一个问题——被动限价单该挂在哪里——改写成了“跟谁挂”。本文事实与效果描述均来自 Vincent Maciejewski 的论文及同一作者体系的开源项目,尚无独立信源交叉印证。
不预测,改为逐单跟随
常见执行算法有几种节奏。TWAP(时间加权平均价格)按时间大致均匀拆单;VWAP(成交量加权平均价格)按预期的日内成交量分布拆单;POV(Percentage of Volume,成交量参与率)则试图让自己的成交量维持在市场成交量的一定比例。
它们并不完全相同。尤其是 POV,主要响应已经发生的成交,并不像 VWAP 那样必须预测全天成交量曲线。但论文认为,只看已经成交的量,很难纯靠被动挂单及时跟上:成交发生后,那笔流动性已经过去了。算法要么提前判断短期成交,要么落后时跨过买卖价差主动成交。
Shadow-PPOV 换了一个观察对象。它读取订单流——新增、撤销、修改和成交等逐笔事件组成的连续消息流。当系统看到一笔符合条件的第三方新增订单时,会以固定概率选择是否跟随;若跟随,就在同一交易场所、同一价格提交自己的限价单,并把对方的交易所订单标识符与自己的订单一对一绑定。
在遵循价格—时间优先的队列里,新订单通常排在已有订单后面。因此,“影子”不是抢到对方前面,而是站到它身后。市场若出现足够大的主动买卖,先消耗前方订单,才可能继续成交影子单。算法的下单频率由新增订单的到达速度自然带动:新增挂单多,它跟得多;新增挂单少,它也放慢。实际成交占市场成交量的比例并不由算法直接控制,也不会等于跟随概率。
真正关键的是何时离开
跟着别人挂单,风险在于对方突然撤走。Shadow-PPOV 因此把订单的生命周期也绑定起来。
如果被跟踪订单撤单,影子单立即撤回。理由很直接:原先愿意在这个价格排队的流动性已经消失,继续留下可能暴露在不利价格变化中。如果被跟踪订单成交,算法不会立刻撤单,而会保留一个很短的宽限窗口。此时主动订单可能仍在连续扫过队列,影子单排在后方,稍等片刻才有机会被一起成交;窗口结束仍未成交,再撤单。订单修改则被视为原生命周期结束,影子单随之撤回。
论文把这称为“model-free”,即无须用订单簿模型预测成交概率,价格和交易场所直接取自被跟踪订单。这个说法需要收窄理解。它不是“没有规则”,更不是“不需要信息”。算法仍要设定跟随概率、订单规模、价格范围、宽限窗口和风险上限,也必须低延迟读取完整的逐订单消息。更准确地说,它省掉的是挂单位置的预测模型,而不是整个执行系统的控制机制。
参考实现还加入了安全护栏。例如,只有跟随订单距离当前最优价格足够近时才下单;价格偏离到更宽的范围后才撤单,避免市场轻微跳动触发反复挂撤。系统也会在目标完成、可能超额成交或单一价位挂单过多时退出。这些规则会读取部分市场状态,但论文认为,它们只负责限制风险,并不预测成交或决定挂单价格。
它的价值首先是一个基准
Shadow-PPOV 的新意不在于证明传统方法已经过时,而在于给预测型被动执行提供一个很朴素的参照物:如果一个复杂模型声称能找到更好的挂单位置,它至少应该胜过“跟着刚刚真实承诺资金的人排队”这条规则。
论文还提出“流量继承”的交易场所选择:在哪个市场看见新增订单,就把影子单发到哪个市场,不再另外计算各市场的深度、费用和延迟。不过,论文的评估数据只来自单一交易场所,因此跨市场路由只是分析性主张,尚未接受实测。
作者使用确定性市场回放模拟器,在完整一个日历年的 CME ES futures 数据上评估该方法,并与主动成交版本的 POV 比较,同时考察滑点和延迟敏感性。供稿所含正文未给出这些实验的具体数值,因此不能判断它比传统 POV 好多少,也不能据此宣称它在真实交易中更优。论文及订单簿模拟器已实现在开源项目 kaspar-hft 中。
局限与未知
- 回放模拟器假设算法的订单不会改变后来市场,因而未计入真实市场对新增挂单的反应。手续费、市场冲击及逆向选择等细节,也没有在所给材料中形成可核查的完整结果。
- 影子信息会随延迟增加而变旧。方法省计算,却高度依赖完整、低延迟的逐订单数据;“不预测成交量”不等于“不使用市场信息”。
- 论文只解决被动订单放在哪里及何时撤回。母单有多少应被动执行、何时改用主动成交,仍是另一层调度问题。