2026年八月29日 · 资金费

你搭建了一个只在 UTC 00:00 交易的策略——一封关于资金费结算时间伪影的信

你搭建了一个只在 UTC 00:00 交易的策略——一封关于资金费结算时间伪影的信

你把权益曲线和交易记录发给我,问这结果是不是好得令人难以置信。简短回答:它既不能明显算真,也不能明显算假;花上一天左右就能查明是哪一种。下面是详细回答,因为诊断比下结论更重要。

你的策略是这样的:在 Binance 上交易 BTCUSDT 和 ETHUSDT 永续合约的 15 分钟均值回归信号,用价格相对 96 根 K 线均值的 z 分数,反向交易两端极值,持仓 2-8 根 K 线。回测区间是 2024 年 2 月到 2026 年 6 月。扣除你的费用模型后 Sharpe 为 2.9。你按一天中的分钟统计盈亏后发现,71% 的利润落在包含 UTC 00:00、08:00 和 16:00 的三个 15 分钟区间里。

你已经知道这为什么可疑。我来解释一下,为什么它又有一部分并不可疑。

资金费时钟确实存在,也确实会推动价格

Binance 在 UTC 00:00、08:00 和 16:00 结算永续合约资金费。结算时刻仍持仓的每个仓位都要支付或收取资金费。这是一笔固定安排、公开可知、人人都知道的现金流,会在结算前后带来真实的订单流——不是数据伪影,而是交易者实际采取的行动。

这种订单流有一定规律。结算前 10 到 30 分钟,不想支付资金费的仓位会平仓或对冲。如果这一时段的资金费率是 +0.04%,原本就打算退出的多头会在标记价格结算前离场,而不是等到结算后;做基差交易的永续合约空头则乐于继续持仓。这种不对称的压力有明确的截止时间。结算后,部分订单流会反向回来——为避开资金费而离场的多头重新进场——于是价格会部分反转。

所以,一个在 23:52 触发、00:12 离场的均值回归信号,恰好处在一个可预测的流动性事件发生的位置。你的部分优势,很可能来自机械性、日历驱动的价格推动之后出现的反转。这是真实的市场微观结构现象,而且已经存在多年。

但在相信这么大的数字之前,我会先弄清楚下面这些问题。

按我的检查顺序来看,有六件事需要核实

先查成本最低的,因为这类策略大多在第二或第三项检查时就站不住脚了。

  1. 资金费盈亏是否被重复计算了?如果你的成交模拟引擎会对未平仓仓位计入资金费,并且你的价格序列用的是标记价格而不是最近成交价,那么你可能把资金费算了两次——一次显式计入,一次通过标记价格的收敛过程计入。打印每笔交易的原始资金费现金流,再挑 10 笔与交易所的历史资金费接口数据逐笔核对。
  2. 资金费记录的时间戳标在哪里?Binance 的资金费率历史数据会返回 fundingTime,表示结算时刻。有些数据供应商会把同一条记录标在适用区间的开始时刻。如果你的数据偏移了 8 小时,那你交易的就是一个能预知未来的信号。我见过最多的资金费优势伪影就是这种情况,而且它会产生与你的盈亏曲线完全一样的特征——集中在结算 K 线上、方向正确、曲线漂亮得惊人。
  3. 00:00:00 时点的买卖价差会怎样变化?拉取订单簿,不要只看 K 线。1 分钟 K 线看不出价差;在二线交易场所的结算前后几秒,价差可能扩大到平时的 3-5 倍。如果你的成交按中间价或收盘价建模,那你赚到的其实是当时并不存在的价差。
  4. 只看另外两个结算时段,策略还能成立吗?把三个时段拆开分析。UTC 00:00 的订单流不同于 08:00(大致是亚洲开盘时段)和 16:00(美国下午)。如果三个时段中的某一个贡献了全部利润,你的样本大约就只有 300 次事件,而不是 900 次;Sharpe 也应该按这个样本量重新计算。
  5. 换到结算时钟不同的交易场所还能成立吗?这是最有说服力的一项。用完全相同的信号,在资金费按小时结算或采用其他结算时间表的交易场所运行。如果效应由资金费驱动,它应该跟随该场所的结算时钟。如果一个不在 UTC 00:00 结算的交易场所上,信号仍在 UTC 00:00 触发,那你找到的就是数据管道里的午夜伪影,而不是资金费效应。
  6. 盈亏中有多少发生在前后 90 秒内?如果整个优势都来自不到 2 分钟的窗口,那么 15 分钟 K 线太粗,无法如实反映入场价格;你应该假定自己模拟的成交价是该窗口内最优的价格,而不是你实际能拿到的价格。

