时间戳精度:毫秒级 vs 微秒级 vs 纳秒级

做回测系统,时间戳精度这个问题,我几乎每次跟人聊都会被问到。

「我的策略用毫秒级够不够?」「要不要上纳秒?」

说实话,这个问题没有标准答案。但有个原则我一直记着:精度不是越高越好,够用就行,但千万别不够用

三种精度,到底差在哪?

先看一组直观的数据:

精度等级 时间单位 1秒内可区分的事件数 典型应用场景
毫秒级 1ms = 10⁻³s 1000 日频、分钟级策略
微秒级 1μs = 10⁻⁶s 1,000,000 高频、Tick级策略
纳秒级 1ns = 10⁻⁹s 1,000,000,000 极高频、硬件加速回测

你想想看,毫秒级精度下,一秒钟只能区分1000个事件。如果你的策略在1秒内收到了2000笔订单,那就有1000笔的时间戳会「撞车」——它们会被认为发生在同一时刻。

这可不是小事。订单顺序一旦乱了,回测结果可能完全走样。

不同策略对精度的真实需求

1. 毫秒级:适合低频、日频策略

我个人习惯,做日频策略或者分钟级策略时,毫秒级完全够用。

举个例子,你每天收盘后做一次调仓,或者每5分钟判断一次买卖信号。这种情况下,订单之间的时间间隔至少是分钟级的,毫秒级的精度绰绰有余。

我在项目中遇到过有人用毫秒级精度跑高频策略,结果回测收益曲线漂亮得不像话,实盘却亏得一塌糊涂。为什么?因为毫秒级精度下,很多本应先后发生的订单被合并到了同一毫秒,回测系统误以为它们可以同时成交——这在实盘里根本不可能。

注意: 毫秒级精度下,同一毫秒内的订单顺序是「未定义」的。如果你的策略依赖订单到达顺序,请务必升级精度。

2. 微秒级:高频策略的黄金标准

做Tick级策略或者中高频策略,我建议直接上微秒级。

为什么?因为交易所的行情数据,很多本身就是微秒级时间戳。比如国内期货市场的CTP接口,时间戳精度就是微秒级。你用毫秒级去处理微秒级的数据,相当于主动丢弃了信息。

我记得有一次帮朋友优化一个期货高频策略。他原来的回测系统用毫秒级,回测结果年化收益30%。我帮他改成微秒级后,收益直接掉到12%。他吓一跳,问我是不是改错了。

我说:「没改错。微秒级精度下,那些被毫秒级掩盖的订单冲突、滑点、延迟问题,全都暴露出来了。这才是真实的市场。」

经验之谈: 如果你的策略持仓时间在几分钟以内,或者你的交易频率超过每分钟1笔,请使用微秒级精度。这是性价比最高的选择。

3. 纳秒级:极高频和硬件回测的领域

纳秒级精度,说实话,大部分软件回测系统用不上。

为什么?因为软件层面的时间戳获取本身就有几十纳秒到几微秒的抖动。你想想看,你用一个精度1纳秒的时钟,但获取这个时钟的操作本身就要花100纳秒——这精度还有什么意义?

我曾经试过在纯软件回测系统里用纳秒级时间戳。结果发现,同一笔订单在不同线程里获取的时间戳,前后能差出几百纳秒。这根本不是精度问题,而是系统本身的噪声。

纳秒级精度真正发挥作用的地方,是FPGA硬件回测或者专用硬件加速的场景。在这些场景下,时间戳的获取和订单的处理都在硬件层面完成,抖动可以控制在纳秒级别。

核心观点: 纳秒级精度是「硬件级」的追求。软件回测系统做到微秒级已经足够。强行上纳秒级,只会引入不必要的系统开销和噪声。

精度选择的决策树

我画了一张图,帮你快速判断该用哪种精度:

时间戳精度选择决策树 策略持仓时间? ≥ 1小时 < 1小时 毫秒级 ✓ 交易频率? ≤ 1笔/分钟 > 1笔/分钟 毫秒级 ✓ 硬件加速? 微秒级 ✓ 纳秒级 注:纳秒级精度建议仅在FPGA等硬件回测场景使用

精度选择背后的代价

精度越高,代价越大。这不是危言耸听。

  • 存储成本:纳秒级时间戳需要64位整数存储,毫秒级只需要32位。数据量大了以后,差距是几倍甚至几十倍。
  • 处理开销:高精度时间戳的排序、比较、索引,都比低精度要慢。我实测过,微秒级排序比毫秒级慢了约30%。
  • 系统复杂度:高精度意味着你需要处理时钟同步、NTP校准、漂移补偿等问题。毫秒级精度下,这些都不是事。
我的建议: 从微秒级开始。如果回测结果和实盘偏差较大,再考虑是否升级到纳秒级。不要一开始就追求最高精度,那往往是过度设计。

一个真实的坑

我曾经接手过一个回测系统,时间戳用的是毫秒级。跑日频策略没问题,但一跑高频就出怪事——回测收益高得离谱,但实盘完全相反。

排查了很久,发现问题出在毫秒级精度上。同一毫秒内到达的订单,系统随机排序。而回测时恰好把有利的订单排在了前面,导致回测结果严重失真。

后来我把时间戳改成微秒级,问题立刻消失了。嗯,这个教训我记到现在。

避坑指南: 如果你发现回测结果异常好,尤其是高频策略,先检查时间戳精度。很多时候,不是策略牛,是精度掩盖了问题。

总结一下:毫秒级适合日频和分钟级策略,微秒级是高频策略的标配,纳秒级留给硬件回测。别贪高,也别省低。选对了精度,回测结果才有参考价值。


公众号:蓝海资料掘金营,微信deep3321