第七章:交易执行系统

交易执行系统,说白了就是你的订单从大脑到交易所的最后一公里。我做了这么多年做市商系统,见过太多策略明明很牛,结果死在执行上的案例。嗯,这一章我们就把这最后一公里彻底打通。

7.1 低延迟交易通道

低延迟这个东西,很多人一上来就谈硬件、谈FPGA。我个人习惯是先搞清楚:你的延迟瓶颈到底在哪?

我曾经帮一家机构排查问题,他们花了上百万买FPGA加速卡,结果延迟只降了5微秒。后来发现,真正的瓶颈是他们的订单路由逻辑——每次发单前都要查一次数据库。把数据库查询改成内存缓存,延迟直接降了200微秒。

低延迟通道的核心,其实就三件事:

  • 物理距离:服务器离交易所越近越好。托管机房不是噱头,光在光纤里跑1公里就要花5微秒。
  • 协议选择:FIX协议虽然通用,但太啰嗦了。做市商系统我建议直接用交易所的二进制协议,解析速度快一个数量级。
  • 内核旁路:标准TCP/IP协议栈太慢。用DPDK或者Solarflare的OpenOnload,跳过内核直接操作网卡,延迟能降到个位数微秒。

关键指标:做市商系统的延迟目标,我个人认为应该定在10微秒以内。超过50微秒,你的报价基本就是给别人送钱。

7.2 算法交易执行

做市商不是简单地把单子扔出去就完事了。你想想看,一个大单砸下去,市场瞬间就滑了。所以我们需要算法交易执行——把大单拆成小单,偷偷摸摸地成交。

常用的算法有这么几种:

算法 适用场景 我踩过的坑
TWAP(时间加权) 流动性好的品种,均匀成交 遇到大行情时,TWAP完全不管价格,容易买在最高点
VWAP(成交量加权) 跟随市场成交量分布 成交量预测不准时,VWAP反而比TWAP更差
Iceberg(冰山订单) 隐藏真实意图,只露一小部分 有些交易所会检测冰山订单,反而暴露你的底牌
Adaptive(自适应) 根据市场波动动态调整 参数调不好,容易来回切换,产生额外成本

我个人比较喜欢用自适应算法。为什么呢?因为市场是活的,你用一个死算法去应对活市场,早晚要吃亏。自适应算法会根据当前的波动率、买卖价差、订单簿深度,动态决定下单速度和价格。

实战技巧:我建议在自适应算法里加一个「紧急度」参数。当你的库存偏离目标太多时,提高紧急度,加速平仓。这个参数我一般设成0到1之间的浮点数,0表示完全不急,1表示立刻平仓。

7.3 滑点控制

滑点,就是你想买在100块,结果成交在100.5块。做市商最怕的就是这个。你想想看,你的策略辛辛苦苦赚了0.2个tick的利润,结果滑点吃掉0.3个tick,白干了。

滑点控制的核心思路,其实就两个:

  1. 预测滑点:在下单前,先估算一下这个单子会造成多大的滑点。如果滑点太大,就放弃或者改策略。
  2. 减少滑点:通过算法拆单、选择合适的时间窗口、利用暗池等方式,降低实际滑点。

我曾经遇到过一个极端情况:某个流动性很差的期权,我下了一个中等规模的单子,结果直接把价格打穿了3个tick。那次教训让我明白了一个道理——滑点不是线性的。当你的订单规模超过某个阈值时,滑点会指数级上升。

避坑指南:我曾经在回测中忽略了滑点,结果实盘第一天就亏了2%。从那以后,我所有的回测都强制加上滑点模型。具体做法是:根据历史订单簿数据,建立一个滑点预测模型,至少包含订单规模、当前买卖价差、订单簿深度三个特征。

7.4 交易成本分析

交易成本分析,简称TCA。很多人觉得这是风控部门的事,跟我做策略的没关系。错了!TCA是你优化执行策略的眼睛。

交易成本主要分三块:

  • 显性成本:手续费、交易所费用、清算费用。这些是明面上的,好算。
  • 隐性成本:滑点、市场冲击、延迟成本。这些才是大头,而且不好算。
  • 机会成本:因为没成交而错过的利润。这个最容易被忽略。

我一般用「实现差价」来衡量执行质量。公式很简单:

实现差价 = 实际成交均价 - 决策时的最优价格

如果实现差价是正的,说明你买贵了或者卖便宜了,执行有问题。如果实现差价是负的,说明你执行得比预期还好——这种情况很少见,但确实存在,比如你运气好接到了别人的错误报价。

嗯,这里要注意:TCA不能只看单笔交易,要看统计分布。我习惯每天跑一次TCA报告,看实现差价的均值、中位数、90分位数。如果90分位数明显偏离均值,说明有极端情况需要排查。

我的经验:做市商系统的TCA,我建议按品种、按时间段、按算法分别统计。你会发现,同一个品种在开盘和收盘时的执行成本可能差5倍。知道了这个,你就可以避开那些高成本的时间段。

知识体系总览

下面这张图,是我对交易执行系统核心模块的理解。你看一眼,就能明白各个模块之间的关系。

交易执行系统核心架构 策略信号 算法交易执行 TWAP VWAP Iceberg Adaptive 低延迟交易通道 物理托管 二进制协议 内核旁路 硬件加速 交易所 滑点控制 TCA

这张图里,从上到下是数据流方向:策略信号下来,经过算法执行模块拆单,再通过低延迟通道发到交易所。右侧的滑点控制和TCA是贯穿始终的监控和优化模块。说白了,没有滑点控制和TCA,你的执行系统就是瞎子在黑夜里开车——撞了都不知道怎么撞的。

最后说一句:交易执行系统不是一锤子买卖。我每三个月会重新评估一次通道延迟,每半年更新一次算法参数。市场在变,你的执行系统也得跟着变。别想着一次搞定,然后躺平。


交易系统化学习资料 微信Strategy888888