跳至正文
全部策略

策略

AVAX USD-M 去杠杆耗竭反转,多空策略(单一标的 BINANCE 永续合约,1 小时周期 + 多年期 OPEN-INTEREST 数据源——淡化由 FALLING 未平仓合约量驱动的行情,即空头回补拉升和多头强平暴跌,经反转 K 线确认,3 参数)

结局: 已放弃

AvaxOiDeleveragingExhaustionReversal

结局总结

AvaxOiDeleveragingExhaustionReversal 旨在淡化未平仓合约数量下降时延伸的走势,将空头回补急涨和多头强平急跌视为已耗竭、经反转K线确认的反转交易,交易标的为 AVAX 永续合约。其迭代-2修复确实奏效——从多年期指标数据源读取 OI 后,策略得以在完整的 2021-2026 窗口中触发 966 次,不再受数据墙限制——但这次干净且采样充分的运行结果表明策略没有优势:利润因子 0.735,总收益 -87.26%,回撤 87.70%,接近彻底归零。看似为正的夏普比率、索提诺比率和 PSR 被视为假象,原因是极端收益分布由一两笔离群的大额盈利驱动;约 75% 的杠杆单名仓位规模则进一步累积了亏损。分析师在优化前放弃了该策略,并指出它属于本交易时段反复失效的同一类单名 OI/订单流门控反转策略,调整其三个参数只会对唯一为正的 2023 窗口过拟合。

假设

一种LONG-SHORT的、单品种、中期策略,标的为 AVAXUSDT.BINANCE(USD-M永续合约,1h K线),其优势来自真正具有经确认多年历史的NON-PRICE数据源:币安未平仓合约量。该机制刻意NOT仅基于价格的趋势/动量/均值回归(0/213纯-OHLCV坟场)——交易由滚动窗口内价格变化与OI变化的JOINT符号来触发。当OPEN INTEREST FALLS时仍延续的走势为空心走势:无人加注新风险,现有仓位正在被平掉。在OI下降时的反弹是空头回补(没有新的多头来维持);在OI下降时的抛售是被迫的多头平仓砸出的真空区。两者都会衰竭并反转。在RISING OI(新资金)推动下的走势则不做交易。这是一个机械逻辑驱动的衰竭过滤器,不同于本轮已全部失效的资金费率持有、基差回归、爆仓数据源、主动成交流和横截面篮子类别。单一品种(非篮子→无每次再平衡N笔手续费税L12)。选择AVAX而非BTC(2%存活标签),因其流动性好但更具均值回归倾向,且具有可靠的OI数据源。仅使用3个参数,以抵御导致此前229个假设失效的过拟合。

迭代 3 仅进行使 SMALLEST 成为可能的改动,用于修复报告的第 -2 层故障,不做其他改动。该故障在全部 6 个合成场景中均为 `TypeError: _parse_oi_rows() takes 1 positional argument but 2 were given`。根本原因:`_parse_oi_rows` 是一个 `@staticmethod`,但第 -2 层 `_StrategyProxy` 会从真实实例复制所有可调用对象,并用 `types.MethodType(func, instance)` 重新绑定,这会强制将 `self` 作为第一个位置参数——因此一个单参数 staticmethod 会收到两个参数并报错。修复方法:移除 `@staticmethod` 并为其提供一个 `self` 参数(`def _parse_oi_rows(self, data)`);函数体会忽略 `self`,且两个调用点都已按 `self._parse_oi_rows(...)` 方式调用,因此它现在在代理和真实运行时中的行为一致。我通过复制完全相同的代理重新绑定(对 `_parse_oi_rows`、`_build_oi`、`_oi_at`、`calculate_signal` 使用 MethodType),并确认 `calculate_signal` 运行时不再出现 TypeError,且 OI 能正确解析,验证了该修复。此前的每一层都已通过,因此我没有改动其他内容:导入保持不变(未引入被禁止的模块),该类仍是有效的 FactoryStrategy 子类,并实现了全部四个抽象方法;整个信号/入场/出场/仓位规模逻辑逐字节保持不变——本次迭代只解除合成层的故障,使策略能够进入第 3 层。杠杆(2.0)仍连接至 position_size(没有 leverage_set_but_unused)。

