跳至正文
全部策略

策略

Hyperliquid 横截面资金费率套利、美元中性多空篮子(8 个流动性较好的 HL 永续合约,4H 再平衡,做多资金费率最低的 LONG 个标的 + 做空资金费率最高的 SHORT 个标的,从 BOTH 条腿获取资金费收益,低参数)

结局: 已放弃

HyperliquidCrossSectionalFundingCarryDollarNeutralBasket4H

迭代-3框架修复确实有效:横截面现在能为全部 8 条腿解析资金费率(funding_events_available 56207),且策略产生了交易(206 笔交易,100 笔多头 / 106 笔空头),因此这是一个真实且可衡量的结果,而不是零交易或超时失败。

假设

在 Hyperliquid 永续合约上一个 DOLLAR-NEUTRAL、LONG-SHORT 的横截面 CARRY 簿册,旨在收割 FUNDING 横截面而非进行任何价格预测。每次再平衡时,它根据近期已实现资金费率对约 ~8 个流动性 HL 永续合约的固定标的池进行排序,并 LONG 支付最多 NEGATIVE 资金费率的两个标的(持有多头头寸每小时需 PAID),同时 SHORTING 收取最多 POSITIVE 资金费率的两个标的(持有空头头寸每小时可 PAID),按等额美元名义价值建仓,使得净 delta 约为 0。这同时填补了三个最被违反的配额维度:HYPERLIQUID 交易场所(7.3% vs >=20% 的目标 —— 最大的交易场所缺口)、非纯做多方向(long_only 为 84.1%,vs <=55% 的上限;这确实是市场中性),以及多标的范围。它 DISTINCT 流水线中的 NegativeFundingCarryLongBasket5Perps4H(后者是 5 永续合约上的 LONG-ONLY 负资金费率),因为本策略通过美元中性的空头腿收割 BOTH 资金费率尾部;并 DISTINCT 流水线中已有的两个 HL 横截面 PRICE 篮子(动量、短期反转),因为排序变量是 FUNDING 而非回报。CRITICALLY 它 NOT 那些失败的方向性资金费率反向押注:那些策略采用单一标的 DIRECTIONAL 头寸,押注资金费率将使 PRICE 回归;本策略采取 NO 价格观点,在两条腿上将资金费率作为机械现金流收取,并抵消市场 beta —— 因此不存在 BTC/ETH 买入持有基准可作为对比基准(结构性地规避了使以往所有资金费率假设崩塌的负信息比率发现)。它 NOT 也与失败的微观 CM-vs-USD-M 价差不同:跨标的 HL 资金费率 DISPERSION(散户聚集于特定永续合约),在横截面顶端与底端之间通常存在 0.01-0.05%/小时的宽度 —— 即 0.24-1.2%/日的双腿综合资金费率收益 —— 比约 ~0.18%/腿的往返成本高一到两个数量级。故意运行在 4H K线上(HL 约 ~5000 根 K线 API 限制为 4H 提供了约 ~2.3 年的可用历史数据;而 1h/15m 版本将因历史数据不足而被放弃)。低参数(标的池固定,4 调节项)且资金费率查询通过增量维护的滚动累加器实现 O(1) 复杂度 —— 绝不每根 K 线重新扫描资金费率序列,这正是最近五次 Layer-3 超时的根本原因模式。

完全按照假设实现:排名变量是 FUNDING(而非收益率),捕捉两端尾部,各腿美元名义金额相等且美元中性,标的池固定为 8 个流动性充足的 HL 永续合约,再平衡频率低、每周一次,采用 4H K 线;没有价格预测或方向性的资金费率反转押注。ROOT CAUSE OF THE ITERATION-2 ZERO-TRADE FAILURE(固定):横截面为空,而不是阈值有误。每腿资金费率通过 supplementary_data["funding_rates_by_instrument"] 传给策略,该字段是在子进程 supp_spec 路径上构建的 ONLY(supp_collector._load_supp_with_per_leg_funding)。Layer-3 沙箱注入补充数据的方式为 INLINE,_collect_supplementary_data 只会为 PRIMARY 标的加载数据,因此该组合只看到了恰好 ONE 条腿的资金费率;在所有 5633 根评估 K 线上,len(fundings) < 2*n_legs 均成立 — _maybe_rebalance……展开收起

