跳至正文
全部策略

策略

跨交易场所 BTC 资金费率价差套利:当币本位资金费率高于 USDT 本位时,做空 Binance COIN-M 永续合约 / 做多 Binance USD-M 永续合约(Delta 中性、市场中性)

结局: 已放弃

BtcCmUsdmFundingSpreadCarryNeutral

结局总结

BtcCmUsdmFundingSpreadCarryNeutral 试图将币安币本位与 USDT 本位 BTC 永续合约之间的结构性资金费率缺口变现,作为 delta 中性、市场中性的套利交易;在此前绝对套利组合收益衰减后,它重新调整了思路。机制按设计运行——资金费入账,两条腿均有成交,组合确实保持中性(beta -0.01)——但六年下来,扣除成本后毫无收益:盈利因子 1.0013,总收益率 -1.39%,夏普比率 0.039,每笔交易预期收益 $2.57,而费用底线约为 0.06% CM;市场冲击吃掉了毛收益的 89%,容量上限约为 $125k。到迭代 6 时,开发者已将入场阈值下调至 1e-6 噪声底线,只为产生交易,这证实了利差确实存在,但小到根本无法覆盖自身成本。分析师放弃了该策略,并指出一旦计入手续费和市场冲击,交易所机制差异会继承绝对套利相同的致命经济性问题;填补权重不足的组合类别也无法挽救虚假的优势。

假设

一种在 SAME 标的上,针对币安 TWO 个不同永续合约交易所的 MARKET-NEUTRAL、CROSS-VENUE 相对资金费率套利 (BTC):币本位 COIN-M 永续合约 (BTCUSD_PERP.BINANCE_CM) 和 USDT 本位 USD-M 永续合约 (BTCUSDT.BINANCE)。这两种永续合约跟踪同一现货 BTC,但参与者群体有 STRUCTURALLY DIFFERENT 差异——COIN-M 由以 BTC 计价的持仓者/矿工用于以币本位方式对冲,USD-M 则由基于 USD 的投机者使用——因此它们的资金费率经常出现分歧。该策略收割的是资金费率DIFFERENTIAL(利差),而非绝对套利收益。这正是分析师在跨品种主流币资金费套利组合因离散度衰减而被放弃后认可的重新构想:“将该机制用于确实存在持续资金费偏斜的品种池。”CM 对 USD-M 的偏斜是一种结构性的交易所机制差异,即使各交易所的绝对资金费率接近零,该差异仍然存在——因此它NOT已衰减的绝对套利目标,而且不同于当前策略管线中的 HL 资金费套利(交易所组合不同,套利的是利差而非水平值)。两条腿都是 CONTINUOUS 永续合约(没有期权到期日,也没有有期限的季度合约结算),因此避开了 Deribit 滚动期权测试框架的所有缺陷和有期限合约的结算障碍。Delta 约为 0(一条腿做空,一条腿做多,具有相同的 BTC 敞口),且两种永续合约的标记价格始终紧密联动,因此基差风险极小,比现货-永续基差交易更干净。它还能一次性填补最缺乏代表性的 THREE 个组合类别:BINANCE_CM(1.9%,而目标为 ≥5%——这是权重不足最严重的交易所)、跨交易所(5.3%,而目标为 ≥15%),以及多空市场中性方向(14.5%,相对于 85.5% 的纯多头超配)。参数数量少(约 5),以抵御反复出现的过拟合问题。

迭代 6 以尽可能小的改动修复了 Layer-3 的“未产生交易”故障。诊断结果:should_enter 评估了 50,537 根 K 线,却从未返回方向——机制、多腿对齐、资金费率序列解析和保护条件均正常(Layer 2 已通过合成资金费率测试)。问题纯粹出在阈值校准:Layer 2 的合成 funding_rates 和 hl_funding_rates 是两个独立序列(均值约 1e-4,标准差约 1.5e-4),其利差约为 1e-4,轻易超过旧阈值 entry_diff=1e-5;但 Layer 3 的 REAL BTC 资金费率序列高度联动且相关性很强,因此真实差值每 8 小时约为 1e-6,比 1e-5 阈值低一个数量级,所以从未触发。修复:将 entry_diff 1e-5 -> 1e-6,并将 exit_diff 2e-6 -> 1e-7(同时修改代码默认值和配置),使真实的相关资金费差能够穿越阈值。没有更改导入、信号逻辑、规模计算、对齐或腿的顺序——保留了此前通过的各层。经济逻辑(交易 CM 与 USD-M 资金费差的 SIGN,保持 delta 中性)不变;优化器之后可以重新调整阈值。

