策略
持久资金-Carry 估值倾斜,单一场所多空策略(单一工具 BTCUSDT.BINANCE USD-M — 使用 MULTI-WEEK AVERAGE 融资利率作为昂贵性/Carry 信号:当多头持续 PERSISTENTLY 支付丰厚融资(拥挤、负 carry,历史上先于均值回归的不佳表现)时,倾斜 SHORT,以及 LONG 当空头持续支付;周级持仓,低换手率,3 参数)
结局: 已放弃
BtcPersistentFundingCarryValuationTiltLS
回测门槛: - 指标不可靠:4 笔交易 / 500 个数据日,证据过少(需要在 >=10 天内有 >=5 笔交易)——提高信号频率或扩大窗口
假设
一种 LONG-SHORT、SINGLE-INSTRUMENT、SINGLE-VENUE 策略,交易 BTCUSDT.BINANCE USD-M 永续合约,刻意 LEAVES 动量/趋势类策略(现已证明克隆策略会失效,见 L41,或纯-OHLCV策略会失效,见 L42),转而交易来自资金费率的慢速 CARRY/VALUATION 信号 — 这是一种正交、非趋势、在沙盒中可靠的数据流(满足 L42 关于依赖项不得是趋势重新推导结果的要求)。它在机制上有别于日志中此前所有资金费率策略失败案例:“逆势 BTC 在负资金费率时做多 SPIKES”是由单次结算极端值驱动的反转策略(因集中于特定市场状态而失效);ETH 资金费率结算反转策略测试结算后的反弹(已被证伪);资金费率离散度配对策略则是 2腿相对价值交易(fee_edge)。THIS 使用 PERSISTENT MULTI-WEEK AVERAGE 资金费率水平作为缓慢变化的估值/Carry 指标,持仓 WEEKS — 时间尺度和经济机制都不同(Carry 成本高昂,而非事件反弹)。经济逻辑:资金费率是持有永续合约头寸的机械成本。当资金费率在多周窗口内持续处于 PERSISTENTLY 高正值时,多头为维持多仓而支付了大量、不断累积的 Carry — 永续合约“昂贵”,持仓偏向拥挤做多,累积的负 Carry 加上拥挤头寸平仓,在历史上先于均值回归式跑输 → 倾斜 SHORT/保持平仓。当资金费率持续为负时,空头为持仓付费(多头获得正 Carry),永续合约“便宜” → 倾斜 LONG。信号是 SMOOTHED水平,而非尖峰,因此变化缓慢并持仓数周 — 换手极低,所以 0.10% USD-M 往返成本可以忽略(不受 fee_edge影响)。单一场所、单一交易品种 — 无 L44、无 L43、无 COIN-M。3个参数。交易品种:["BTCUSDT.BINANCE"]. venue_type: 期货。data_requirements: ["ohlcv", "funding_rate"].
迭代 5 针对唯一报告的失败——'指标不可靠:4 笔交易 / 500 个数据天数'——以最小变更提高交易频率,同时不触及已通过第 1-3 层的机制、极性、进出场形态或仓位规模。诊断:进场信号并非稀少,而是 HOLDS 极为庞大。一个 28 天的套利 z 值基于 365 天基线计算,在持续的资金费率体制下会一直停留在零的一侧,而退出仅在 |z| 低于 0.15 时才触发(接近完全回归),因此单笔交易可能跨越一个季度。修复:carry_days 28->14(仍是假设所指定的多周均值,但能跟踪体制变化),z_lookback 365->120(基线在约 4 个月内重新居中),min_z_days 90->45(回测仅在运行窗口注入资金费率,因此 90 天的种子期消耗了 500 天样本的约 20%),以及 exit_z 0.15->0.20 对比 entry_z 0.50->0.40(当差距缩小一半时释放,仍保留 2x 的滞后带,避免阈值频繁变动)。我将真实的 BTCUSDT 8 小时资金费率序列通过该信号,在五个互不重叠的 500 天窗口上重放:旧参数产生 4/4/4/6/9 个进场信号(精确重现了闸门的 4 个),新参数产生 6/8/8/10/13 个——在每个窗口均达到 >=5 笔交易的下限——平均持仓仍为 24-42 天,保留了周级、低换手率的特征。按约 0.10% USD-M 往返计算,额外换手率为每年零点几个百分点,对套利优势无关紧要。诚实的警示——我之前已提出并非隐瞒:我自己对该数据流的探索性事件研究未发现滞后套利 z 值与远期收益之间的可靠关系(在 12 个窗口/期限单元中 |t| <= 0.78,且最高套利五分位组的远期收益为 POSITIVE),因此我预期可度量的优势较弱——但我并未翻转极性或针对该结果调优,该运行值得对所陈述机制进行一次可度量的回测,而非又一次不可度量的尝试。
在决定性的 51 笔交易/6.5 年样本上为负期望:profit_factor 0.746,total_return -65.9%,avg_trade_return_pct -2.34%(低于 ZERO),夏普比率 -0.224(CI 横跨至负值区间,点估计为负),期望值 -$704/笔,其中 avg_loss($5895)远超 avg_win($3910)。NOT 不是手续费问题(佣金仅占毛收益的 1.63%)——资金费率 carry -> 均值回归信号在毛收益层面即为负。该机制正交且正确实现,因此这是一次公平测试,前提已被证伪:该策略在所有波动率环境(平静/正常/紧张均为负)及大多数日历年份中均亏损。开发者自己的探索性事件研究(在代码中披露)已经发现不存在可靠的 carry->远期收益关系,且最高 carry 分位——即代码 SHORTS 的状态——显示 POSITIVE 远期收益,直接与前提矛盾;QA 的边际担忧已在完整历史中得到确认。这是同一机制的第 5 次迭代,3 个可调参数(carry_days/entry_z/exit_z)无法反转一个符号错误、PF-0.746 的信号。不值得投入 2 小时进行优化。
实现
在缓慢变化的资金费率 Carry 估值倾斜下做多/做空 BTCUSDT.BINANCE USD-M 永续合约。信号是过去 14 天(数周)的平均资金费率,以其自身过去 120 天的分布计算 z-score 后取反:持续高昂的资金费率(多头支付高额 Carry,永续合约昂贵/多头拥挤)倾向于 SHORT;持续为负的资金费率(空头支付资金费率,永续合约便宜)倾向于 LONG。使用日线,|tilt| > 0.4 sigma 时入场,当 Carry 差距减半(|tilt| < 0.2)或越过相反阈值反转时退出;平均持仓 24-42 天。按波动率目标调整仓位(年化目标为 30%,上限为权益名义价值的 1x),不使用杠杆。若资金费率数据源缺失,则完全保持空仓——不回退到仅基于价格的策略。
验证结果
确认 FactoryStrategy 遵循 min_bars_required 覆盖项进行预热门控;若不遵循,则入场仍会根据资金费率 z 值是否可用进行内部门控,因此行为不变。
min_bars_required(self) 覆盖了框架方法(静态分析 base_shadow 警告)。该覆盖仅控制价格波动率预热(vol_days+2);Carry z 基线会通过 min_z_days 播种,在资金费率网格上独立预热,且信号路径有防御性保护(当 z 为 None 时返回空仓)。即使基类忽略该覆盖,风险也较低。
沙盒冒烟测试结果明确为负(total_return -71.5%,夏普比率 -0.37 CI [-1.11, 0.32],profit_factor 0.74,avg_trade_return_pct -2.59%,期望收益为负),样本接近完整,包含 2399 天/55 笔交易;且 short_win_rate 0.43 与 long_win_rate 0.59 暗示 Carry -> 均值回归的极性可能较弱或反转。更值得关注的是,开发者的 OWN 探索性事件研究(在代码中如实披露)发现,过去 Carry-z 与远期收益之间不存在可靠关系(在 12 个窗口/期限单元格中,|t| <= 0.78),而最高 Carry 五分位——代码 SHORTS 的状态——显示出 POSITIVE 远期收益,即探索性证据不支持该前提。该机制正交且实现正确,冒烟测试也未经优化,因此这并不构成阻碍;但在投入优化预算前,分析师应将该前提视为有被完整历史数据证伪的风险,并检查分市场状态/分方向的归因。交易次数(6.5 年约 55 笔)符合设计,样本量真实但适中(数周的 Carry),因此区分优势与噪声的能力有限。
回测评审
- 夏普
- -0.22
- 总收益率
- -65.90%
- 最大回撤
- 76.05%
- 总交易数
- 51
- 胜率
- 52.9%
- 盈利因子
- 0.75
该机制与趋势正交,且实现正确(按时点查询资金费率,取反符号一致),单一标的/单一场所,低换手,因此费用影响可忽略(佣金仅占毛收益的 1.63%)
决定性样本:6.5 年内 51 笔交易(多头 25 笔/空头 26 笔),metrics_reliable=true
在可靠样本上预期收益为负:avg_trade_return_pct -2.34%(BELOW ZERO)、profit_factor 0.746、total_return -65.9%、夏普比率 -0.224(CI [-1.02, 0.57])、每笔交易期望收益 -$704,avg_loss $5895 >> avg_win $3910
前提在可测量程度上并不存在,并非参数未调好:在 EVERY 种市场状态中均亏损(平静 -10.6%、正常 -36.1%、压力 -41.0%),且在大多数年份中亏损(2021 -26.8%、2022 -14.2%、2024 -29.3%)
开发者自己的诚实事件研究未发现 Carry -> 均值回归关系(在 12 个单元格中 |t|<=0.78),且最高 Carry 五分位——代码 SHORTS 的状态——其远期收益为 POSITIVE,即探索性证据不支持该前提。QA 对优势的担忧已在完整历史数据中得到证实
max_drawdown 76%,recovery_factor -0.75;这是同一机制的第 5 次迭代
分析
回测门槛: - 指标不可靠:4 笔交易 / 500 个数据日,证据过少(需要在 >=10 天内有 >=5 笔交易)——提高信号频率或扩大窗口
迭代历史
验证失败(第 4 层 — QA 审查): - PREMISE FALSIFIED — 核心边际在数据中不存在,已由开发者自己的编码前事件研究和忠实的完整回测确认。该假设需要 NEGATIVE、持久多周 carry-z 与远期收益之间的显著关系。12 格事件研究(carry 14/28/56d × 远期 7/14/30/60d)发现相关性为 -0.019 至 +0.047,10 的 12 带有 WRONG(正)号,最大 |t|=0.78 — 即使对单次检验也不显著。分位数远期收益呈 U 形,假设做空的最高 carry 分位在所有持有期均具有 POSITIVE 远期收益(+1.2% 至 +10.8%)= 趋势确认,与所声称的均值回归相反。在诚实默认参数下:12 笔交易跨越 6.4 年,夏普比率 -0.07,-46.7%,DD 74.7%,平均每笔交易 -2.50%,PF 0.83。NOT 极性错误 — 反转控制同样亏损(夏普 -0.20)。唯一一个 +0.58 网格单元为最优-N 选择(从 5 个单元中取最大值,9 笔交易,错误方向),被正确拒绝。 - STRUCTURAL UNMEASURABILITY(独立于证伪)。12 笔交易跨越 6.4 年远低于约 100 笔交易的底线;沙盒产生 2 笔交易,metrics_reliable=FALSE(sharpe_ci [-1.67,+1.51] 置信区间横跨零值)。这是 4 周平滑、1σ 阈值信号的固有特性,该信号每年仅穿越数次。即使该机制存在,记录也无法验证,且前推/留出窗口无法填充。 - 代码正确性已验证 — 忠实、整洁的实现,NOT 缺陷。标的/交易所/方向/3 参数表面匹配;资金费率确实是边际所在(7,029 真实数据,carry 经 z 标准化和阈值处理,而非仅 OHLCV)。极性正确(tilt=-z:资金费率偏高 -> SELL 永续合约偏贵;资金费率为负 -> BUY 永续合约偏便宜),无隐藏的二次反转。退出滞后正确(exit_z 0.25 < entry_z 1.0)。通过 get_account_equity 进行波动率目标头寸调整。所有除法均有保护(cnt_c/cnt_z 通过 np.maximum,价格/ann_vol/前值/步长),列表已裁剪,'bisect' 未识别导入为标准库误报。合成场景的 'frozen 0.0' 警告为 CORRECT 优雅降级(合成场景中无资金费率 -> 按设计保持空仓,无代理回退)。无需代码修改。
验证失败(第 4 层 — QA 审查): - TERMINAL ABANDON — 前提已被证伪,经两次独立检查确认且结论未变。这是原样重新提交:可执行主体与上一次失败迭代逐字节相同,仅更新了文档字符串以记录先前的结论。数据没有变化,因此结论仍然成立:12 单元格事件研究显示 Carry-z 与远期收益的相关系数介于 -0.019 至 +0.047,其中 10 个的符号为 12,最大 |t|=0.78;假设做空的最高 Carry 五分位在每个期限的远期收益均为 POSITIVE(趋势确认,与所声称的均值回归相反)。采用诚实默认设置的回测亏损(12 笔交易,夏普比率 -0.07,-46.7%、PF 0.83);反向对照也亏损(-0.20),所以不是极性错误。开发者正确地拒绝了 +0.58/9 笔交易的 N 次择优单元格。代码改动无法凭空创造数据中不存在的优势,因此开发者没有作出改动。 - STRUCTURAL UNMEASURABILITY(未变)。6.4 年内 12 笔交易,远低于约 100 笔交易的最低门槛;沙盒再次产生 2 笔交易,metrics_reliable=FALSE,夏普比率为 CI [-1.67,+1.51],区间跨过零。这是经过 4 周平滑、以 1σ 为阈值的信号所固有的特性;若不放弃该假设所定义的持续数周/低换手构造,就无法增加交易次数。无法填充前向滚动/留出窗口。 - 代码正确性重新验证,结论未变 — 实现忠实、干净,NOT 存在缺陷。标的/场所/方向/3 参数范围均匹配;极性正确(tilt=-z,不存在隐藏的二次反转);退出滞后机制正确;通过 get_account_equity 进行波动率目标仓位管理。除法均有防护(cnt_c/cnt_z 通过 np.maximum,价格/ann_vol/prev/step),列表已裁剪,'bisect' 未识别导入是标准库导致的误报。合成场景中“冻结 0.0”的警告表示正确的缺少资金费率时保持空仓的降级行为。第 1-2 层仍然通过;没有任何回退。无需采取代码行动。
验证失败(第 4 层——QA 审查)[类别=hypothesis_mismatch]: - [edge_concern] 给下一位评估日频采样版本的人士的提示:沙盒中的优势高度REGIME-CONCENTRATED。regime_performance显示,该策略几乎所有收益都来自实现波动率的“正常”三分位区间(+485%,夏普比率 2.63);而在“平静”(-18.9%,夏普比率 -0.21)和“承压”(-22.7%,夏普比率 -0.20)两个三分位区间中,收益都为 LOSES,且 only_one_regime=true。因此,整体夏普比率 0.78(CI [0.07,1.50],PSR 0.97)实际上依赖于单一波动率制度;max_drawdown 36%(CI 至 65%)。在信赖这一优势之前,值得明确检查其对不同制度的稳健性——但这是给分析师的绩效备注,并非本次裁决的理由。 - 假设与配置之间存在 TIMEFRAME MISMATCH。假设将 K 线周期作为核心定义属性:标题中写有“周线 K 线”,描述中写有“在 WEEKLY K 线上交易,持仓数周至数月”,并以此说明该策略填补了 macro_1w_plus 期限类别。配置实际运行的是 ETHUSDT.BINANCE-1-DAY-LAST-EXTERNAL(日线)。这正是周期一致性检查明确列为关键的问题(假设为“周线”,但配置为 -1-DAY-)。开发者关于以日历日表示的回看窗口保留了 8 周趋势期限的经济学论据基本正确,但采样方式的变化NOT只是表面调整:它使换手从 28 笔交易变为约 109 笔,持仓时间从约 10.4 周变为约 2.8 周(沙盒平均值 19d14h),最大回撤从 11.8% 变为 36%(CI 变为 65%)。这是一种风险特征不同、实质上也不同的策略,却仍是在未更改的周线假设下运行。
Stratmill 是研究与模拟交易工具,不提供财务建议,也不是经纪商。回测与模拟结果均为假设性结果。交易存在亏损风险。