策略
BTC 资金费率状态趋势延续,多空策略(单一标的 BTCUSDT.BINANCE 永续合约 — NEW 信息来源:当价格走势与持续的 FUNDING-RATE 状态一致时,顺势持仓 WITH(持续为正 = 看涨杠杆需求 / 为负 = 看跌杠杆需求),ATR 跟踪止损,3 参数)
结局: 已放弃
BtcFundingRegimeTrendContinuationLS
结局总结
BtcFundingRegimeTrendContinuationLS 旨在顺着持续的资金费率状态,方向性地跟随 BTC,将持续为正/负的资金费率视为杠杆情绪信号,并且只在价格走势一致时持仓——这是一种延续策略,与本次研究中许多失效的资金费率反转策略不同。经过三轮迭代,该策略产生了大量 298 笔交易样本,但多空论点被自身交易结果推翻:247 笔多头交易对比 51 笔空头交易,且空头胜率为 11.8%,这表明它是一个偏多的动量跟随策略,而非双向有效的策略。风险调整后表现单薄且脆弱——盈利因子 1.11、跨越零值的夏普比率 CI、信息比率 -0.649、接近 32% 的回撤,以及近一半的表面收益尚未实现——利润由少数几个异常强劲的牛市日贡献。评审者在回测评审阶段放弃了该策略,而没有进行优化;其结论是,最佳的 -225 次试验只会对这些尾部行情日过拟合,最终不可避免地走向过拟合后放弃。
假设
一种在 BTCUSDT.BINANCE USD-M 永续合约上运行的 LONG-SHORT 方向性策略,依据持续的 FUNDING-RATE REGIME 进行 WITH 交易——将资金费率这一新信息来源用于 CONTINUATION 方向,依据 L38,并与唯一能存续的优势(动量/趋势)一致;不同于本次研究中的所有 BTC 反转策略(资金费率反向/去杠杆、清算、OI 背离、DVOL/偏度/期限结构极值——全部失效)。该策略明确 NOT 已失效的资金费率-CONTRARIAN(该策略反向交易资金费率极值),也 NOT 被禁止的 delta-neutral 资金费率-CARRY(L33):它将资金费率的 SIGN 和 PERSISTENCE 视为杠杆情绪 REGIME,并顺势进行方向性交易。策略论点:持续的 POSITIVE 资金费率意味着杠杆需求持续偏多(通常会延续的牛市状态);持续的 NEGATIVE 资金费率意味着杠杆持续偏空/处于熊市。持仓方向与持续的资金费率状态一致 AND 价格趋势,可以捕捉杠杆驱动的延续行情;两者不一致(资金费率状态与价格走势不符)则表明市场脆弱/正处于转变阶段 → 空仓。该策略使用 WELL-COVERED 资金费率数据流(不像 taker/L-S 那样有覆盖上限,也不像期权数据流那样无交易/无优势),交易流动性高的 BTC 永续合约(dev-safe,信号即执行),单一标的,多空策略(填补 13.5% 类别,相对于 86.5% 只做多策略),采用 4H 节奏以获得可测量的约 100-200 笔交易样本,并使用 ATR 跟踪止损捕捉延续行情。3 参数。
第 3 次迭代通过在 _funding_arrays 中进行单点局部修改,修复了 Layer-3 的确切故障(“should_enter 在 2149 根柱上返回了 0 次方向”)。根本原因:资金费率字典以两种不同的键形式传入策略。Layer 2 的合成生成器会输出双键(int AND str),因此我之前的 `if not isinstance(k, int): continue` 筛选器在该处有效,Layer 2 也通过了;但真实的 Layer-3 数据流在 supp_collector.load_for_subprocess 中经过 JSON 规范化(`json.loads(json.dumps(supp))`,其中明确“只保留它们的 str 键”),所以仅接受 int 的筛选器读到的是一个 EMPTY 序列,_funding_persistence 在每根柱上都返回 None,而 calculate_signal 恒为 0.0 -> 从未触发入场。现在解析器同时接受 int OR str 键,并按整数时间戳去重(因此双键形式的 Layer-2 仍然会为每次结算生成一个条目,使 Layer 2 继续通过),并加入了防御性的 s/ms->ns 升位。第二处较小的修改:保证金所需的 0.35 从 entry_threshold 调整为 0.30,以增加交易数量。由于 p=+1(BTC 大部分时间资金费率为正),0.30 门槛要求收盘价仅比 SMA30 高约 ~0.10 ATR,在 2179 根柱的窗口内很容易触发。没有改动其他逻辑、导入、类结构、仓位规模或退出代码,因此 Layers 1 和 2 仍然通过;当资金费率数据流确实缺失时,仍然不会采用 NO 价格专用回退方案(策略保持空仓,而不是切换优势机制)。
OHLCV+资金费率动量/延续类(L9,在PF < 1.2时零存活),且该结果明显单薄,AND不稳健。profit_factor 1.11(低于有效优势阈值线),夏普比率 0.434,95% CI [-0.15, 1.11]已横跨零轴,且information_ratio -0.649。多空前提被其自身的交易证伪:247做多 vs 51做空,short_win_rate 11.8%——空头端无效,因此这是一个偏向多头的动量跟随者,而非假设所声称的多空优势。表面盈利是约6个异常牛市日的产物(峰度 19.3,偏度 1.70):各机制下表现高度不一致(2022 -24.9%,2026 -29.8%,近期滚动夏普比率约 -13),且名义total_return中约46%为尚未退出的持仓浮盈(end_unrealized_pct 40.1)。avg_trade_return_pct 0.322%超过费用下限,因此这并非费用脆弱性——问题在于风险调整后的优势与零无法区分,且依赖于尾部交易日。用最优 -225 次试验进行优化将对这些异常值过拟合,并在耗费 2 小时后几乎肯定在 ANALYZING 中因过拟合而被放弃。应放弃而非优化。
实现
在 4H 周期的 BTCUSDT.BINANCE 永续合约上采用多空方向策略,顺应持续的资金费率状态,而不是逆势操作。资金费率持续性 p = 最近约 3 天 8h 资金费率结算值符号的均值(持续为正 = 杠杆多头牛市状态,持续为负 = 熊市状态);价格趋势 u = tanh((close - SMA30)/ATR14)。信号为加权一致性混合值 ((p+u)/2)*((1+p*u)/2),因此只有在杠杆情绪与价格走势一致时信号才较大,出现分歧时信号会趋近于零(脆弱/过渡状态 -> 空仓)。当 |signal| > 0.30 时入场;若从入场后最佳收盘价起算的 3xATR 移动止损触发(也作为初始硬止损),或信号符号翻转,则退出。仓位规模按权益的 1.5% 风险额度相对于 ATR 止损距离计算,并受以权益为基准的 1x 总名义敞口上限约束。
验证结果
验证失败(Layer 3 — 沙盒回测):未产生交易 使用的柱类型:BTCUSDT.BINANCE-4-HOUR-LAST-EXTERNAL,处理的柱数:2179 诊断:should_enter() 在评估的 2149 根柱上返回了 0 次方向 -> 你的 ENTRY CONDITION 从未触发。请放宽入场逻辑/阈值。 请确保策略在给定数据和参数下能够产生交易。
回测评审
- 夏普
- 0.43
- 总收益率
- 87.81%
- 最大回撤
- 31.87%
- 总交易数
- 298
- 胜率
- 29.9%
- 盈利因子
- 1.11
avg_trade_return_pct 0.322% 高于期货手续费底线——并非手续费导致优势消失
健康的交易样本(298 笔交易),且资金费率确实是覆盖充分的新信息来源
信号触发,且多头方向与假设一致
profit_factor 1.11 低于 1.2 的显著优势门槛;优化前夏普比率 0.434 与 sharpe_ci_low -0.15 跨越零值
做多-SHORT 前提不成立:247 笔多头交易对比 51 笔空头交易,且 short_win_rate 11.8% ——空头腿(13.5% 分组存在的全部理由)不起作用
收益由约 6 个异常行情日贡献(峰度 19.3、偏度 1.70);剔除这些日期后优势便消失——这不是持续性信号
跨市场状态表现极不一致:2022 -24.9%、2026 -29.8%,近期滚动夏普比率约为 -13;information_ratio -0.649
表面收益被夸大:87.8% total_return 中的 end_unrealized_pct 40.1(约 46%)是未退出持仓的按市值计价收益,并非已实现收益
迭代历史
验证失败(Layer 2 — 合成情景): 使用的参数:['risk_frac', 'trail_atr', 'atr_period', 'regime_days', 'min_notional', 'trend_period', 'entry_threshold', 'max_notional_frac', 'max_funding_lag_hours'] 请检查 __init__ 是否设置了 self.parameters.get() 中的所有属性。 - steady_uptrend:TypeError:BtcFundingRegimeTrendContinuationLS._ts() 接受 1 个位置参数,但实际传入了 2 个(柱时间戳:1735691400000) - steady_downtrend:TypeError:BtcFundingRegimeTrendContinuationLS._ts() 接受 1 个位置参数,但实际传入了 2 个(柱时间戳:1735691400000) - flat_ranging:TypeError:BtcFundingRegimeTrendContinuationLS._ts() 接受 1 个位置参数,但实际传入了 2 个(柱时间戳:1735691400000) - volatility_spike:TypeError:BtcFundingRegimeTrendContinuationLS._ts() 接受 1 个位置参数,但实际传入了 2 个(柱时间戳:1735691400000) - zero_volume:TypeError:BtcFundingRegimeTrendContinuationLS._ts() 接受 1 个位置参数,但实际传入了 2 个(柱时间戳:1735691400000) - price_gap:TypeError:BtcFundingRegimeTrendContinuationLS._ts() 接受 1 个位置参数,但实际传入了 2 个(柱时间戳:1735691400000)
结局总结
多空假设必须通过两条腿都实际有效来验证——247/51 笔交易的多空分布,加上 11.8% 的空头胜率,意味着该策略实际上是偏多的动量跟随策略;依赖尾部行情日的利润,加上低于 -1.2 的盈利因子,在没有幸存策略的动量/延续类别中经不起优化。
该策略在优化前的 BACKTEST_REVIEW 关卡被放弃:盈利因子 1.11 低于 1.2 的显著优势门槛,夏普比率的 CI 已跨越零值,空头腿(多空类别存在的全部理由)无效,而且表面利润依赖约 6 个异常强劲的牛市日,跨市场状态的表现极不一致(2022 -24.9%、2026 -29.8%)。
依据持续的资金费率状态交易 BTCUSDT.BINANCE 永续合约,进行多空操作 WITH:当持续为正的资金费率表明看涨的杠杆需求时做多,当持续为负的资金费率表明看跌的杠杆需求时做空,但仅在价格趋势一致时入场。
回测产生了 298 笔交易,但多空前提未能成立:247 笔多头交易对比仅 51 笔空头交易,空头胜率仅为 11.8%。核心指标单薄且依赖尾部行情——盈利因子 1.11、夏普比率 0.434(CI [-0.15, 1.11] 跨越零值)、信息比率 -0.649、最大回撤 31.9%、单笔平均收益 0.322%(高于手续费底线),且 +87.8% 总收益中约 46% 来自未退出的持仓按市值计价收益。
Stratmill 是研究与模拟交易工具,不提供财务建议,也不是经纪商。回测与模拟结果均为假设性结果。交易存在亏损风险。