第二章:高频交易基础设施
做高频交易这么多年,我越来越觉得:策略再好,没有靠谱的基础设施,一切都是空谈。你想想看,别人比你快1微秒,你的订单就永远排在后面。这行就是这么残酷。
今天咱们聊聊高频交易的「地基」——硬件、网络和数据。这些东西看着枯燥,但踩过的坑多了,你就知道它们有多重要。
2.1 硬件架构:FPGA、GPU、ASIC
先说说硬件。普通交易系统用CPU就够了,但高频交易不行。CPU处理速度再快,也扛不住纳秒级的延迟要求。
2.1.1 FPGA(现场可编程门阵列)
FPGA是我个人最偏爱的方案。为什么?因为它可以「硬连线」处理数据。
说白了,CPU是顺序执行指令,FPGA是并行处理。你想想看,一个行情数据包进来,CPU要一条条指令去解析,FPGA可以在一个时钟周期内完成全部解析。
核心优势:
- 延迟极低:从网口到应用层,FPGA可以做到10纳秒以内
- 确定性高:处理时间固定,不会像CPU那样受系统调度影响
- 可重配置:不像ASIC那样焊死了,可以随时更新逻辑
我在项目中遇到过一件事:某次做期权做市,CPU方案处理行情到下单要15微秒。换成FPGA后,直接压到800纳秒。嗯,这差距就是赚钱和亏钱的区别。
2.1.2 GPU(图形处理器)
GPU适合做大规模并行计算。比如统计套利、因子计算这类场景。
但说实话,GPU在高频交易里用得不多。为什么?因为GPU的延迟太高了——数据要从CPU传到GPU,再传回来,这来回一趟就几十微秒。高频交易等不起。
我的建议:
GPU适合做「准实时」的批量计算,比如盘后分析、风险模型更新。真正交易链路上的事,交给FPGA。
2.1.3 ASIC(专用集成电路)
ASIC是终极方案。专门为你的策略定制的芯片,性能最强,功耗最低。
但代价也最大:流片一次几百万美元,周期半年到一年。而且一旦做错了,改都没法改。
我曾经见过一家公司,花大价钱做了ASIC,结果市场规则变了,芯片直接报废。所以,除非你的策略非常稳定、交易量极大,否则别碰ASIC。
| 方案 | 延迟 | 灵活性 | 成本 | 适用场景 |
|---|---|---|---|---|
| FPGA | 纳秒级 | 高 | 中 | 行情解析、订单路由 |
| GPU | 微秒级 | 中 | 低 | 批量计算、模型训练 |
| ASIC | 皮秒级 | 低 | 极高 | 超高频、固定策略 |
2.2 网络架构:低延迟网络、微波通信、Co-location
硬件搞定了,接下来是网络。高频交易里,网络延迟往往比计算延迟更致命。
2.2.1 低延迟网络
普通交易员可能觉得千兆网卡就够了。但在高频交易里,我们用的是25G、40G甚至100G网卡。
而且,不仅仅是带宽问题。更重要的是网络协议栈的优化。Linux内核自带的TCP/IP协议栈,延迟在几十微秒级别。我们一般用DPDK或者Solarflare的OpenOnload,直接把网络数据从网卡送到用户态,绕过内核,延迟降到1-2微秒。
避坑指南:
我曾经遇到过一个问题:换了DPDK后,延迟确实降了,但CPU占用率飙升到90%。后来发现是中断亲和性没配好。嗯,这种细节,文档上不会写,只能自己踩坑。
2.2.2 微波通信
说到这个,我得提一嘴微波通信。你可能觉得奇怪:交易还用微波?
是的。光纤传输速度是光速的2/3,因为光在玻璃里走的是折线。微波在空气中走直线,速度接近真空光速。从芝加哥到纽约,光纤要7毫秒,微波只要4.5毫秒。
这2.5毫秒的差距,就是套利空间。我认识一个团队,专门做跨交易所套利,微波链路就是他们的命根子。
但微波也有缺点:受天气影响大。下雨天信号衰减严重,大雾天更别提了。所以一般会同时保留光纤作为备份。
2.2.3 Co-location(机房托管)
Co-location,说白了就是把你的服务器放在交易所的机房里。物理距离越近,延迟越低。
我记得有一次,帮客户做延迟优化。客户说他们的系统已经很快了,但我一看,服务器在离交易所50公里外的数据中心。我说:你搬到交易所机房里,什么都不改,延迟至少降一半。
结果呢?搬过去之后,延迟从200微秒降到了80微秒。客户当场就服了。
Co-location的关键点:
- 机柜位置:离交易所核心交换机越近越好
- 供电冗余:双路UPS + 柴油发电机
- 散热:高密度服务器需要液冷
- 安全:生物识别 + 24小时监控
2.3 数据源与数据清洗
最后说说数据。硬件再快,网络再低延迟,数据不对,一切都是白搭。
2.3.1 数据源
高频交易的数据源主要有三类:
- 行情数据:Level 1(最优买卖价)、Level 2(深度行情)、Level 3(逐笔委托)
- 交易数据:成交记录、撤单记录
- 参考数据:股票基本信息、除权除息、公司事件
我个人习惯用交易所直连的数据源。为什么?因为第三方数据商会有额外的延迟,而且可能丢数据。做高频交易,数据必须从源头拿。
2.3.2 数据清洗
数据清洗这事儿,看着简单,做起来全是坑。
我曾经遇到过一个经典问题:某只股票在盘中突然出现一笔天价成交,价格是正常价格的100倍。如果直接用这个数据做策略,模型瞬间就崩了。
所以,数据清洗必须做这几件事:
- 去重:同一个行情消息,可能从不同通道收到多次
- 排序:按时间戳严格排序,乱序数据会导致策略误判
- 异常值过滤:价格突变、成交量异常,都要标记出来
- 时间对齐:不同数据源的时间戳可能不同步,需要统一对齐
一个小技巧:
做数据清洗时,一定要保留原始数据。我见过太多人,清洗完就把原始数据删了。结果发现清洗逻辑有bug,想回溯都回溯不了。原始数据是你的「底牌」,别扔。
2.4 知识体系总览
说了这么多,咱们用一张图来总结一下高频交易基础设施的核心架构:
这张图展示了高频交易基础设施的三层架构。硬件层负责计算,网络层负责传输,数据层负责输入。每一层都环环相扣,缺一不可。
做高频交易,说白了就是跟时间赛跑。硬件、网络、数据,每一个环节都要做到极致。我见过太多团队,策略写得很好,但基础设施跟不上,最后亏得一塌糊涂。
所以,别急着写策略。先把地基打牢了,后面的路才好走。
公众号:蓝海数据掘金营,微信deep3321