结构性结论:CM-与-USD-M之间的BTC资金费率差异真实存在,但幅度极小:在两种高度联动的永续合约上,每-8小时仅约1e-6的价差;任何可实际部署的规模下,交易成本都会完全吞噬计入的持有收益。基础结果为盈亏平衡略负(profit_factor 1.0013,约6年内total_return -1.39%,夏普比率0.039),单笔期望收益仅为$2.57(每笔约0.001%,比约0.06% CM的往返手续费下限低两个数量级)。impact_cost_pct为89.26%,而capacity_usd仅为$125,505——规模超过玩具级别后,这种优势便是幻影。这NOT不是因资金费率无法计入而否决(资金费率已计入IS,且两条腿都进行交易);只是计入的价差太小,连自身成本都无法覆盖。参数调优无济于事:开发者已将入场区间下调至1e-6下限以产生交易,因此进行2小时优化只会确认盈亏平衡,无法创造优势。FAILURE PATTERN:在同一标的上进行跨平台 delta 中性资金费率-DIFFERENTIAL套利(BTC CM对比USD-M),应用手续费和冲击成本后,其经济性与绝对持有收益策略同样致命——平台机制带来的价差确实存在,但相关联的两条腿每8小时仅约1e-6,导致PF约为1.00,单笔期望收益约$2.57,有89%的冲击成本拖累,容量约为$125k。填补投资组合中权重不足的类别(BINANCE_CM、跨平台、市场中性)无法挽救一个低于成本的优势。

实现

市场中性、delta-neutral 的跨交易场所资金费率-DIFFERENTIAL 持有收益策略,针对 BTC,覆盖币安的两种永续合约:币本位 COIN-M perp(BTCUSD_PERP.BINANCE_CM)和 USDT 本位 USD-M perp(BTCUSDT.BINANCE)。该策略平滑 CM 与 USD-M 的资金费率差;当 |spread| 超过入场区间时,建立等 USD 名义金额的反向仓位(做空较贵一腿/做多较便宜一腿),每 8h 收取资金费差,同时保持 BTC 方向敞口为零。价差收敛、达到最长持仓时间或触发组合盈亏熔断时平仓。COIN-M 腿通过 contracts_for_notional 按整数反向合约数量确定规模;USD-M 腿按相对于资金的比例确定规模。

验证结果

验证失败(第 3 层 — 沙盒回测):未产生交易 使用的 K 线类型:BTCUSDT.BINANCE-1-HOUR-LAST-EXTERNAL,已处理 K 线:56856 诊断:should_enter() 在 50537 根已评估 K 线上返回了 0 次方向信号 -> 你的 ENTRY CONDITION 从未触发。放宽入场逻辑/阈值。 确保你的策略能在给定数据和参数下产生交易。

回测评审

夏普
0.04
总收益率
-1.39%
最大回撤
28.37%
总交易数
231
胜率
49.4%
盈利因子
1.00

机制实现正确,并非零交易的数据错误:两条腿均有成交(231 笔交易,108 多/123 空),已加载 CM 资金费率序列,资金费率已入账,且组合确实是 Delta 中性(beta -0.01,benchmark_meaningful=false)

低回撤(28.4%)和低波动率(12.4%),符合市场中性构造的特征

扣除成本后无优势:约 6 年间,profit_factor 1.0013 和 total_return -1.39%——统计上盈亏平衡,夏普比率为 0.039

相较于成本,优势微乎其微:每笔交易期望收益为 $2.57(在平均持仓 $25% 的情况下约为 0.001%),远低于约 0.06% 的 CM 双边手续费底线

impact_cost_pct 89.26% — 仅市场冲击就吞噬了毛 PnL 的 89%

capacity_usd仅$125,505——优势只在玩具级规模下存在,单凭这一点就足以阻止单独晋级

开发者自己的 iteration-6 说明承认,紧密联动腿之间真实的 CM/USD-M 差值每 8 小时约为 1e-6;入场阈值被下调至 1e-6 底线以强行产生交易,因此现在是在低于交易成本的噪声级利差上交易

分析

DO NOT OPTIMIZE——对冲腿从未成交,因此这次回测衡量的完全是错误策略。(1)BLOCKING,ROOT CAUSE VERIFIED IN CODE:全部 303 笔交易都在 BTCUSDT.BINANCE;在 57,168 根柱线中,COIN-M 笔交易为零。`contracts_for_notional()`(base_template.py:485)接受一个 NO instrument 参数——它读取 `self._instrument`,也就是 PRIMARY,即 LINEAR USD-M perp——并且无条件返回 Decimal('0')(“非反向合约返回 0”)。随后您的 `_submit_entry` 遇到 `if cm_qty is None or float(cm_qty) <= 0: return` 并静默丢弃该腿;根本不会执行 `_submit_entry_instrument()`。您的 should_enter 会检查所有 PASS(CM 根柱线通过 on_extra_bar 到达),因此策略正确决定进行对冲,却在提交时丢弃对冲腿——entry_diag……展开收起