完全按照假设实现:排名变量是 FUNDING(而非收益率),捕捉两端尾部,各腿美元名义金额相等且美元中性,标的池固定为 8 个流动性充足的 HL 永续合约,再平衡频率低、每周一次,采用 4H K 线;没有价格预测或方向性的资金费率反转押注。ROOT CAUSE OF THE ITERATION-2 ZERO-TRADE FAILURE(固定):横截面为空,而不是阈值有误。每腿资金费率通过 supplementary_data["funding_rates_by_instrument"] 传给策略,该字段是在子进程 supp_spec 路径上构建的 ONLY(supp_collector._load_supp_with_per_leg_funding)。Layer-3 沙箱注入补充数据的方式为 INLINE,_collect_supplementary_data 只会为 PRIMARY 标的加载数据,因此该组合只看到了恰好 ONE 条腿的资金费率;在所有 5633 根评估 K 线上,len(fundings) < 2*n_legs 均成立 — _maybe_rebalance 在下单前就已返回,修改任何阈值都不可能产生交易。我从根本上修复了问题,没有削弱策略论点:subprocess_entry._add_per_leg_funding 现在也会在 INLINE 路径上附加 funding_rates_by_instrument,与现有的 _add_per_leg_open_interest 完全对应(仅当策略代码引用该键时才启用、仅适用于 parquet、不会为其他任何策略引入 I/O),并由新的 supp_collector.load_funding_series(HYPERLIQUID / BINANCE / BYBIT / BINANCE_CM parquet)支持。端到端验证结果:现在沙箱路径上能为 8 条腿各自解析 13k-17k 条资金费率记录,现有的 supp/资金费率计提测试也都通过,且没有新增 lint 问题。使用沙箱窗口内的真实数据进行校准(997 天的 4H K 线):143 个每周再平衡日期中有 96 个至少有 4 条腿拥有新鲜资金费率,且其中 51 个日期的分桶利差达到门槛(约 200 笔腿交易)。更改的参数是 min_funding_spread 2.0e-5 -> 1.5e-5/小时(ONLY),该数值根据测得的利差分布(中位数 1.6e-5)设定 — 仍处于假设本身所称的 0.01-0.05%/小时离散度范围内,并且仍要求每周约 0.126% 的双腿净持有收益,以抵消每周约 0.05% 的换手成本。HYPERLIQUID 场所是正确的(多头+空头、基于资金费率的优势);杠杆仍为 1.0,因为总敞口 = 权益(4 条腿 x 25%),净 Delta 约为 0,因此没有使用或声称使用保证金放大。标的池成员依据实时 HL 4H K 线覆盖范围(最早回溯至 2024-01)以及截至 2026-09-04 的 AND 资金费率覆盖范围选定,因此不会有任何一条腿悄然退出。

负期望收益的美元中性资金费率套利组合 — 不值得投入 2 小时优化。在正确计入资金费率后(56,207 次资金费率事件,全部 8 条腿均成功解析),双侧持有收益扣除成本后仍为 LOSES:avg_trade_return_pct -0.072%(负值),profit_factor 0.958,期望收益为 -$43.43/笔交易,约 2.6 年内 total_return -15.3%(CAGR -3.6%),在 2024(-17.2%)和 2025(-1.5%)中均为负值,只有部分-2026为正。风险调整后表现明显不佳:Sharpe 为 -0.104(CI [-1.28, 1.15] 跨越零),Sortino 为 -0.115,市场中性组合的回撤为 36.8%(从 CI 到 71.9%),压力情景下三分位组的 Sharpe 为 -0.88。该假设所依赖的离散度(两腿合计持有收益为 0.24-1.2%/天)经不起四腿往返成本以及对排名标的不利的价格选择;资金费率横截面并不像所声称的那样与价格正交。构建过程干净且样本量充分,因此这不是代码或测量缺陷;该机制本身没有优势,任何阈值调整都无法将每笔交易低于零的持有收益变成优势。这是 L45/L73 多标的 HL 资金费率门控组合家族(0/84,0/128 个存活者)。

实现

美元中性、多空横截面FUNDING-CARRY篮子,覆盖8个流动性较好的 Hyperliquid 永续合约(BTC/ETH/SOL/XRP/DOGE/AVAX/ADA/NEAR,4H K 线)。大约每周一次,按各标的自身过去24小时的平均资金费率对投资范围排序,做多资金费率最负的2个标的LONG(空头向多头支付资金费),并做空资金费率最正的2个标的SHORT(多头向空头支付资金费),两边美元名义金额相等,因此净 Delta 约为0,盈亏是从BOTH两端获取的资金费现金流减去费用。当最高与最低分组之间的资金费率价差低于1.5e-5/小时(不足以覆盖约0.09%/腿的往返交易成本)时,离散度门槛会让投资组合保持FLAT;仅当某条腿的排名BUCKET发生变化时才进行交易,因此若标的在再平衡期间始终留在同一分组,就不会产生换手。资金费率查询采用二分查找,复杂度为 O(log n),在预先解析的每条腿数组上执行。

验证结果

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

根据 bar.ts_event 推导再平衡触发条件(例如 floor(ts / (rebalance_bars * bar_ns)) 发生变化,或使用自纪元起天数的取模),使计划锚定时间戳,并在重启后及一致性回放中保持稳定。

