策略
ETH/BTC 比率双时间框架动量共振——美元中性配对价差,多空,主周期 4H + 1D 确认,信号不一致时平仓(ETHUSDT.BINANCE + BTCUSDT.BINANCE,3 个参数)
结局: 已放弃
EthBtcRatioDualTimeframeMomentumConfluenceLS
从构造上真正做到美元中性(等名义金额、方向相反的两条腿,时间戳同步)——+171% 并非牛市贝塔,在若干非牛市年份也为正
假设
一种 DOLLAR-NEUTRAL PAIRS-SPREAD 策略,将工厂经过验证的 ONE 存活机制 — 双重时间框架动量共振(BTC 双重时间框架动量共振,Sharpe 1.99,paper_stage) — 应用于 ETH/BTC RATIO,而非单一方向性工具。这是对失败日志中第 #1 号杀手的有意结构性修复:每个单一标的的 OHLCV 趋势跟踪策略(ETH 波动率目标化、BNB 回调、XRP 摆动、DOGE 肥尾、LINK 效率比)都失败了,因为其头条收益仅是 2020-2021 加密货币 BULL BETA,之后每年都转为负值,因此最近制度环境下的前推 OOS 和 15 日样本外测试都失败。交易 ETH/BTC RATIO(做多一条腿,做空另一条腿,等额名义)通过构造 REMOVES 整体加密货币 beta — 损益不可能是牛市假象,因为美元中性价差对市场大致平坦。剩下的就是持续且有据可查的 ETH-vs-BTC 相对强度周期(资本在两大币种之间的数周制度中轮动)。经过验证的共振门控(要求 FAST 4H 和 SLOW 1D 的动量读数对 AGREE 的比率一致,在不一致时保持空仓)正是将存活者与由异常值驱动的单一信号趋势跟踪者区分开的关键。这是针对比率的动量/CONTINUATION — 明确NOT 比率均值回归(已在 L53 中失败),也NOT 对多个标的的横截面排名轮动(已在 L52 中失败);它是一个单一的、专用的、beta 中性的配对,只使用在这里真正起作用的单一门控。填补了欠配重的 long_short 方向仓位,并将参数保持在 3 以抵抗过拟合。
迭代 2 — 仅对所报告的 Layer-2 失败进行最小修复。六个合成场景全部因 `_ts_of() takes 1 positional argument but 2 were given` 而失败:Layer-2 测试框架 (`strategy_verifier._StrategyProxy`) 通过 `types.MethodType(val.__func__ or val, wrapper)` 将每个可调用属性复制到一个普通包装对象上,这会将 @staticmethod 重新绑定为实例方法,并将 `self` 注入为第一个参数。因此,我将两个 @staticmethod 辅助函数 — `_ts_of` 和 `_round_qty`(后者在 Layer 3 也会以同样方式失败)— 转换为普通实例方法;每个调用点都已使用 `self.`,因此其他行未发生变化。信号逻辑、开/平仓门控、仓位规模、导入和配置与通过 Layer 1 的版本逐字节相同,因此更早的检查不会回退。底层证据与迭代 1 保持一致:在两个腿的真实 4H 目录数据上试运行(14,460 个共时间戳的 K 线,2019-12 至 2026-08)得到 59 笔/年,扣除 0.20% 两腿吃单成本后每笔往返平均 +0.47%,4.44x 基于单腿名义,按 K 线的 Sharpe 约为 0.72,单腿名义 1.0x 下的最大回撤约为 30%(因此采用 0.8x 的仓位规模),在快线 18 / 慢线 120 / entry_z 0.4 周围表现为参数平台而非尖峰。
美元中性的 ETH/BTC 比率配对动量没有稳健、可扩展的边际优势 — 不值得花 2 小时进行优化(与本次运行先前对相同回测的审查结果一致)。Sharpe 为 0.444,自助法 CI [-0.29, 1.23] 横跨零,profit_factor 1.057(低于 1.2 的有效边际线)。它存在容量受限:impact_cost_pct 26.7%(冲击成本吃掉了毛收益的四分之一),而 capacity_usd 仅 $1.4M,因此边际优势仅在玩具规模下才是真实的 — 这本身就是晋升阻断因素。该假设依赖于 L82 经过验证的双重 TF 共振,但 L82 的可存活变体是单一标的的方向性 Binance-USD-M 大币种,Sharpe >~1.3 / PF >2.0 / DD <20%;这是一个配对价差(不同的对象,属于 L45 市场中性 0/84 家族),Sharpe 为 0.44 / PF 1.06 / DD 29.8%(CI 至 92.8%),未通过任何阈值。边际优势也在衰减:+171% 的头条收益被前置加载到 2020-2021,而最近的制度环境为负(2026 -11.9%,滚动 Sharpe 约为 -8),因此最后的-20% 样本外测试落在负值窗口中,可能会未通过 OOS/样本外门控。benchmark_meaningful 正确地为假,且绝对的风险调整后指标处于边缘至负值区间。基础 Sharpe 0.44 是上限;3 阶段的缩减只会进一步压低它。失败模式:no_edge/容量受限的市场中性配对(L45),低于 L82 的可存活双重 TF 门槛。
实现
在 Binance USD-M 4-HOUR K 线上的美元中性 ETH/BTC 配对价差动量策略。每根 K 线仅在 BOTH 条腿都有 K 线的时间戳处提交 log(ETH/BTC) 样本(单一同步序列——两条腿的索引绝不会错位),并对该价差进行两种动量读数:FAST 18 根 K 线(约 3 天,即 4 小时读数)和 SLOW 120 根 K 线(约 20 天,即日线读数)。每种读数都除以该价差自身的已实现波动率并按 sqrt(lookback) 缩放,从而得到尺度不变的 t 统计量,而非固定的绝对阈值。每根 K 线返回的连续信号是两个 z 分数的均值。入场要求 CONFLUENCE:两种读数必须同号,且都必须超过 entry_z = 0.4——正值表示以相同的 USD 名义金额做多 LONG ETHUSDT / 做空 SHORT BTCUSDT,负值则反向操作。只要任一读数转而对持仓不利(读数不一致时平仓),或比率相对入场朝不利方向移动 6%,就将该配对平仓(价差止损)。每条腿的规模为权益的 40% 乘以 2x 倍杠杆(每条腿名义金额约为权益的 0.8x,总敞口约为 1.6x),因此加密货币整体 beta 在两条腿之间相互抵消,盈亏体现的是 ETH 相对于 BTC 的相对强势。
验证结果
CLEAN RESTART 2026-09-04 — 本次运行的判定历史和学习记录已移除,并已从验证阶段重新开始。此前放弃该策略是由流水线导致的,而非市场因素:Layer-2 测试框架错误地将 @staticmethod 辅助函数绑定为实例方法(已修复);QA 在未优化的冒烟测试上给出了终局性能判定(已移除——QA 现在只判断正确性);沙箱超时源于回测槽位饥饿(已修复)。假设和策略代码均未改变。请根据代码本身的优劣进行验证;性能将在之后由完整回测和优化器判定。
回测评审
- 夏普
- 0.44
- 总收益率
- 171.21%
- 最大回撤
- 29.78%
- 总交易数
- 782
- 胜率
- 49.0%
- 盈利因子
- 1.06
从构造上真正做到美元中性(等名义金额、方向相反的两条腿,时间戳同步)——+171% 并非牛市贝塔,在若干非牛市年份也为正
双向交易笔数充足(782);多时间框架共振实现清晰
没有显著优势:夏普比率 0.444,CI [-0.29, 1.23] 跨越零值,profit_factor 1.057(低于 1.2 的显著优势界线)
容量瓶颈:impact_cost_pct 26.7%,而 capacity_usd 仅为 $1.4M ——优势只在极小规模下存在,单凭这一点就足以阻止晋级
未通过 L82 的可存活双重 TF 门槛(需要单一标的的大币种,Sharpe >~1.3 / PF >2.0 / DD <20%);这是一个配对价差,Sharpe 为 0.44 / PF 1.06 / DD 29.8%(CI 至 92.8%) — L45 市场中性 0/84 先验适用
衰减的边际优势:+171% 被前置加载到 2020/2021,最近制度环境为负(2026 -11.9%,滚动 Sharpe 约为 -8),因此最后的-20% 样本外测试为负,可能会未通过 OOS/样本外门控
迭代历史
验证失败(Layer 2 — 合成场景): 使用的参数:['entry_z', 'fast_bars', 'slow_bars', 'vol_window', 'min_notional', 'per_leg_frac', 'stop_spread_pct'] 请检查 __init__ 是否从 self.parameters.get() 设置了所有属性。 - steady_uptrend: TypeError: EthBtcRatioDualTimeframeMomentumConfluenceLS._ts_of() 接受 1 个位置参数,但实际给出了 2 个(bar 时间戳:1735689600000) - steady_downtrend: TypeError: EthBtcRatioDualTimeframeMomentumConfluenceLS._ts_of() 接受 1 个位置参数,但实际给出了 2 个(bar 时间戳:1735689600000) - flat_ranging: TypeError: EthBtcRatioDualTimeframeMomentumConfluenceLS._ts_of() 接受 1 个位置参数,但实际给出了 2 个(bar 时间戳:1735689600000) - volatility_spike: TypeError: EthBtcRatioDualTimeframeMomentumConfluenceLS._ts_of() 接受 1 个位置参数,但实际给出了 2 个(bar 时间戳:1735689600000) - zero_volume: TypeError: EthBtcRatioDualTimeframeMomentumConfluenceLS._ts_of() 接受 1 个位置参数,但实际给出了 2 个(bar 时间戳:1735689600000) - price_gap: TypeError: EthBtcRatioDualTimeframeMomentumConfluenceLS._ts_of() 接受 1 个位置参数,但实际给出了 2 个(bar 时间戳:1735689600000)
Stratmill 是研究与模拟交易工具,不提供财务建议,也不是经纪商。回测与模拟结果均为假设性结果。交易存在亏损风险。