边际优势显著为负,账户几乎被彻底摧毁:profit_factor 0.735,total_return -87.26%,avg_trade_return_pct -0.106%(负值),每笔交易期望收益为 -$89.95,共 966 笔交易,max_drawdown 87.70%(从 CI 到 100%),且几乎每年均为负值(2021 -15%,2022 -50%,2024 -47%,2025 -26%,2026 -27%;只有 2023 +7.6% 为正)。报告的夏普比率 0.458 / 索提诺比率 2.9 / PSR 0.99 是极端收益分布造成的误导性假象(偏度 37.2、峰度 1487),其背后是一两笔离群的大额盈利——真实指标是 PF 0.735 和 -87% 总计。迭代-2的修复确实奏效(OI 现在取自多年期指标数据源,因此策略在完整的 2021-2026 窗口中触发 966 次,不再受数据墙限制),这使得结论确实是策略层面的:去杠杆耗竭淡化策略(淡化未平仓合约数量下降时延伸的走势)扣除成本后根本没有优势,而约 75% 的杠杆单名仓位规模又进一步累积亏损,导致 88% 的回撤。这属于本交易时段反复失效的同一类单名 OI/订单流门控反转策略(SolOI-flush -13%、主动买卖流反转策略已被清算、持仓淡化策略因冲击成本而失效)。优化回看期/move_thresh/oi_fall_thresh无法扭转一个 PF-0.735、期望收益为负、88%-DD 的失败策略——只会对唯一为正的 2023 窗口过拟合,并无法通过折减夏普比率门槛。从根本上说没有优势;不值得花 2 小时优化。

实现

一种针对 AVAXUSDT.BINANCE 的多空单一工具中期反转策略(USD-M 永续合约,1小时K线),根据滚动回看窗口内价格变化与未平仓合约数量变化的 JOINT 符号进行门控。当价格走势至少延伸 move_thresh,而 WHILE 未平仓合约数量至少下降 oi_fall_thresh——这是空洞的去杠杆走势(上涨时空头回补急涨,下跌时多头遭强平急跌)——且当前K线收盘方向与走势相反(反转K线确认),策略就会 FADES 该走势:SHORT上涨走势,LONG下跌走势。伴随 RISING OI(新资金)的走势不予参与。OI取自多年期 `metrics` 数据源(以 `open_interest` 序列作为后备),通过预先计算的排序数组和 bisect 与K线对齐。退出条件为触发 2.5% 止损、3.5% 止盈,或达到 6 小时的时间限制。仓位规模为权益的 25% × 2× 杠杆。

验证结果

验证失败(第 2 层——合成场景): 使用的参数:['lookback', 'hold_bars', 'move_thresh', 'min_notional', 'position_frac', 'stop_loss_pct', 'oi_fall_thresh', 'take_profit_pct', 'oi_max_lag_hours', 'bar_interval_seconds'] 请检查 __init__ 是否设置了 self.parameters.get() 中的所有属性。 - steady_uptrend: TypeError: AvaxOiDeleveragingExhaustionReversal._parse_oi_rows() 接受 1 个位置参数,但实际给出了 2 个(K线时间戳:1735690020000) - steady_downtrend: TypeError: AvaxOiDeleveragingExhaustionReversal._parse_oi_rows() 接受 1 个位置参数,但实际给出了 2 个(K线时间戳:1735690020000) - flat_ranging: TypeError: AvaxOiDeleveragingExhaustionReversal._parse_oi_rows() 接受 1 个位置参数,但实际给出了 2 个(K线时间戳:1735690020000) - volatility_spike: TypeError: AvaxOiDeleveragingExhaustionReversal._parse_oi_rows() 接受 1 个位置参数,但实际给出了 2 个(K线时间戳:1735690020000) - zero_volume: TypeError: AvaxOiDeleveragingExhaustionReversal._parse_oi_rows() 接受 1 个位置参数,但实际给出了 2 个(K线时间戳:1735690020000) - price_gap: TypeError: AvaxOiDeleveragingExhaustionReversal._parse_oi_rows() 接受 1 个位置参数,但实际给出了 2 个(K线时间戳:1735690020000)

分析师应基于优势判断在 BACKTEST_REVIEW 放弃/迭代;不要把优化时间花在胜算如抛硬币的信号上(多头胜率 0.451 / 空头 0.545)。