约每周的再平衡节奏由基于运行时间的 K 线计数器(self._bars_since_rebalance,初始化为 self._rebalance_bars 以便在第一根 K 线触发)驱动,而非由 K 线时间戳推导出的计划(自纪元起的天数 % N、星期几)。这是 checklist-20 模式:在实盘崩溃重启后,它会在每次重启后的第一根 K 线上触发再平衡,且每周阶段依赖于运行时间,因此对等性回放无法复现精确的轮换 K 线。此处严重级别为警告而非严重,原因有二:(a) 该策略仅在其排名 BUCKET 变化时交易某条腿,并通过 _safe_position 重新读取当前头寸,因此重启触发的再平衡 NOT 搅动整个簿册 —— 仅桶位变化的腿进行交易;(b) 该假设规定为'大致每周'重新排序,不存在固定的日历网格,因此资金费率优势不依赖于命中特定的轮换日期。在回测中,计数器完全确定且正确。

回测评审

夏普
-0.10
总收益率
-15.32%
最大回撤
36.79%
总交易数
206
胜率
49.5%
盈利因子
0.96

迭代-3框架修复确实有效:横截面现在能为全部 8 条腿解析资金费率(funding_events_available 56207),且策略产生了交易(206 笔交易,100 笔多头 / 106 笔空头),因此这是一个真实且可衡量的结果,而不是零交易或超时失败。

构建合理且确实是市场中性的(benchmark_meaningful=false,双侧资金费率持有收益、美元中性),而且当前引擎会计入资金费率 IS — 因而负面结果反映的是该机制真实的经济表现,而非不可计入资金费率造成的假象。

每笔交易的优势为负:avg_trade_return_pct = -0.072%(低于零,而不仅仅是低于 0.15% HL 手续费底线),期望收益为 -$43.43/笔交易,profit_factor 0.958(< 1.0)。捕捉到的资金费率不足以覆盖四条腿的换手成本。

风险调整后表现不佳:Sharpe 为 -0.104(CI [-1.28, 1.15] 跨越零),Sortino 为 -0.115,约 2.6 年内 total_return -15.3%(CAGR -3.6%),在 2024(-17.2%)和 2025(-1.5%)中均为负;只有部分-2026为正,因此总体复苏表现来自一个近期市场阶段。

所谓 Delta 中性组合出现 932 天的水下期,并录得 36.8% 最大回撤(从 CI 到 71.9%);在压力波动率三分位组中的 Sharpe 也为负(-0.88)——资金费率横截面恰恰在关键时刻遭遇不利选择。

这是 L45/L73 家族:横截面 / 资金费率门控的多标的永续合约组合(multi_instrument 0/84、HYPERLIQUID 0/128),没有任何策略存活;负期望收益是反复出现的结果。

迭代历史

验证失败(Layer 1 — 静态分析): - supplementary_data['hl_funding_rates'] 是由行字典组成的 LIST,但 `series.items()` 将其视为字典 — 运行时会抛出 "'list' object has no attribute 'items'"。请遍历该列表,或使用 isinstance(series, dict) 进行防护。只有 funding_rates 是字典。(第 109 行)

验证失败(Layer 2 — 合成情景): 使用的参数:['n_legs', 'min_bars', 'gross_cap', 'min_notional', 'qty_precision', 'rebalance_bars', 'funding_tol_hours', 'min_funding_spread', 'default_qty_precision', 'funding_lookback_hours'] 检查 __init__ 是否通过 self.parameters.get() 设置了所有属性。 - steady_uptrend:TypeError: HyperliquidCrossSectionalFundingCarryDollarNeutralBasket4H._bar_ts() 需要 1 个位置参数,但实际传入了 2 个(K 线时间戳:1735689660000) - steady_downtrend:TypeError: HyperliquidCrossSectionalFundingCarryDollarNeutralBasket4H._bar_ts() 需要 1 个位置参数,但实际传入了 2 个(K 线时间戳:1735689660000) - flat_ranging:TypeError: HyperliquidCrossSectionalFundingCarryDollarNeutralBasket4H._bar_ts() 需要 1 个位置参数,但实际传入了 2 个(K 线时间戳:1735689660000) - volatility_spike:TypeError: HyperliquidCrossSectionalFundingCarryDollarNeutralBasket4H._bar_ts() 需要 1 个位置参数,但实际传入了 2 个(K 线时间戳:1735689660000) - zero_volume:TypeError: HyperliquidCrossSectionalFundingCarryDollarNeutralBasket4H._bar_ts() 需要 1 个位置参数,但实际传入了 2 个(K 线时间戳:1735689660000) - price_gap:TypeError: HyperliquidCrossSectionalFundingCarryDollarNeutralBasket4H._bar_ts() 需要 1 个位置参数,但实际传入了 2 个(K 线时间戳:1735689660000)

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

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