跳至正文
全部策略

策略

资金费率–价格背离挤压延续策略,单交易场所多空策略(单一标的 ETHUSDT.BINANCE USD-M,4 小时K线 + FUNDING-RATE 数据源——当资金费率 DISAGREES 配合价格趋势时,WITH 顺势交易 ONLY(上涨趋势 + 资金费率持续 NEGATIVE = 被套空头为逼空提供燃料;下跌趋势 + 资金费率持续 POSITIVE = 被套多头为快速下跌提供燃料);让盈利仓位继续运行,并使用 ATR 移动止损,3 参数

结局: 已放弃

EthFundingPriceDivergenceSqueezeContinuationLS

结局总结

EthFundingPriceDivergenceSqueezeContinuationLS 将资金费率重新定义为持仓陷阱信号,而非套息/估值信号;仅在资金费率与 ETH 趋势相悖时顺势交易,并通过移动止损持有盈利头寸,以累积较大的单笔收益。回测 1645 笔交易后,结果与其理论恰好相反:面对高换手率,单笔收益仅为 0.079%,导致 profit_factor 0.92、-30.0% 总回报、夏普比率 0.286,以及 47.6% 回撤;在 7 年中的 5 年结果为负。分析师在第 2 次迭代的回测审查中将其作为明确的 fee_edge 死亡模式而放弃;由于总回报为负且 PF 低于 1.0,从未进入优化阶段。核心教训:资金费率背离陷阱没有带来延续优势,而原本意在获取大额收益的设计最终产生了微薄收益和沉重且以空头为主的换手。

假设

一种 LONG-SHORT、SINGLE-INSTRUMENT、SINGLE-VENUE 方向性 CONTINUATION 策略,交易标的是 ETHUSDT.BINANCE USD-M 永续合约,bar 周期为 4 小时;其资金费率用法与已被证伪的套息/均值回归机制 NOT。此前的资金费率假设失败,是因为它们把资金费率 LEVEL 当作反向估值信号(资金费率高时做空)——元学习器的事件研究显示相关性约为零,该前提已三次被证伪。此策略反转了这种用法:将资金费率视为一种 POSITIONING-TRAP / 不信任信号,通过其相对价格的 DIVERGENCE 来判断,并顺着趋势交易,而非逆势交易(WITH)。其机制是经典的永续合约轧空:当价格呈 UP 趋势,而资金费率持续保持 NEGATIVE 时,永续合约交易者整体持有 SHORT,并且为在上涨市场中继续持有空头而 PAYING(不信任 / 对冲)——这形成了拥挤且被套的空头群体;随着止损和强平触发,他们会被迫买入,成为推动涨势延续的燃料。对称地,当价格呈 DOWN 趋势,而资金费率持续保持 POSITIVE 时,意味着多头付费在下跌行情中持仓,形成推动行情继续暴跌的被套多头燃料。当资金费率与价格 AGREES(价格上涨且资金费率为正 = 多头已拥挤且持仓舒适)时,没有被套的逆向资金流,因此策略保持 FLAT。策略使用 ATR 移动止损持有盈利头寸,以争取较大的单笔收益(这是该工厂唯一做空—做多幸存策略的特征),从而直接避开会扼杀小额收益反转策略的 fee_edge 死亡模式。数据依赖正交且经沙箱确认(资金费率数据源,符合 L42 的允许列表);单一交易场所(不跨交易场所,符合 L44);不使用期权(符合 L43);采用 ETH 而非 BTC(BTC 标签仅在 2% 中保留)。与流水线内其他假设均不同:既不基于 OI(暴跌反转 / 波动扩张延续 / 持仓变化均属于 OI),也不是清算过度后的反向交易,不是纯 OHLCV 动量,也不是已被证伪的资金费率套息倾斜(方向相反 — 后者在资金费率高时 SHORTS;此策略则在负资金费率时 LONG)。仅有 3 个可调参数。

ITERATION 2 — 针对唯一报告的 Layer-2 故障进行一行修复,其他内容均未触及。所有场景均因 `_ts() takes 1 positional argument but 2 were given` 崩溃,因为 `_ts` 被声明为 `@staticmethod`。Layer-2 代理会在普通包装对象上重建策略,并用 `types.MethodType(val.__func__ if hasattr(val, '__func__') else val, wrapper)` 重新绑定每个可调用属性 — 通过 getattr 获取的 staticmethod 是不带 `__func__` 的裸函数,因此仍会被绑定并悄然多出一个前置 `self`,导致 `self._ts(bar)` 以两个参数调用一个参数的函数。将其改为普通实例方法(`def _ts(self, bar)`)后,在真实引擎和代理下都具有正确的签名;所有调用点原本就使用 `self._ts(bar)`,所以无需更改其他行。我还添加了文档字符串说明这一规则,以免再次发生。Layer 1 仍然通过:导入项未变(仅 numpy、nautilus_trader、decimal、base_template,没有禁用模块),该类仍继承 FactoryStrategy,四个必需方法均完整,也没有引入新参数或魔法数字。信号逻辑、资金费率对齐方式(采用不晚于当前 bar 的最近一次结算,并设有 12h 陈旧度保护,>= 8h 资金费率间隔,不使用前视数据)、资金费率缺失时不回退到仅依据价格的规则、ATR 移动退出、以日历为锚点的时间止损,以及风险上限仓位管理,均与通过 Layer 1 的版本逐字节一致。

亏损且没有优势的策略:profit_factor 0.904,total_return -34.3%,期望收益为负(-$19.37/笔交易),且 avg_trade_return_pct 0.0757% 低于 0.15% BINANCE USD-M 费用底线——扣除成本后毛优势为负(fee_edge/no_edge 特征:在 1,658 笔交易中,PF 约为 0.90)。风险调整指标全部为负(夏普比率 CI 跨越零,IR -0.82,阿尔法 -0.021,最大 DD 47.5%)。交易记录(1,566 空头对比 92 多头)与对称的资金费率—价格背离轧空前提相矛盾,说明该机制并未实现平衡的陷阱交易假设。这是对同一假设的第三次尝试(此前在第 2 次迭代时放弃);3 参数调优无法挽救一个单笔优势为负且 PF<1 的策略组合。失败模式:基于资金费率的单一永续合约方向性策略,其优势低于费用成本,且缺乏风险调整后信号。

实现

在 ETHUSDT.BINANCE USD-M 永续合约上的多空 4H 顺势策略,仅当资金费率DISAGREES价格趋势时,才WITH价格趋势。上涨趋势 + 持续负资金费 = 空头为在上涨中持仓而付费(被困的空头基础盘,被迫买入的燃料)-> LONG。下跌趋势 + 持续正资金费 = 多头为在下跌中持仓而付费(被困多头的燃料)-> SHORT。当资金费率与价格方向一致时,市场持仓方向舒适,不存在被困的反向资金流,策略保持观望。信号 = 趋势 z 分数 × softplus(-funding_z × sign(趋势)),一个每根 K 线重新计算的平滑连续乘积:它始终保留趋势方向,但其幅度仅在资金费率背离时才越过入场阈值(背离与一致之间约 17x 倍乘数分离)。盈利单以 3xATR 跟踪止损持有,以实现较大的单笔捕获;仓位也会在趋势反转或 120 根 K 线的日历时间止损时平仓。固定比例仓位(通过 ATR 止损距离实现每笔交易 2.5% 的风险),并设有硬性总名义上限。

验证结果

CLEAN RESTART 2026-09-04 — 本次运行的裁定历史与学习记录已被清除,并从验证阶段重启。此前的放弃源于流水线,而非市场:Layer-2 harness 错误绑定了 @staticmethod 帮助函数(已修复),QA 对未优化的冒烟测试发布了终结性的绩效裁定(已移除 — QA 现在仅裁定正确性),沙箱超时源于回测槽位饥饿(已修复)。假设与策略代码均未改动。请基于代码本身的优劣进行验证;绩效留待后续由完整回测与优化器决定。

在 backtest_review,按方向和年份拆分绩效;在优化之前,确认多头部分相较于 2020-2026 确有实际优势。

HEAVY SHORT SKEW / REGIME-DEPENDENCE — 供分析师基于完整历史数据确认,并非错误。沙盒中有 103 个空头头寸,对比 15 个多头头寸。这在一定程度上是 STRUCTURAL:多头触发条件要求资金费率持续 NEGATIVE(在加密货币市场中很少见),而空头触发条件要求资金费率为正(很常见),因此该组合天然偏向做空;偏向下跌的 2025-26 ETH 窗口进一步放大了这种偏向。总体结果为正(+9.5%、avg_trade +0.305%、PF 1.26),但主要由空头腿贡献;多头腿样本较少(15 笔交易,胜率 0.27)。完整历史数据必须确认这一机制在 BOTH 个方向及不同市场状态下都有效(例如,在频繁出现正资金费率的 2021 牛市中),而非仅仅表现为单一窗口内的做空偏向。

检查 deflated Sharpe、部署规模下的容量/冲击,以及全样本夏普是否将 CI 稳固在零以上。一年期温和的夏普可继续推进;前推验证确认。

OUTLIER-DEPENDENCE AND CAPACITY — 分析师检查。largest_win 10976 对比 avg_win 1106,峰度 7.9/偏度 0.68 意味着 +9.5% 部分依赖于少数几笔大额盈利(骑乘盈利单属预期,但 deflated-Sharpe/稳健性必须确认并非仅由少数几日贡献)。impact_cost_pct 16.8% 容量约 3.5M,换手率 92.7,标志着小容量、对冲击敏感的特征 — 费用可覆盖的 avg_trade 在规模放大时可能被侵蚀。夏普 0.29 CI [-1.29,+1.91] 横跨零区间,因此一年的优势较为温和。

无需修复;实现正确且忠实于原意。

代码正确性已验证 — 清晰、忠实,信号方向完全正确。信号 = tz*softplus(-fz*sign(tz)),正确实现所有四种情形(上升趋势+负资金费率 -> BUY,下降趋势+正资金费率 -> SELL,资金费率与趋势一致 -> 空仓),始终沿趋势方向交易(延续而非反转)——区别于已被证伪的资金费率套息策略(方向相反)。资金费率分数不受尺度影响(近期均值 / 自身滚动离散度)。无前视数据(通过 searchsorted 按不晚于当前 bar 的最近时间对齐资金费率,并设 12h 陈旧度保护;趋势 z 分数/ATR 使用历史 bar)。退出逻辑(基于 position.id 的 ATR 移动止损、趋势反转、以 ts_opened 为起点的日历时间止损)正确;时间止损避免了 L26 陷阱。基于资金比例的固定比例仓位管理,并设总敞口上限。除法均有保护(sd、scale->默认值、stop_dist->回退、price、通过有限值过滤处理 sma)。Layer-2 staticmethod 修复有效(合成的“冻结 0.0”是正确的无资金费率降级处理)。无需修改代码。

回测评审

夏普
0.27
总收益率
-34.31%
最大回撤
47.50%
总交易数
1658
胜率
43.1%
盈利因子
0.90

便于验证的实现:正交的单一交易场所资金费率数据源、单一标的、3 个可调参数,不涉及跨交易场所/期权;概念上区别于已被证伪的资金费率套息策略族。

亏损:profit_factor 0.904(<1.0)、total_return -34.3%,预期收益为 -$19.37/笔交易,avg_trade_pnl 为负。

avg_trade_return_pct 0.0757% 低于 0.15% BINANCE USD-M 的费用底线,扣除成本后毛优势为负(典型的 fee_edge/no_edge 特征:在 1,658 笔交易中,PF 约为 0.90)。

没有风险调整后优势:夏普比率 CI [-0.30, 0.88] 跨越零,information_ratio -0.82,阿尔法 -0.021,max_drawdown 47.5%(CI 偏高 97%)。

机制不匹配:假设描述的是对称的陷阱/轧空,但交易为 1,566 空头对比 92 多头——呈单边偏空,而非所述平衡的资金费率—价格背离延续策略。

对同一假设的第三次尝试(此前在第 2 次迭代时放弃);该前提反复导致 PF < 1。

迭代历史

验证失败(第 2 层 — 合成场景): 使用的参数:['max_tz', 'trail_atr', 'atr_period', 'min_notional', 'trend_period', 'max_hold_bars', 'funding_window', 'risk_per_trade', 'trend_z_window', 'entry_threshold', 'funding_z_window', 'max_softplus_arg', 'fallback_stop_pct', 'max_funding_lag_s', 'max_notional_frac', 'min_funding_samples', 'default_funding_scale'] 检查 __init__ 是否从 self.parameters.get() 中设置了所有属性。 - steady_uptrend:TypeError:EthFundingPriceDivergenceSqueezeContinuationLS._ts() 需要 1 个位置参数,但给出了 2 个(K线时间戳:1735694940000) -……展开收起

验证失败(第 2 层 — 合成场景): 使用的参数:['max_tz', 'trail_atr', 'atr_period', 'min_notional', 'trend_period', 'max_hold_bars', 'funding_window', 'risk_per_trade', 'trend_z_window', 'entry_threshold', 'funding_z_window', 'max_softplus_arg', 'fallback_stop_pct', 'max_funding_lag_s', 'max_notional_frac', 'min_funding_samples', 'default_funding_scale'] 检查 __init__ 是否从 self.parameters.get() 中设置了所有属性。 - steady_uptrend:TypeError:EthFundingPriceDivergenceSqueezeContinuationLS._ts() 需要 1 个位置参数,但给出了 2 个(K线时间戳:1735694940000) - steady_downtrend:TypeError:EthFundingPriceDivergenceSqueezeContinuationLS._ts() 需要 1 个位置参数,但给出了 2 个(K线时间戳:1735694940000) - flat_ranging:TypeError:EthFundingPriceDivergenceSqueezeContinuationLS._ts() 需要 1 个位置参数,但给出了 2 个(K线时间戳:1735694940000) - volatility_spike:TypeError:EthFundingPriceDivergenceSqueezeContinuationLS._ts() 需要 1 个位置参数,但给出了 2 个(K线时间戳:1735694940000) - zero_volume:TypeError:EthFundingPriceDivergenceSqueezeContinuationLS._ts() 需要 1 个位置参数,但给出了 2 个(K线时间戳:1735694940000) - price_gap:TypeError:EthFundingPriceDivergenceSqueezeContinuationLS._ts() 需要 1 个位置参数,但给出了 2 个(K线时间戳:1735694940000)

结局总结

资金费率—价格背离“陷阱”信号没有产生延续优势;尽管设计明确旨在通过较大的单笔收益来避免 fee_edge 死亡模式,实际结果却恰恰相反——单笔收益微薄,换手率极高(且以空头为主)。因此,平均单笔交易低于费用底线且策略净亏损,没有值得优化的参数区域。

分析师在 BACKTEST_REVIEW(优化前)将其作为明确的净亏损策略和典型的 fee_edge 死亡模式而放弃 — 单笔收益 0.079% 约为往返成本的一半,且低于 0.15% 费用底线,因此 128x 换手($21k 冲击成本)吞噬了全部毛优势,未能通过任何回测标准(夏普比率、回撤、回报、PF、平均单笔交易)。

在 ETHUSDT.BINANCE 4H K 线上的多空单品种顺势策略,仅当资金费率背离价格趋势时才WITH该趋势(上涨趋势 + 持续负资金费 = 被困空头助长轧空;下跌趋势 + 正资金费 = 被困多头助长下挫),并以 ATR 跟踪止损持有盈利单。

在 2019-2026 期间(2404 个数据日,1645 笔交易,其中 1553 笔为空头),策略净亏损:total_return -30.0%,profit_factor 0.92,夏普比率 0.286(95% CI [-0.289, 0.914]),期望收益为 -$16.9/笔交易,而 avg_trade_return_pct 仅为 0.079%;最大回撤为 47.6%,且在 7 年中的 5 年结果为负。

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