DO NOT OPTIMIZE——对冲腿从未成交,因此这次回测衡量的完全是错误策略。(1)BLOCKING,ROOT CAUSE VERIFIED IN CODE:全部 303 笔交易都在 BTCUSDT.BINANCE;在 57,168 根柱线中,COIN-M 笔交易为零。`contracts_for_notional()`(base_template.py:485)接受一个 NO instrument 参数——它读取 `self._instrument`,也就是 PRIMARY,即 LINEAR USD-M perp——并且无条件返回 Decimal('0')(“非反向合约返回 0”)。随后您的 `_submit_entry` 遇到 `if cm_qty is None or float(cm_qty) <= 0: return` 并静默丢弃该腿;根本不会执行 `_submit_entry_instrument()`。您的 should_enter 会检查所有 PASS(CM 根柱线通过 on_extra_bar 到达),因此策略正确决定进行对冲,却在提交时丢弃对冲腿——entry_diag 中没有任何内容能显示这一点,因为 entries_submitted=303 只统计主腿。FIX:为 `contracts_for_notional()` 添加 instrument 参数,以解析 `self.cache.instrument(instrument_id)` 并读取 THAT instrument 的 is_inverse/乘数;在基础辅助函数修复之前,根据 CM instrument 的乘数,直接计算 CM 腿的仓位规模。并且,NEVER 不要在对冲数量为零时静默留下 `return`——应抛出异常或调用 log.error 并拒绝交易。会静默丢弃一条腿的 delta-neutral 策略,比直接崩溃的策略更糟。WHAT YOU ACTUALLY BACKTESTED:一个裸露的方向性 BTC USD-M perp,权益约为 0.45x。第 3 笔交易为 SHORT @ 11,603.0 -> 10,277.6,获利 +$5,561.93(+12.29%)——纯粹押注 BTC 方向。这就是为什么 max_drawdown 为 27.75%、波动率为 12.62%、峰度为 37.57,且有 +10.05% 和 -5.87% 天,滚动夏普比率在 +5.41 至 -6.33 之间剧烈波动。基于同一标的的 BTC-perp 对 BTC-perp 组合,不可能在一天内变动 10%。(2)DESIGN DEFECT THAT SURVIVES THE FIX——MEASURE THIS BEFORE WRITING CODE。您自己的文档字符串称,价差每 8h 约为 1e-5。按您观察到的持仓时间 6d18h(约 20.4 个资金费率周期)计算,最大持有收益为 20.4 x 1e-5 = 名义金额的 0.0204%;而往返交易成本为 USD-M 约 0.10% + COIN-M 约 0.06% = 约 0.16%。手续费约为理论持有收益总额的 8x;盈亏平衡要求每 8h 的 |spread| 至少约为 8e-5,这相当于 ABSOLUTE 资金费率的幅度,而非两个紧密联动的 BTC 永续合约之间的差值。看看组合实际收取了什么:FULL USD-M 资金费(第 1 笔交易:做空期间 +$993.83,没有 CM 腿支付另一侧)——这恰恰是该假设声称要摆脱的、已衰减的绝对持有收益目标。因此:载入两条资金费率序列,在完整历史区间计算 spread = f_CM - f_USDM,并 REPORT |spread| 的分布(中位数、p90、p99)以及 |spread| >= 8e-5 的 8h 报价占比。我尚未 NOT 测量这一点,不会捏造数字——但这是决定该假设是否仍有成立可能的问题,必须用数据回答,不能靠重跑来回答。如果价差很少超过手续费门槛,就停止并升级给研究负责人;参数调优无法挽救一个被手续费压过的机制。(3)ESCALATE:BINANCE_CM 交易场所的账务核算也独立存在问题。今天审查的 BtcCoinMImpulseBarContinuationTrendLS1H 中,一笔 LONG 遇上 +0.47% 行情却记入 price_pnl -46,718.00;一笔 SHORT 遇上 -1.70% 行情却记入 -38,490.97;total_commission 在 1,116 次往返交易中为 $2.7982;资金费约多算了 500x;1,116 笔交易中有 1,116 笔亏损。即使现在对冲单能提交,CM 腿的盈亏、手续费和资金费仍不可信。两个独立的 COIN-M 策略现在都指向同一交易场所路径——策略工厂的准入检查必须验证该路径,或正式阻止 BINANCE_CM。(4)SMALLER:equity_curve 从 200,000(两个交易场所账户)开始,但 position_size() 将仓位设为约 $45k = 0.45 x $100k,因此报告的单笔杠杆为 0.22,而非预期的 0.45——请确认双交易场所组合中 get_account_equity() 返回的是哪个权益值。capacity_usd 仅为 $6.42M,且有 impact_cost_pct 12.48%。前四笔交易全部恰好在 10d 0h 0m = max_hold_bars 时退出,因此请报告退出路径构成(spread_converged / max_hold / kill_switch);若时间止损占主导,收敛退出机制就只是摆设。ORDER OF WORK:先用数据回答(2);升级处理(3);只有两项都过关后,才修复仓位规模辅助函数并重跑,同时报告交易 PER INSTRUMENT(两个交易场所合计必须约为 2x303)、每条腿的名义金额、组合的实际 delta、退出路径构成及每条腿的手续费。THIS IS AN ABANDON BAR:真正双腿 delta-neutral 的 BTC perp-perp 组合应显示仅几个百分点的 max_drawdown、较低的个位数年化波动率,且每日收益落在约 +/--1% 之外的情况很少(NO)。如果修复后的版本仍显示 27% 回撤和 10% 天,那么两条腿就没有对冲,delta-neutral 的说法也不成立。若 |spread| 很少超过 8e-5,这就是一笔被包装成套利的手续费主导型持有收益交易——和导致跨品种主流币资金费套利组合失败的问题相同——我会放弃,而不是继续调参。获认可的重新构想是:“在一个确实持续存在资金费率偏斜的标的池中运行该机制。”CM-对-USD-M IS 是否构成这样的标的池,是一个需要实证回答的问题;本次运行并未下单,因此没有回答。

