1. 高频交易概述
大家好,我是你们这门课的老朋友。今天咱们聊聊高频交易,也就是HFT。很多人一听到这个词,就觉得是「闪电般的手速」和「印钞机」。嗯,确实有那味儿,但背后的门道,远比想象中复杂。
我最早接触HFT是在2012年,当时帮一家自营团队做系统优化。第一次看到他们的交易日志,我整个人都愣住了——一天几百万笔订单,真正成交的不到5%。说白了,大部分订单都是「炮灰」,用来试探市场深度的。从那天起,我就明白了一个道理:高频交易拼的不是预测,而是速度与确定性。
1.1 什么是高频交易
高频交易,简单讲就是利用极快的速度,在极短的时间内完成大量交易。它依赖的是计算机算法,而不是人的直觉。
你想想看,传统交易员看K线、等信号,下单可能需要几秒甚至几分钟。而HFT呢?从行情数据到达,到策略决策,再到订单发出,整个流程必须在微秒甚至纳秒级完成。一眨眼的功夫,几十笔交易已经跑完了。
我个人习惯把HFT分成三个层次:
- 硬件层:FPGA、网卡、交换机,甚至用微波塔传信号
- 系统层:内核旁路、内存数据库、无锁队列
- 策略层:做市、套利、统计套利
这三个层次缺一不可。你策略再好,系统慢了,照样被市场收割。
核心定义:高频交易不是一种策略,而是一种技术能力。它让你在别人还没反应过来的时候,完成交易并锁定利润。
1.2 HFT的核心目标
做HFT,你脑子里必须时刻绷着三根弦:延迟、吞吐量、确定性。这三者缺一不可,但优先级完全不同。
延迟(Latency)
延迟是HFT的命根子。从行情数据到达网卡,到订单离开网卡,这个时间差就是延迟。我见过太多团队,策略收益不错,但延迟比别人慢了10微秒,结果就是天天被「抢跑」。
延迟又分几种:
- 网络延迟:光纤、微波、甚至卫星传输
- 软件延迟:协议栈、内核调度、锁竞争
- 硬件延迟:FPGA处理、内存访问、CPU缓存命中
我曾经帮一个客户排查问题,发现他的系统在行情数据到达后,竟然花了3微秒去做日志写入。嗯,这就是典型的「捡了芝麻丢了西瓜」。日志可以异步写,但交易路径上,每一纳秒都得省着用。
吞吐量(Throughput)
吞吐量指的是系统每秒能处理多少笔订单。很多人以为延迟低,吞吐量自然就高。其实不然。你想想看,如果系统每笔订单处理很快,但来了大量订单时,CPU上下文切换频繁,吞吐量反而会下降。
我建议在设计系统时,先确定你的业务场景:
| 场景 | 延迟要求 | 吞吐量要求 |
|---|---|---|
| 做市 | < 1微秒 | 高(百万级/秒) |
| 套利 | < 10微秒 | 中(十万级/秒) |
| 统计套利 | < 100微秒 | 低(万级/秒) |
你看,做市对延迟和吞吐量要求都极高。而统计套利,反而更看重计算精度。
确定性(Determinism)
这一点,很多人容易忽略。确定性指的是系统在相同输入下,每次输出的结果和耗时是否一致。为什么重要?因为HFT系统里,任何一次「抖动」都可能导致订单延迟,甚至错过行情。
我记得有一次,系统在某个时间点突然慢了50微秒。查了半天,发现是JVM的垃圾回收在作祟。从那以后,我坚决不用Java做核心交易路径。C++和FPGA才是王道。
我的经验:延迟优化做到极致后,确定性比延迟绝对值更重要。一个稳定在1微秒的系统,比一个偶尔0.5微秒、偶尔2微秒的系统更可靠。
1.3 HFT的典型应用场景
HFT不是只有一种玩法。不同策略对延迟、吞吐量、确定性的要求完全不同。下面我挑三个最常见的场景聊聊。
做市(Market Making)
做市商的核心逻辑很简单:同时挂买单和卖单,赚取买卖价差。比如某股票当前买一价10.00元,卖一价10.01元,做市商就挂10.00元买、10.01元卖,每笔赚0.01元。
但这里有个坑:你挂的单子,随时可能被「聪明钱」吃掉。所以做市系统必须能快速调整报价,甚至撤单重挂。延迟稍微慢一点,你就成了别人的「提款机」。
我曾经做过一个做市系统,最开始用软件实现,延迟在5微秒左右。结果呢?每天被高频套利者「剃头」,亏得不行。后来换成FPGA,延迟降到500纳秒,才勉强稳住。
避坑指南:做市不是稳赚不赔的。市场剧烈波动时,做市商可能被「两头打」。一定要有风控机制,比如最大持仓限制、自动熔断。
套利(Arbitrage)
套利分很多种:跨市场套利、跨品种套利、期现套利等等。核心逻辑就是利用同一资产在不同市场或不同合约之间的价差,低买高卖。
举个例子,某股票在A交易所报价10.00元,在B交易所报价10.02元。你可以在A买入,在B卖出,赚取0.02元的差价。听起来很简单?但问题是,这个价差可能只存在几毫秒。你慢了,价差就消失了。
我建议做套利时,重点关注两点:
- 行情同步:两个市场的行情数据必须精确对齐,否则你看到的价差可能是假的
- 执行速度:从发现价差到完成交易,必须在价差消失前搞定
嗯,这里要注意:跨市场套利还涉及网络延迟。比如你在上海和深圳两个交易所之间套利,光纤传输本身就有几毫秒的延迟。所以很多团队直接把服务器托管在交易所机房,甚至用微波通信。
统计套利(Statistical Arbitrage)
统计套利跟传统套利不同。它不追求无风险价差,而是基于统计模型,寻找价格偏离的「大概率」机会。比如两只股票历史相关性很高,突然某只股票价格偏离了,就做多偏离的、做空正常的,等待价格回归。
统计套利对延迟要求相对较低,但对计算能力要求很高。你需要实时计算协方差矩阵、回归系数,甚至跑机器学习模型。
我个人习惯用Python做策略回测,但实盘时一定用C++或FPGA。为什么?因为Python的延迟抖动太大,你算出来信号时,行情可能已经变了。
一句话总结:做市拼的是「快」,套利拼的是「准」,统计套利拼的是「稳」。但不管哪种,延迟优化都是基本功。
知识体系总览
下面这张图,是我自己梳理的HFT知识体系。你可以把它当作整个课程的地图。每个模块后面都会详细展开。
这张图把HFT的核心目标、应用场景和技术栈串在了一起。你会发现,所有技术最终都服务于三个目标:延迟、吞吐量、确定性。后面的章节,我会逐一拆解每个模块。
好了,第一章就到这里。记住一句话:高频交易不是魔法,是工程。每一纳秒的优化,背后都是扎实的硬功夫。
公众号:蓝海资料掘金营,微信deep3321