高频交易低延迟技术
一、高频交易简介
- 高频交易(High Frequency Trading)是指从极为短暂的市场变化(市场的微观特性)中寻求获利的程序化交易,如某种证券买入价和卖出价差价的微小变化,或者某只股票在不同交易所之间的微小价差。 HFT高频交易
二、低延迟网卡
- 金融行业低延迟网卡选择: Solarflare X2522/X3522:Solarflare X2522/X3522是AMD旗下Xinlinx的低延迟网卡。Mellanox ConnectX-4 LX:ConnectX-4 LX是NVIDIA旗下Mellanox的低延迟网卡。Exablaze ExaNIC X10:ExaNIC X10是Cisco旗下Exablaze公司的低延迟网卡。
- Onload是Solarflare的Kernel Bypass网络技术方案,由Onload、TCPDirect、ef_vi三种使用模式。
Onload
- onload是Solarflare最经典的kernel bypass网络协议栈,属于透明kernel bypass,提供了兼容socket网络编程的接口,用户不需要修改自己的代码,只需在程序启动前preload libonload.so即可使用。
TCPDirect
- tcpdirect基于ef_vi实现了上层网络协议栈,提供了类似socket的API:zocket,能让用户读写tcp/udp的payload数据,同时也继承了ef_vi zero-copy的特性。tcpdirect要求使用huge pages。
ef_vi
- ef_vi是一个level 2的底层API,可以收发原始Ethernet帧,但没有提供上层协议的支持。ef_vi最大的特点是zero-copy:要求用户预先分配一些recv buffer提供给ef_vi使用,网卡收到包后会直接写入buffer,用户通过eventq poll接口获得已填充数据的buffer id即可开始处理接收数据,处理完后再把buffer交还ef_vi循环使用。
- X2522低延迟测试32字节消息单程延迟如下: 低延迟网络构建
三、高频交易服务器
- 高频交易服务器为了尽可能高提高主频,通常需要超频CPU,通常使用Core i9-10980XE,Core i9-12900KS,Core i9-13900KS。常见配置如下: CPU:Intel Core i9-10980XE/18核心/24.75MB L3 Cache主板:X299芯片组主板内存:芝奇3200-C14Q DDR4-3200 16G * 4磁盘:三星PM883 480GB * 2网卡:普通千兆网卡,Solarflare X2522-25G PLUS散热器:CPU冷却闭环2U冷却器电源:长城1200W冗余电源
四、Colo服务
- 为了追求更低延迟,高频交易公司通常会把服务器放到交易所撮合引擎服务器所在的数据中心里(co-location)。
- 交易所数据中心会确保使用Co-location的客户无论将机器托管在交易所内的任何位置,都是通过相同长度的电缆传输、相同的延迟时间。
- 国内交易所都有自己的服务器托管中心,如上交所外高桥上证通托管机房、深交所南方中心深圳通托管机房、上交所金桥托管机房。只有证券、期货公司可以向交易所租用托管机房机柜。证券、期货公司通过提供机柜、购买设备、购买或租用软件为其客户提供服务。高端程序化交易团队通常自购设备或指定硬件配置由证券、期货公司采购,经证券、期货公司同意,放到租用的机柜内进行交易。 量化私募、HFT公司或自营交易团队可向证券公司或期货公司申请机柜和网络资源,将交易主机与交易所的交易主机在物理距离上尽可能近地放置在一起。
- 为了尽可能减少交易链路的网络延迟,高频交易通常需要将交易服务器托管在交易所机房或尽可能离交易所核心撮合服务器近的位置。交易所托管机房内在任何位置的机架到核心撮合服务器使用相同长度的光纤,确保各个位置都具有相同的网络延迟。
- 交易所提供的托管机房受制于场地及电力所限,一般资源容量有限,常常供不应求。
五、极速交易柜台
- 依据国内监管要求,客户无法直连交易所系统,中间必须经过经纪公司的柜台系统,由经纪公司柜台系统调用交易所API下单。
- 交易柜台是连接交易所的下单系统。通过经纪公司交易柜台把交易指令发送到交易所,然后经纪公司交易柜台再将交易所委托回报和成交回报反馈给投资者。
1、股票极速交易柜台
- 极速交易柜台主要是为程序化交易客户提供的快速交易通道,通常只提供基本的交易功能,力图实现低低延迟极速性能,因此主流快速交易柜台的股票现货交易和信用交易是分开的,因此需要分别进行接口开发。不同券商的快速交易柜台支持的交易功能有所不同,但委托申报、委托回执、交易回执、撤单申报是基本功能,同时上海主板、上海科创板、深圳主板、深圳中小板、深圳创业板、可转债、逆回购时需要支持的基本业务品种。
- 快速交易柜台在接到客户委托申报时会进行风控合规检查,只要过了风控就可以直接通过一条连接交易所的专线传递信息,无论是审核时间还是传输时间都得到了极大的缩短。
- 国内主要快速交易柜台系统包括华锐ATP快速交易柜台、恒生UFT快速交易柜台、恒生UST快速交易柜台、顶点HTS快速交易柜台、金证FGS快速交易柜台、宽睿OES快速交易柜台,华宝证券自研LTS交易柜台,中泰证券自研XTP交易柜台。
2、期货极速交易柜台
- 依据国内监管要求,客户无法直连交易所系统,中间必须经过期货公司(Broker)的系统,即柜台系统。期货公司会有多套柜台系统,在功能上分为主席和次席系统。
- 国内主要期货交易柜台系统包括CTP交易柜台、易达YD极速交易柜台、盛立REM交易柜台、Xele极速交易柜台。 交易柜台系统
六、Linux系统调优
- CPU隔离、绑定
- 中断隔离、绑定
- 内核参数调优
七、应用程序调优
- C++语言层面优化:内联、原子操作、分支likely、少用动态绑定机制、尽量预先分配内存、尽量少用系统调用。
- 自定义实现低延迟数据结构、日志库。
- 编译器优化:向量化优化、ICC编译器优化等。
- 指令重排:编译时指令重排、运行时指令重排、CPU流水线指令重排。
- 其它优化:无锁编程、根据使用场景选择合适数据结构、Cache Miss、Cache Line对齐、内存对齐。
- SIMD向量化加速、GPU加速
推荐参考学习资料:
#高频交易##量化交易岗##低延迟#