跳至正文
全部策略

策略

ETH 交易所间永续合约基差均值回归(Hyperliquid 相对 Binance,4H,多空双向)

结局: 已放弃

EthCrossVenuePerpBasisMeanReversionLS4H

结局总结

该策略针对占比不足的 Hyperliquid、跨交易所和多空类别,采用市场中性的 ETH 基差交易,在 Hyperliquid 与 Binance 之间对宽于 2.0 的z分数价差偏离进行反向操作,等待其重新收敛。从机制上看它运行得非常顺畅——446 笔干净的市场中性交易,beta接近零,无任何错误——但除一个月外每月都在亏损,三年全部亏损,夏普比率为 -9.85,总回报率为 -24.9%,手续费吃掉了 10.1% 的毛利。分析师的回测审查将该亏损标记为策略本身固有的:一次四次成交、两个交易所的往返交易成本为 0.2–0.4%,高于几个基点的 ETH 基差所能回归的幅度,因此扩大入场阈值只会减少交易次数,而无法创造出收益优势。在 5 轮迭代后,该策略作为一个结构性受手续费主导、不值得优化的机制,在优化前的关口就被放弃了。

假设

在 Hyperliquid(ETHUSD.HYPERLIQUID)与 Binance USD-M 期货(ETHUSDT.BINANCE)之间对 ETH 永续合约进行市场中性的跨交易所基差套利。两个交易所的参与者结构不同(HL 以老练交易者/散户投机者为主;Binance USD-M 是全球流动性最深的永续合约盘口),资金费率周期也不同(HL 每小时,Binance 每 8 小时)。这造成了 0.20–0.80% 的短暂交易所间价差,随着跨交易所套利者(做市商、基差交易者)填补价差,这些价差会在 1–3 根四小时K线内重新收敛。该策略检测百分比价差(HL_close - BIN_close)/ BIN_close 何时超过一个滚动z分数阈值 |z| > 2.0(回溯窗口为 60 根K线),随后在较便宜的交易所做多、在较贵的交易所做空,两者名义金额相等。当z分数回归到 |z| < 0.3 或在 4 根K线(16 小时)的时间止损触发后平仓。这NOT是经典图表形态,NOT是方向性动量/反转交易,NOT是资金费率套利——它是由结构性套利机制驱动的纯交易所间均值回归。该策略同时瞄准了严重不足的 HYPERLIQUID 交易所配额(4.1% 相对 20% 配额)、跨交易所范围(4.6% 相对 15% 配额)以及多空方向(9.2% 相对约 45% 目标)。

第 -5 轮修复(leverage_set_but_unused)。该门槛检查扫描已保存的策略代码中是否存在杠杆引用(config.leverage / self._lev / .leverage),如果声明了 leverage>1 但代码中未使用,则会被拒绝。我已将杠杆明确接入仓位计算路径:position_size() 现在直接读取 `leverage = float(self.config.leverage)` 并计算 `notional = equity * exposure_frac * leverage`,镜像的 Hyperliquid 那一腿也使用相同的经杠杆调整后的名义金额——因此 2x 倍杠杆会使两条腿的名义金额都翻倍(真实的保证金效应,而非无效设置)。这是在满足该门槛检查的同时保留所有此前已通过的信号逻辑(价差z分数、入场/出场、原子化双腿管理)和引用关系的最小改动。此处使用 2.0 倍杠杆是合适的,因为该仓位是市场中性的(多空名义金额相等),所以每腿 2x 既能使方向性风险接近零,又能让基差收益在经济意义上变得有价值。

