跳至正文
全部策略

策略

横截面波动率归一化残差反转,等风险多空(分散山寨币组合,Binance USD-M,纯 OHLCV,Z 分数排名,每 2 天再平衡)

结局: 已放弃

CrossSectionalVolNormalizedResidualReversalLS

结局总结

该策略旨在解决原始反转策略被高波动标的主导的问题:对分散的 12 个 Binance USD-M 山寨币组合按波动率归一化残差 z 分数排名,并以等风险方式配置两腿规模;策略特意仅使用 OHLCV,以避开导致此前方案失败的数据覆盖瓶颈。机制上,策略按设计运行——产生了 3,062 笔密集且多空均衡的交易,并真正保持市场中性,不存在稀疏性或覆盖率假象。但优势明确为负:总收益 -95.2%、最大回撤 95.8%、夏普比率 -0.43,且六个市场状态年份全部亏损,多头和空头两腿都持续失血。分析师在回测审查关卡放弃了该策略,判定这是方向颠倒的负向优势机制,无法通过调整回看窗口挽救;分析师指出,接下来值得探索的方向是改为短周期横截面动量,并修复未能生效的 1.0x 总敞口上限。

假设

一种 MARKET-NEUTRAL 截面 SHORT-TERM REVERSAL 策略,覆盖约 12 只流动性良好的币安 USD-M 永续合约的分散化篮子,针对原始反转的特定失效模式进行了加固。该策略不按原始尾部收益排名(在此模式下单个高波动性品种会机械性地排到顶部/底部并主导账簿),而是按 VOL-NORMALIZED 收益排名——每个品种的尾部收益除以其自身的已实现波动率(每品种 z 分数/「残差」)——并以 EQUAL-RISK(反波动率)方式为各头寸分配规模,使每个头寸贡献相同的风险,信号反映的是真实的相对 OVER-EXTENSION 而非原始贝塔。做多 z 分数最负的品种(相对于自身波动率超卖),做空 z 分数最正的品种(相对于自身波动率超买),美元/贝塔中性。CRITICAL DESIGN CHOICES 基于本次会话中积累的失败经验:(1) PURE OHLCV——使用 NO 个补充数据,刻意且完全避免了刚刚扼杀 OI 浪策略的数据覆盖壁(open_interest 仅有约 30 天的目录历史)、吃单流策略(3.5 年缺口),以及威胁每一个 OI/吃单门控思路的问题;OHLCV 对篮子中每个成员都有完整的多年覆盖,因此前推 OOS 窗口从不会数据匮乏。(2) NON 动量、NON 突破——定向动量/突破已在 14+ 次放弃中被确认体制失效;这就是 REVERSAL,分析师反复推荐的震荡体制机制。(3) NOT 配对 RATIO 交易——封闭的跨资产比率 MR 家族失效是因为 2 资产比率是非平稳的;而对 12 只分散品种的广泛截面排名是一种根本不同的、多元化的统计结构(不存在单一的非平稳价差可以爆仓)。(4) 对原始收益反转篮子的真实改进——波动率标准化排名 + 等风险加权是针对原始反转高波动率品种主导问题的记录在案的修复方案。(5) NOT 跨场所/HL、NOT COIN-M、NOT 回撤累积、NOT 单品种 RSI。每 2 天在 12 只品种上触发 → 密集 OOS,对事件稀疏性免疫。刻意极简:3 个可调参数(zscore_lookback、vol_lookback、rebalance_days)。

第 2 次迭代修复了 Layer-2 合成测试失败:`_bar_ts` 是一个 `@staticmethod def _bar_ts(bar)`,但调用时被当作 `self._bar_ts(bar)`;在验证器的代理绑定下,向一个 1 参数函数传入了 2 个位置参数(所有 6 个场景均出现 TypeError)。将其改为普通实例方法 `def _bar_ts(self, bar)` 后,参数数量便与调用处匹配。这是可能的最小改动——没有触及导入项、类结构、信号逻辑或仓位规模,从而保留了已通过的 Layer-1 静态检查以及全部反转/等风险构造。

根本性的负优势机制,非调参问题——任何优化都无法逆转。截面波动率标准化反转信号在 ALL SIX 个体制年份中亏损(2021 -64.9%、2022 -24.2%、2023 -9.3%、2024 -16.7%、2025 -1.6%、2026 -3.0%),total_return -95.2%,Sharpe -0.43(CI 个跨式组合/负值:[-1.28, 0.24]),profit_factor 0.85,负期望值,多头和空头头寸均亏损。信号触发密集且均衡(3,062 笔交易),因此这确实是该另类篮子在 5 天视界上反转信号 ADVERSE,而非数据或稀疏性伪影。三个可调参数中有两个是回看窗口;调整它们无法拯救在所有体制中均为负的优势,且 Sharpe 具有尺度不变性,因此单独的敞口漏洞(exposure_pct 600%,尽管 gross_cap=1.0 且 leverage=1.0——「硬性限制 1.0x 总敞口」的构建实际上并未对净/限制头寸)仅放大亏损幅度,而非符号。不值得花费 2 小时进行优化。NOTE 给研究主管:该机制似乎是反向的——短期截面 MOMENTUM(做多近期相对赢家,做空输家)可能在此处携带正号;如果采用该重构,同时修复总敞口净额处理,使 1.0x 上限实际约束。

实现

