第七章:交易执行系统
交易执行系统,说白了就是你的订单从大脑到交易所的最后一公里。我做了这么多年做市商系统,见过太多策略明明很牛,结果死在执行上的案例。嗯,这一章我们就把这最后一公里彻底打通。
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,白干了。
滑点控制的核心思路,其实就两个:
- 预测滑点:在下单前,先估算一下这个单子会造成多大的滑点。如果滑点太大,就放弃或者改策略。
- 减少滑点:通过算法拆单、选择合适的时间窗口、利用暗池等方式,降低实际滑点。
我曾经遇到过一个极端情况:某个流动性很差的期权,我下了一个中等规模的单子,结果直接把价格打穿了3个tick。那次教训让我明白了一个道理——滑点不是线性的。当你的订单规模超过某个阈值时,滑点会指数级上升。
避坑指南:我曾经在回测中忽略了滑点,结果实盘第一天就亏了2%。从那以后,我所有的回测都强制加上滑点模型。具体做法是:根据历史订单簿数据,建立一个滑点预测模型,至少包含订单规模、当前买卖价差、订单簿深度三个特征。
7.4 交易成本分析
交易成本分析,简称TCA。很多人觉得这是风控部门的事,跟我做策略的没关系。错了!TCA是你优化执行策略的眼睛。
交易成本主要分三块:
- 显性成本:手续费、交易所费用、清算费用。这些是明面上的,好算。
- 隐性成本:滑点、市场冲击、延迟成本。这些才是大头,而且不好算。
- 机会成本:因为没成交而错过的利润。这个最容易被忽略。
我一般用「实现差价」来衡量执行质量。公式很简单:
实现差价 = 实际成交均价 - 决策时的最优价格
如果实现差价是正的,说明你买贵了或者卖便宜了,执行有问题。如果实现差价是负的,说明你执行得比预期还好——这种情况很少见,但确实存在,比如你运气好接到了别人的错误报价。
嗯,这里要注意:TCA不能只看单笔交易,要看统计分布。我习惯每天跑一次TCA报告,看实现差价的均值、中位数、90分位数。如果90分位数明显偏离均值,说明有极端情况需要排查。
我的经验:做市商系统的TCA,我建议按品种、按时间段、按算法分别统计。你会发现,同一个品种在开盘和收盘时的执行成本可能差5倍。知道了这个,你就可以避开那些高成本的时间段。
知识体系总览
下面这张图,是我对交易执行系统核心模块的理解。你看一眼,就能明白各个模块之间的关系。
这张图里,从上到下是数据流方向:策略信号下来,经过算法执行模块拆单,再通过低延迟通道发到交易所。右侧的滑点控制和TCA是贯穿始终的监控和优化模块。说白了,没有滑点控制和TCA,你的执行系统就是瞎子在黑夜里开车——撞了都不知道怎么撞的。
最后说一句:交易执行系统不是一锤子买卖。我每三个月会重新评估一次通道延迟,每半年更新一次算法参数。市场在变,你的执行系统也得跟着变。别想着一次搞定,然后躺平。
无相订单流研究社 微信Lucian808555