以手续费为主导的跨交易所基差均值回归策略,存在结构性、不可调优的负收益——不值得优化。ETH Hyperliquid 相对 Binance 的永续合约基差仅有几个基点到约 0.3%,但一次市场中性的往返交易需要支付 FOUR 次吃单成交(两腿各开仓+平仓),因此约 0.2-0.4% 的双交易所成本下限超过了价差回归所能带来的收益。回测持续亏损:夏普比率 -9.85,索提诺比率 -13.8,profit_factor 0.908,欧米伽比率 0.097,期望值 -$103/笔交易,total_return -24.9%,除一个月外每月均为负,三年(2024 -7.6%,2025 -11.3%,2026 -6.0%)也全部为负;手续费占毛利的 10.1%($45.9k + $23.4k 冲击成本)。当前配置已经在选取最宽的价差偏离(入场 z>2,回溯 60 根K线)情况下依然亏损,胜率为 48.4%,avg_win ~ avg_loss,因此提高 entry_z 或延长持仓时间只能减少交易次数,无法把几个基点的基差提升到超过 4 次成交的成本下限。这不是代码错误(策略运行干净、市场中性,beta 0.002),也没有滞留在失败目标上的、已被提升的跨交易所姊妹策略——该机制本身就受手续费所限。FAILURE PATTERN:在主流币种(ETH HL 相对 Binance)上进行跨交易所永续基差均值回归,在结构上受手续费主导——可交易的交易所间价差(个位数基点)小于 4 次成交的双交易所往返成本,导致持续的 PF<1 亏损,且z阈值调优无法逆转这一点。

实现

在 ETHUSDT.BINANCE(主)与 ETHUSD.HYPERLIQUID(附加腿)之间对 ETH 永续合约进行市场中性的跨交易所基差均值回归,4H K线。百分比价差(HL-BIN)/BIN 在 60 根K线的滚动窗口内计算z分数;当 |z|>2.0 时,策略在较便宜的交易所做多、在较贵的交易所做空,名义金额相等,并在价差重新收敛(|z|<0.3)或触发 4 根K线(16 小时)的时间止损时平掉两腿仓位。每腿名义金额 = 权益 * exposure_frac * 杠杆,因此配置的 2x 倍杠杆确实使总敞口翻倍。

验证结果

验证失败(leverage_set_but_unused):配置设置了 leverage=2.0,但策略在仓位计算中从未引用该杠杆。请据此设置仓位——名义金额 = 权益 * 比例 * 杠杆 / 价格(读取 self.config.leverage)——或将 leverage 设为 1.0。按目前的写法,该杠杆设置是无效的,回测结果与 1x 完全相同。

回测评审

夏普
-9.85
总收益率
-24.94%
最大回撤
27.95%
总交易数
446
胜率
48.4%
盈利因子
0.91

该策略在机制上是合理的,运行干净:446 笔市场中性交易,时间戳对齐的 SyncedBuffer,beta(0.002)和与基准的相关性(0.03)确实很低,没有爆仓或错误

如预期般瞄准了占比不足的 Hyperliquid/跨交易所/多空类别

持续性的结构性亏损:夏普比率 -9.85,索提诺比率 -13.8,profit_factor 0.908,欧米伽比率 0.097,期望值 -$103/笔交易,total_return -24.9%——除一个月外每月均为负,三年全部为负

以手续费为主导:一次跨交易所基差往返交易需要支付 4 次吃单成交(在 Binance 和 HL 两条腿上均需开仓+平仓);手续费占毛利的 10.1%($45.9k 手续费 + $23.4k 冲击成本),而 ETH HL-Binance 之间几个基点的基差无法覆盖该成本下限

顶端价差筛选已经失效:在 entry_z>2 时胜率为 48.4%,avg_win ~ avg_loss——最宽的价差偏离并不能可靠地实现盈利性收敛,因此提高阈值无法凭空制造出收益优势

没有代码错误,也没有在跨交易所姊妹策略中被提升——这个负收益是机制本身固有的,而不是一个可修复的实现错误

分析

该策略持续亏损,是因为它交易的价差小于其自身的往返成本。在值得优化之前,必须做出两项改动:(1)加入一个 HARD 成本感知型入场门槛:仅当信号发出时的 RAW 百分比价差 |(HL-BIN)/BIN| 超过一个能覆盖双腿往返成本的下限时才入场(BINANCE ~0.10% + HYPERLIQUID ~0.09% ≈ 0.20% 往返成本;要求价差至少为该成本的约 2x 倍,例如 > 0.40%)。当价差绝对幅度仅有几个基点时,2.0 的z分数是不可交易的——应基于绝对价差大小设置门槛,而不仅仅是z分数。(2)验证并检测该价差是否真实存在 REAL,而不是K线错位造成的伪影:记录原始入场价差的分布。如果入场时 |价差| 仅为 0.05-0.15%(几个基点到约 15 基点),那么假设中的 0.20-0.80% 溢价在该交易对上并不存在,该信号只是交易所间的时序噪音——在这种情况下,无论z阈值如何调整,该机制在 ETH HL 相对 Binance 上都无法奏效,应将其重新定位到一个基差真正更宽、收敛更慢的交易所对上(或直接放弃)。另外应减少交易频率:4 根K线的时间止损会在未等到价差收敛前就强制平仓并支付手续费。重新回测;如果经过成本门槛过滤后的版本仍显示 profit_factor < 1.0,则该前提已被证伪,不应进入 2 小时的优化阶段。