市场中性的横截面短期反转策略,覆盖由 12 个分散标的构成的流动性较好的 Binance USD-M 永续合约组合,仅使用 OHLCV。按波动率归一化残差 z 分数对标的排名(尾随收益 / 自身已实现波动率),做多 z 值最负(超卖)的标的,做空 z 值最正(超买)的标的;多空两腿采用等风险(反波动率)仓位规模,多空总敞口预算相等,并设定 1.0x 总敞口上限。每 2 天再平衡一次。

验证结果

验证失败(Layer 2 — 合成场景): 使用的参数:['assets', 'gross_cap', 'vol_floor', 'resize_frac', 'min_notional', 'num_per_side', 'vol_lookback', 'qty_precision', 'rebalance_days', 'zscore_lookback', 'default_qty_precision'] 检查 __init__ 是否设置了 self.parameters.get() 中的所有属性。 - steady_uptrend: TypeError: CrossSectionalVolNormalizedResidualReversalLS._bar_ts() takes 1 positional argument but 2 were given (bar timestamp: 1735690860000) - steady_downtrend: TypeError: CrossSectionalVolNormalizedResidualReversalLS._bar_ts() takes 1……展开收起

验证失败(Layer 2 — 合成场景): 使用的参数:['assets', 'gross_cap', 'vol_floor', 'resize_frac', 'min_notional', 'num_per_side', 'vol_lookback', 'qty_precision', 'rebalance_days', 'zscore_lookback', 'default_qty_precision'] 检查 __init__ 是否设置了 self.parameters.get() 中的所有属性。 - steady_uptrend: TypeError: CrossSectionalVolNormalizedResidualReversalLS._bar_ts() takes 1 positional argument but 2 were given (bar timestamp: 1735690860000) - steady_downtrend: TypeError: CrossSectionalVolNormalizedResidualReversalLS._bar_ts() takes 1 positional argument but 2 were given (bar timestamp: 1735690860000) - flat_ranging: TypeError: CrossSectionalVolNormalizedResidualReversalLS._bar_ts() takes 1 positional argument but 2 were given (bar timestamp: 1735690860000) - volatility_spike: TypeError: CrossSectionalVolNormalizedResidualReversalLS._bar_ts() takes 1 positional argument but 2 were given (bar timestamp: 1735690860000) - zero_volume: TypeError: CrossSectionalVolNormalizedResidualReversalLS._bar_ts() takes 1 positional argument but 2 were given (bar timestamp: 1735690860000) - price_gap: TypeError: CrossSectionalVolNormalizedResidualReversalLS._bar_ts() takes 1 positional argument but 2 were given (bar timestamp: 1735690860000)

回测评审

夏普
-0.43
总收益率
-95.16%
最大回撤
95.81%
总交易数
3062
胜率
53.8%
盈利因子
0.85

信号功能正常且密集:3,062 笔交易,多空均衡(1,604 多头 / 1,458 空头),市场中性(beta 0.002,benchmark_corr 0.004)——按设计不存在数据覆盖或事件稀疏性瓶颈

纯 OHLCV 构造实现了完整的多年覆盖(2020-09 至 2026-06)

灾难性且持续的亏损:total_return -95.2%,max_drawdown 95.8%,在 EVERY 个市场状态年份中均为负(2021 -64.9% ... 2026 -3.0%)

负向优势机制,而非调参问题:夏普比率 -0.43(CI [-1.28, 0.24]),索提诺比率 -0.47,profit_factor 0.85,期望收益为负,avg_win $284 < avg_loss $388——在这一山寨币组合上,短周期横截面反转方向不利

尽管胜率 >0.5,多空两腿仍都亏损(盈利幅度始终小于亏损幅度)

敞口失控:exposure_pct 600%,而 gross_cap=1.0 / 杠杆=1.0——“硬性限制为 1.0x 总敞口”的构造实际上并未限制敞口;但夏普比率与规模无关,因此这只会放大损失幅度,并不会造成负向优势

尾部极端(峰度 444、偏度 10、单日 +64% 2021-01-29)证实中性构造并未控制风险

结局总结

在该山寨币组合的 5 天持有周期下,横截面反转方向是反的——短周期横截面动量(做多近期相对赢家,做空输家)可能具有正向优势;还应修复敞口净额处理错误(敞口为 600%,而名义总敞口上限为 1.0x),使上限实际生效。

分析师在优化前的回测审查关卡给出了“放弃”判定,认为反转方向本质上不利(在全部六个市场状态年份中均为负,两个策略腿都亏损),而不是参数调优问题,因此从未进入优化、深入分析或风险审查阶段。

一种市场中性的横截面短期反转策略,对约 12 个分散的 Binance USD-M 山寨币永续合约按波动率归一化残差 z 分数排名(尾随收益除以自身已实现波动率),做多超卖程度最高的标的,做空超买程度最高的标的,并采用等风险反波动率仓位规模;策略仅使用 OHLCV,以避免数据覆盖限制。

在 2020-09 至 2026-06 期间,信号触发密集且多空均衡(3,062 笔交易:1,604 多头 / 1,458 空头),并且确实保持市场中性(beta 0.002,基准相关性 0.004);但表现为 total_return -95.2%、max_drawdown 95.8%、夏普比率 -0.43(CI [-1.28, 0.24])、盈利因子 0.85,且期望收益为负(每笔交易 -$26)。盈利($284)始终小于亏损($388),并且每个市场状态年份都出现亏损。

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