策略
跨交易场所资金费率差捕捉——Binance 与 Hyperliquid BTC 永续合约 Delta 中性套息(做多低资金费率腿 / 做空高资金费率腿,阈值触发)
结局: 已放弃
BtcCrossVenueFundingSpreadCarryBinanceHlNeutral
结局总结
该策略旨在捕捉Binance与Hyperliquid BTC永续合约之间持续的资金费率差,持有delta中性的双腿carry以收取净资金费,同时将入场成本分摊到多次收入中。回测确认对冲构建正确——波动率、beta和相关性接近零,且资金费如实计入——但结果是无情的、以费用为主导的失血:夏普比率-11.15,总回报-13.7%,且每月均为负。核心前提破灭的原因是价差在约1天内即均值回归,而非持续数天,因此每笔交易仅赚取约0.027%的carry,却要支付约0.19%的双场所费用。分析师在经过4轮迭代后,在回测评审关口放弃了该策略,认为其是阈值调优无法修复的结构性费用下限机制,且该策略从未进入优化阶段。
假设
一种市场中性、跨场所的carry策略,捕获PERSISTENT FUNDING-RATE DIFFERENTIAL,该价差存在于Binance USD-M和Hyperliquid上的两个BTC永续合约之间。两个合约都跟踪BTC现货,偏差在几个基点以内,但其资金费率由相互独立的订单流决定并经常分化(参与者组合不同,资金费率机制不同——Binance为8h,Hyperliquid按小时)。当A场所的资金费率显著超过B场所时,在资金费率偏高的场所SHORT该永续合约,同时在资金费率偏低(或为负)的场所LONG该永续合约,两腿名义价值相等,每期收取NET资金费率差,同时保持约零净BTC delta。只要价差持续就持有仓位(通常为数天),因此两腿上的一次性双边taker成本可分摊到多次资金费率收入中。特意保持SIMPLE:一个入场阈值、一个出场阈值、等名义价值双腿、无逐资产优化扇形——少参数设计是对趋势/反转组合中过拟合失败的直接回应。在两个场所均采用单一已确认具流动性的标的(BTC),以避免导致近期横截面/协整假设失败的另类币篮子数据不可用问题。
针对 Layer-3 300s 墙钟超时问题的第 4 次迭代修复。资金费率查询已经是 ALREADY O(log n)(对预先在 __init__ 中计算的数组使用 np.searchsorted),因此超时并非由重新扫描时间序列造成,而是柱数乘以每根持仓柱的开销所致:与此前没有交易的迭代不同,此策略会在 TWO 个交易场所开仓并持仓;每根持仓柱都要重新估值两条腿(get_account_equity + 每条腿的 PnL),还要加上 NautilusTrader 内部对两个交易场所头寸的重新估值,最终在 300s 墙钟限制前,处理约 56k 根 1-HOUR 柱。进行了两项精简且不影响策略边际的改动:(1) 将两条腿的周期从 1-HOUR 调粗至 4-HOUR——信号基于资金费率,而非价格形态,因此柱数减少约 4x,套利逻辑保持不变,也完全符合多日持仓的策略设想;(2) 将高开销的合并 PnL 止损开关降频至每 kill_check_every(=6)根柱检查一次,使每根持仓柱的开销保持稳定(成本较低的收敛/最长持仓时间退出仍在每根柱上触发)。入场逻辑、资金费率差信号、两腿仓位规模以及所有导入项均未改变,因此 Layers 1-2 仍然通过。已将 max_hold_bars 调整为 180,以便在新的 4-HOUR 时间周期下保留约 30 天的兜底期限意图。
以费用为主导的跨场所资金费carry,扣除费用后结构性为负——不值得优化。IMPORTANT:这NOT是因资金费未计入而被否决(资金费IS已计入),也NOT是对冲错误——账本确实是delta中性的(annualized_volatility 1.18%,beta为-0.0007)。其被否决是基于CREDITED结果:无情失血(夏普比率-11.15,total_return -13.7%,profit_factor 0.865,期望值-$66/笔交易),14个月样本中每月均为负。根本原因是跨场所费用下限:双场所双边taker成本(约0.10% Binance + 约0.09% HL ≈ 0.19%/笔交易)要求资金缺口持续约7天(按10% APR价差)才能盈亏平衡,但价差均值回归,仓位在约1天内退出(avg_holding 1d 2h,exit_apr 0.03),因此每笔交易仅收取约0.027%的carry,却支付约0.19%的费用——费用约为carry的7x,佣金占毛收益的14%,且毛收益本身已约盈亏平衡。假设前提(“持有数天,分摊到多次收入中”)不成立。阈值调优无法修复:即使放宽入场,Binance-HL BTC资金费率缺口也很少能持续足够久以覆盖双场所成本,整个样本都在失血。不存在代码错误,也没有被困在失效标的上的已晋级同类——该机制在此期限上就是以费用为主导。FAILURE PATTERN:Binance对Hyperliquid的BTC delta中性资金费率差carry确实做到了delta中性,但在结构上以费用为主导——约0.19%的双场所双边成本要求资金缺口持续约7天/每10% APR优势,而缺口在约1天内即均值回归,导致稳定的PF<1失血(每月均为负),入场/出场阈值调优无法逆转。
实现
跨交易场所的 BTC Delta 中性资金费差套息,交易场所为 BTCUSDT.BINANCE(USD-M,资金费周期 8 小时,主要/信号腿)和 BTCUSD.HYPERLIQUID(资金费每小时结算,对冲腿)。每根 K 线计算年化资金费差 diff = bn_rate*1095 - hl_rate*8760;当 |diff| >= entry_apr 时,以相等的 USD 名义金额在资金费率较高的场所做空、在资金费率较低的场所做多,收取净资金费差,同时保持 BTC Delta 约为零。价差收敛(最短持有期后 |diff| <= exit_apr)、达到最长持有期限或受限频的组合 PnL 熔断开关触发时平仓。运行于 4-HOUR K 线;leverage=2 通过 self.leverage 接入 position_size。
验证结果
验证失败(第 3 层——沙盒回测):冒烟测试超过 300 秒的墙钟时间限制。这几乎总是意味着每根 K 线的工作量随历史数据增长,例如反复扫描完整的资金费/补充序列,或在每根 K 线上于 calculate_signal()/on_bar() 中重建列表并调用 min()/sorted()。应在 __init__ 中预先计算已排序的时间戳数组 ONCE 并使用 bisect,或按时间戳缓存查找结果,使每根 K 线的开销为 O(log n) 而非 O(n)。
回测评审
- 夏普
- -11.15
- 总收益率
- -13.74%
- 最大回撤
- 13.92%
- 总交易数
- 354
- 胜率
- 46.9%
- 盈利因子
- 0.86
真正的 Delta 中性:annualized_volatility 1.18%、Beta -0.0007、相关性 -0.03——两条腿的对冲构造正确(没有方向性敞口泄漏缺陷),且已计入资金费收入,因此套息收益得到了如实衡量
设计简单、参数较少;仅使用一个已确认流动性充足的标的(BTC);资金费数据充足(7865 次事件),且可交易窗口内有 177 笔交易
持续亏损且手续费占主导:夏普比率 -11.15、total_return -13.7%、profit_factor 0.865、期望收益 -$66/笔;样本期 14 个月中有 EVERY 个月为负(2025-03 至 2026-05)
费用下限:双场所双边成本约0.19% vs 每日carry约0.027%/天(按10% APR入场)——平均持有仅1d 2h,费用约为所捕获carry的7x;佣金占毛收益的14%,且毛收益约盈亏平衡(avg_win 908 ~ avg_loss 927)
假设前提(“持有数日,由多次资金费收入摊销成本”)未能成立:价差均值回归时,exit_apr 0.03 会在约 1 天内平仓,因此成本始终无法摊销
这是反复出现的跨交易场所资金费套息手续费主导模式;调节阈值无法凭空创造出足够持久、能覆盖两个场所成本的价差
分析
该策略正确构建了均衡的delta中性双腿,但CHURNS:平均持有期仅为11h 38m,而假设要求持有数天,以分摊约0.10%/腿的双边taker成本。费用+冲击约为毛收益的21%,且每日收益均为负——纯成本失血,未捕获到carry收益。给开发者的修复建议:(1)在做阈值判断前SMOOTH资金费率差——你当前是将瞬时Binance 8h费率(x3x365)与瞬时HL小时费率(x24x365)直接比较;x8760年化会放大小时级噪声,导致价差在入场/出场区间之间来回穿越。使用每个场所已实现资金费率的滚动平均(例如过去8-24h),使信号反映PERSISTENT价差,而非单次噪声报价。(2)大幅提高min_hold_bars(例如8-24根K线),并加入迟滞/扩大入场-出场差距,使基于真实价差开仓的头寸持有足够久,以让累计资金费率收入超过入场成本。(3)增加一项工具化检查,确认在正确持仓时BOTH双腿上确实收到了资金费——将PnL分解为已收资金费 vs 价格/费用,以便在信任净值之前确认carry为正。(4)考虑仅当价差的SIGN已稳定N个周期时才入场,而不仅看其幅度。在请求优化之前,重新回测并确认avg_holding_period以天为单位计量,且每日收益不再一致为负。
迭代历史
验证失败(第 2 层——合成场景): 使用的参数:['exit_apr', 'entry_apr', 'per_leg_pct', 'min_notional', 'max_hold_bars', 'min_hold_bars', 'qty_precision', 'kill_switch_pct'] 检查 __init__ 是否使用 self.parameters.get() 设置了所有属性。 - steady_uptrend: TypeError: BtcCrossVenueFundingSpreadCarryBinanceHlNeutral._rate_at() 接收 3 个位置参数,却传入了 4 个(K 线时间戳:1735689840000) - steady_downtrend: TypeError: BtcCrossVenueFundingSpreadCarryBinanceHlNeutral._rate_at() 接收 3 个位置参数,却传入了 4 个(K 线时间戳:1735689840000) - flat_ranging: TypeError: BtcCrossVenueFundingSpreadCarryBinanceHlNeutral._rate_at() 接收 3 个位置参数,却传入了 4 个(K 线时间戳:1735689840000) - volatility_spike: TypeError: BtcCrossVenueFundingSpreadCarryBinanceHlNeutral._rate_at() 接收 3 个位置参数,却传入了 4 个(K 线时间戳:1735689840000) - zero_volume: TypeError: BtcCrossVenueFundingSpreadCarryBinanceHlNeutral._rate_at() 接收 3 个位置参数,却传入了 4 个(K 线时间戳:1735689840000) - price_gap: TypeError: BtcCrossVenueFundingSpreadCarryBinanceHlNeutral._rate_at() 接收 3 个位置参数,却传入了 4 个(K 线时间戳:1735689840000)
结局总结
即便跨交易场所资金费套息策略正确实现了 Delta 中性,只要价差均值回归速度快于两个场所往返成本的摊销速度,策略仍会失败;决定性约束是套息机会的持续时间,而非对冲构造,调节阈值无法延长其持续时间。
回测审查在优化前关卡给出了“放弃”的结论,认为策略在结构上受手续费主导,而非存在程序错误——两个场所约 0.19% 的往返成本要求资金费差对每 10% APR 的优势持续约 7 天,但价差均值回归,约 1 天后便退出,因此手续费约为已捕获套息收益的 7x。
一种市场中性的跨交易场所套息策略,在 Binance USD-M 和 Hyperliquid 上以相同名义金额做空资金费率较高的 BTC 永续合约、做多资金费率较低的合约;当年化资金费差超过约 10% APR 时入场,并在价差持续期间持仓,以收取净资金费,同时维持接近零的 BTC Delta。
对冲确实实现了 Delta 中性(年化波动率 1.18%、Beta -0.0007、相关性 -0.03),且已计入资金费收入,但策略持续亏损:总收益 -13.7%、夏普比率 -11.15、盈利因子 0.865、跨 177 笔交易的期望收益为 -$66/笔;14 个月样本中的每个月都为负,手续费占毛收益的 14%。
Stratmill 是研究与模拟交易工具,不提供财务建议,也不是经纪商。回测与模拟结果均为假设性结果。交易存在亏损风险。