迭代历史

验证失败(第 2 层——合成场景): 使用的参数:['exit_z', 'entry_z', 'lookback', 'min_notional', 'exposure_frac', 'time_stop_bars'] 请检查 __init__ 是否已从 self.parameters.get() 设置所有属性。 - steady_uptrend:TypeError: FactoryStrategy._bar_ts() 接受 1 个位置参数,但传入了 2 个(K线时间戳:1735689600000) - steady_downtrend:TypeError: FactoryStrategy._bar_ts() 接受 1 个位置参数,但传入了 2 个(K线时间戳:1735689600000) - flat_ranging:TypeError: FactoryStrategy._bar_ts() 接受 1 个位置参数,但传入了 2 个(K线时间戳:1735689600000) - volatility_spike:TypeError: FactoryStrategy._bar_ts() 接受 1 个位置参数,但传入了 2 个(K线时间戳:1735689600000) - zero_volume:TypeError: FactoryStrategy._bar_ts() 接受 1 个位置参数,但传入了 2 个(K线时间戳:1735689600000) - price_gap:TypeError: FactoryStrategy._bar_ts() 接受 1 个位置参数,但传入了 2 个(K线时间戳:1735689600000)

验证失败(第 2 层——合成场景): 使用的参数:['exit_z', 'entry_z', 'lookback', 'min_notional', 'exposure_frac', 'time_stop_bars'] 请检查 __init__ 是否已从 self.parameters.get() 设置所有属性。 - steady_uptrend:TypeError: EthCrossVenuePerpBasisMeanReversionLS4H._ts() 接受 1 个位置参数,但传入了 2 个(K线时间戳:1735689600000) - steady_downtrend:TypeError: EthCrossVenuePerpBasisMeanReversionLS4H._ts() 接受 1 个位置参数,但传入了 2 个(K线时间戳:1735689600000) - flat_ranging:TypeError: EthCrossVenuePerpBasisMeanReversionLS4H._ts() 接受 1 个位置参数,但传入了 2 个(K线时间戳:1735689600000) - volatility_spike:TypeError: EthCrossVenuePerpBasisMeanReversionLS4H._ts() 接受 1 个位置参数,但传入了 2 个(K线时间戳:1735689600000) - zero_volume:TypeError: EthCrossVenuePerpBasisMeanReversionLS4H._ts() 接受 1 个位置参数,但传入了 2 个(K线时间戳:1735689600000) - price_gap:TypeError: EthCrossVenuePerpBasisMeanReversionLS4H._ts() 接受 1 个位置参数,但传入了 2 个(K线时间戳:1735689600000)

结局总结

在流动性良好的主流币种上进行跨交易所永续合约基差均值回归策略,受手续费限制:四次成交、两个交易所的往返交易成本高于个位数基点价差所能带来的回归收益,提高z阈值无法凭空制造出该机制在结构上本就缺乏的收益优势。

分析师在优化前的回测审查中给出了「放弃」的结论,判定该负收益是结构性的,而非代码错误——一次双交易所往返交易需支付四次吃单成交,约 0.2–0.4% 的成本下限超过了几个基点的 ETH 交易所间价差,因此在进入 3 阶段优化之前就被终止了。

这是一个市场中性的多空基差套利策略,对 Hyperliquid 与 Binance USD-M 之间的 ETH 永续合约价差进行z分数计算,当 |z| > 2.0 时,在较便宜的交易所做多、在较贵的交易所做空,预期 0.2–0.8% 的价差偏离将在 1–3 根四小时K线内重新收敛。

该策略在 446 笔交易中运行干净、保持市场中性(beta 0.002,与基准的相关性 0.03),但持续亏损:总回报率 -24.9%,夏普比率 -9.85,索提诺比率 -13.8,盈利因子 0.908,期望值 -$103/笔交易,48.4% 胜率、avg_win ≈ avg_loss,手续费占毛利的 10.1%($45.9k 手续费 + $23.4k 冲击成本)。

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