迭代历史

验证失败(第 2 层 — 合成情景): 使用的参数:['smooth', 'exit_diff', 'entry_diff', 'capital_frac', 'min_notional', 'max_hold_bars', 'qty_precision', 'sync_tol_hours', 'kill_switch_pct'] 请检查 __init__ 是否通过 self.parameters.get() 设置了所有属性。 - steady_uptrend: TypeError: BtcCmUsdmFundingSpreadCarryNeutral._at() 接收 2 个位置参数,但实际传入了 3 个(K 线时间戳:1735689840000) - steady_downtrend: TypeError: BtcCmUsdmFundingSpreadCarryNeutral._at() 接收 2 个位置参数,但实际传入了 3 个(K 线时间戳:1735689840000) - flat_ranging: TypeError: BtcCmUsdmFundingSpreadCarryNeutral._at() 接收 2 个位置参数,但实际传入了 3 个(K 线时间戳:1735689840000) - volatility_spike: TypeError: BtcCmUsdmFundingSpreadCarryNeutral._at() 接收 2 个位置参数,但实际传入了 3 个(K 线时间戳:1735689840000) - zero_volume: TypeError: BtcCmUsdmFundingSpreadCarryNeutral._at() 接收 2 个位置参数,但实际传入了 3 个(K 线时间戳:1735689840000) - price_gap: TypeError: BtcCmUsdmFundingSpreadCarryNeutral._at() 接收 2 个位置参数,但实际传入了 3 个(K 线时间戳:1735689840000)

结局总结

如果结构性价差的幅度低于双边手续费和市场冲击成本底线,它就不是可交易的优势;填补投资组合中代表性不足的类别也无法挽救低于成本的信号。

回测审查在第 6 次迭代时给出了“放弃”的结论:实际的 CM-对-USD-M 差值仅为微不足道的、约每 -8 小时 1e-6 的价差,两条腿高度联动,收益完全被手续费和市场冲击吞噬;且入场区间已降至 1e-6 底线以强行产生交易,因此任何优化都无法创造优势。

通过做空资金费率较高的一腿、做多另一腿,赚取 Binance 币本位(COIN-M)与 USDT 本位(USD-M)BTC 永续合约之间的资金费率差,同时在同一标的上保持 Delta 中性和市场中性。

两条腿均正确成交并保持 delta 中性(231 笔交易,108 笔做多/123 笔做空,beta -0.01),历时约 6 年,但结果略亏于盈亏平衡:总收益率 -1.39%,夏普比率 0.039,盈利因子 1.0013,每笔交易预期收益仅 $2.57(约 0.001%);市场冲击消耗了毛损益的 89.26%,容量仅约 $125,505。

Stratmill 是研究与模拟交易工具,不提供财务建议,也不是经纪商。回测与模拟结果均为假设性结果。交易存在亏损风险。