如果我只有 1 小时,首先会做第五项检查。这是一个干净的自然实验,除了第二个数据源,不需要任何新基础设施。

结算窗口究竟要付出多少成本

假设这种效应真实存在,而且你通过了六项检查。接下来要把交易成本算准确,因为你建模的交易并不是你实际能做成的交易。

下面对比一下,在安静时段与跨越结算时段进行 20 分钟往返交易的成本。标的是 USDⓈ-M 永续合约,进场和离场都用 taker 订单,单笔交易规模为 $50k:

安静时段(例如 UTC 03:20)跨越 UTC 00:00
Taker 手续费,往返0.09%0.09%
典型价差成本~0.4 bp1.5-3 bp
$50k 交易规模下的滑点~0.5 bp2-6 bp
支付/收取资金费0±1 to ±4 bp(整个区间)
现实中的全包成本~10 bp扣除资金费前为 13-19 bp

资金费这一行最值得关注,也正是我一直追问第一项的原因。只要持仓跨过结算时刻,你就要承担整个区间的资金费,无论实际持仓多久。23:59:54 持仓 12 秒,也要支付完整 8 小时的资金费。一个平均持仓时间为 20 分钟、跨过结算时刻的策略,实际上是在一笔 20 分钟的交易上支付 8 小时的持仓成本。你的费用模型就该按这个方式计费,不能按持仓时间折算。

还有一个相关陷阱:如果你完全避开结算时刻——23:58 离场,00:02 重新进场——手续费次数就翻倍了。此时你的策略核心假设就变成:额外两次 taker 成交的成本低于一次资金费。有时确实如此。要明确算出来,不要让回测替你做决定。

你还没问过的市场环境问题

你的样本区间是 2024 年 2 月到 2026 年 6 月。这段时间的资金费经历了不止一种市场环境。有很长一段时间,8 小时资金费率一直钉在 0.01% 的底部,交易者没有理由在结算前后调整仓位;也有些周里,资金费率连续数日达到 0.05%+,结算前的订单流非常剧烈。

按交易发生时的资金费率给盈亏分组——比如根据绝对费率分成 4 档。如果优势来自资金费驱动的订单流,那么它应该大致随 |funding| 单调变化。资金费率接近零,优势也接近零;资金费率高,优势也高。如果各档表现相同,甚至优势集中在低资金费率组,那么资金费这套说法只是你套在其他现象上的解释。

我喜欢这项检验,因为它是一个可证伪的预测,而且直接来自你自己的解释。你问的不是“它还能不能赚钱”,而是“它是不是因为我说的原因而赚钱”。

我实际会怎么处理这个策略

如果它通过了:缩小策略规模。诚实地描述这个策略,就不该是基于 15 分钟网格、每年 900 笔交易,而应该是几百次经过精心筛选的事件,入场逻辑精确到秒,成交模型依据订单簿快照建立,而不是依据 K 线。这种策略规模更小、曲线更难看,也更经得起推敲。它也更有可能在模拟交易中复现;只有在那里,你才能知道自己假设的成交条件是否真实存在。

如果它没通过第二项检查——时间戳偏移——也别太沮丧。每个人至少都会在这件事上栽一次。仔细检查数据加载器,比直接修正偏移量更有价值,因为如果资金费数据有偏移,持仓量数据也很可能有同样的问题;在下一个想法出现之前,你应该先弄清楚这一点。

还有一件事,很多人都会跳过。无论检查结果如何,都把这六项检查和对应结果记在策略旁边。6 个月后,你或其他人会生成一个结构上完全相同的信号,看到同样漂亮的曲线,然后从头开始同样的争论。这里真正耐久的资产是这份诊断记录,策略本身未必能长久。

资金费率永续合约回测过拟合加密货币
← 全部文章