沙盒回测显示真正的负向边缘:avg_trade_return_pct -0.060%(低于约 0.10% 的往返成本和 0.15% 期货下限),profit_factor 0.70,total_return -18.68%,夏普比率 -0.50(CI [-2.23,+1.13])。样本充足(364天内137笔交易,metrics_reliable=true),且NOT代码缺陷特征(win_rate 0.489非0,夏普比率未|>5|,PF非0),因此这属于分析层面的无优势,而非正确性缺陷。

若继续迭代,应重新考虑 6小时的时间限制与基于 1小时K线的中期反转假设是否匹配。

实际实现的收益/风险与配置的止损设置相反:TP 3.5% > SL 2.5%,但 avg_win $640 < avg_loss $880——大多数退出是由 6小时的时间限制触发,亏损幅度大于反转获利所能捕获的幅度,也就是说,耗竭反转并未在持仓期限内实现。这是结构性问题,不是缺陷。

可选:在保护路径上将 _rev_up/_rev_down 与 _pc/_oc 一并重置为 False。

_rev_up/_rev_down 在短缓冲区提前返回路径上会保留过期值,但 should_enter 还要求 pc/oc 非 None(它们在相同路径上会重置),因此过期标记本身无法触发入场——这是潜在问题,但不可利用。

回测评审

夏普
0.46
总收益率
-87.26%
最大回撤
87.70%
总交易数
966
胜率
46.4%
盈利因子
0.74

迭代-2修复奏效:OI 现在取自多年期指标数据源,因此策略在完整窗口中触发 966 次(不存在数据墙/可测量性底线问题)

真正的非价格 OI 依赖,采样充分

结论明确为负:profit_factor 0.735,total_return -87.26%,avg_trade_return_pct -0.106%,每笔交易期望收益 -$89.95

max_drawdown 87.70%(从 CI 到 100%)——几乎彻底归零;几乎每年都为负值(2022 -50%,2024 -47%,2025 -26%,2026 -27%)

报告的夏普比率 0.458 / 索提诺比率 2.9 / PSR 0.99 是极端偏度 37 / 峰度 1487(几笔离群的大额盈利)造成的假象——PF 0.735 和 -87% 总计才是真实情况

同一类已失效的单名 OI/订单流门控反转策略(SolOI-flush -13%、主动买卖流淡化策略、持仓淡化策略本交易时段均已失效)

迭代历史

验证失败(第 4 层——QA审查): - 由于 OI 数据覆盖墙,交易笔数无法衡量。364 data_days 期间仅有 7 笔交易,远低于约 100 笔的底线。根本原因是结构性的:开发者自己的理由指出,AVAX open_interest 覆盖范围在 365 天窗口内仅约 56 天;当 OI 不可用时,策略会正确地采取 FLAT(不使用仅基于价格的回退方案),因此样本中约有 85% 的时间处于盲区。由此产生的指标(profit_factor 0.04,win_rate 1/7,avg_trade_return_pct -0.54%,总计 -2.74%)在 n=7 时没有统计意义,不能支持任何晋级/优化决策。

结局总结

在厚尾收益分布下,少数离群的大额盈利可能会抬高摘要中的夏普比率/索提诺比率/PSR——利润因子和总收益揭示了真实情况——而约 75% 的杠杆单名仓位规模会将无优势信号变成灾难性回撤。

分析师在优化前的回测审查关口给出了“放弃”的结论,认为负优势和近乎彻底的 88% 回撤从根本上无法修复;策略从未进入优化、风险审查或晋级阶段。

一种在 AVAXUSDT.BINANCE(1h 永续合约)上的多空双向单品种反转策略,反向押注在 FALLING 未平仓合约量下延续的价格波动——空头回补式急涨和多头爆仓式急跌——将其视为空心、由去杠杆驱动的衰竭,并由反转K线确认。

在 966 笔采样充分的交易中,策略遭遇明确亏损:总收益 -87.26%,利润因子 0.735,avg_trade_return_pct -0.106%,每笔交易期望收益 -$89.95,最大回撤 87.70%(从 CI 到 100%),几乎每年均为负值(2022 -50%,2024 -47%);报告的夏普比率 0.458 / 索提诺比率 2.9 / PSR 0.99 被认定为假象,这是几笔离群的大额盈利造成极端偏度(37)和峰度(1487)所致。

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