跳至正文
全部策略

策略

Binance COIN-M反向永续负资金费率套利组合——纯做多、多资产,收割使币本位资金费率持续为负的矿工对冲卖压(4小时K线,0.06% RT场所,3参数)

结局: 已放弃

CoinMNegativeFundingCarryBasketLong

结局总结

这一假设将策略工厂晋级的负资金费率套利篮子转移到 Binance COIN-M 反向永续合约,押注持续的对冲者卖空压力和较低手续费会扩大套利收益。经过 3 轮迭代,回测显示 +81.5%,共 641 笔交易,单笔为 0.67%,但最大回撤为 40.5%,且在 LUNA 窗口内亏损 31%。拆分交易账本后发现,扣除成本后的资金费率净贡献仅约 +$2k,单笔约为 0.015%;大部分利润其实来自做多币价贝塔,阿尔法为负。分析师在回测审查时放弃了该策略,未进行优化,因为调参无法使套利收益超过成本。

假设

在BINANCE_CM上的一个LONG-ONLY、MULTI-INSTRUMENT资金费率套利组合(COIN-M个反向永续合约)——这是书中唯一最少被探索的场所:在1458次实验中仅有2.8%次,对照>=5%的配额,历史累计尝试仅为41次。它是对工厂PROMOTED资金费率套利机制(「5资产加密主流币种4小时负资金费率做多套利组合」,夏普1.97,回测级)的直接移植,迁移到一个相同优势为STRUCTURALLY LARGER且CHEAPER可供收割的场所。为何COIN-M特别适用:币本位永续合约是矿工、长期持有者以及BTC/ETH计价国库的自然对冲工具,他们系统性地SHORT它们以在不卖出现货的情况下对冲币库存。这种持续的单向卖压使COIN-M的资金费率比等价的USD-M合约更频繁、更深地转为负值——而当资金费率为负时,LONGS ARE PAID。此外,COIN-M的往返吃单成本约为0.06%,而USD-M上约为0.10%,这是40%的成本降低,直接扩大了这种全部盈亏仅为小额经常性现金流的策略的套利边际。机制:在每个4小时收盘时,对于每个当前资金费率足够为负的组合成员,持有一个等权重的LONG反向永续合约,每8小时收取一次资金费率;当套利衰减时退出。标的范围锚定在两个历史最深的COIN-M合约(BTCUSD_PERP、ETHUSD_PERP)加上流动性强的山寨币永续合约(SOLUSD_PERP、XRPUSD_PERP、BNBUSD_PERP、DOGEUSD_PERP)——共ALL个当前永续合约,绝不是裸露的指数名称,也绝不是已到期的季度合约。仅3个调优参数(entry_funding、exit_funding、max_positions),以抑制N选最优选择膨胀——这种膨胀通过过度拟合摧毁了202个先前假设。无清算数据源(避免L3),无期权腿(避免L2),且严格SINGLE-VENUE,因此它不是双边跨保证金套利(完全规避L1最可靠的fee_edge死亡——只有一条腿、两次成交,总计约6个基点)。

broken_mechanism(代码:套利部分为 fee_edge)。利润并非来自假设所述的资金费率套利。交易账本显示,资金费率贡献 +$25.9k,价格贡献 +$70.6k,手续费为 $14.5k,冲击成本为 $9.4k。单独计算套利部分,在 641 笔交易中净赚约 +$2k;相对于 0.10% BINANCE_CM 下限,平均每笔约为 +0.015%。标题所示的 +81%(每笔 0.67%)来自未对冲的多头币种贝塔:阿尔法为 -0.003,IR -0.83,预测 IC -0.026(t=-2.6),且回撤为 40.5%。QA 的担忧得到印证。优化只会调整组合持有的贝塔规模,无法使套利收益超过成本。对冲币种头寸将构成另一种 delta-neutral 假设,而此处测得的套利收益已低于成本。范围:在 Binance COIN-M、4H 上进行只做多、未对冲的负资金费率套利。重点展示的 USD-M 同类策略也应采用同样的资金费率与价格盈亏拆分。

实现

仅做多的 COIN-M 反向永续合约资金费率套利组合,覆盖 BTC/ETH/SOL/XRP/BNB/DOGE USD_PERP,按 4H 收盘;持有资金费率实时值最负(<= entry_funding)的标的,最多 max_positions 个等-USD-面值多头;资金费率升至 >= exit_funding 或数据过时则退出。仅依据稳定的 USD 余额按整张合约确定仓位。

第 3 次迭代修复了关键的仓位规模膨胀问题:移除了 _usd_equity()。该函数将运行器中收益中性的种子币种抵押品(50 BTC、500 ETH、1M SOL/XRP/BNB/DOGE)按完整的 USD 标记价格估值,使每条腿的名义价值膨胀约 1000x 倍。现在仓位规模仅使用 get_account_equity()(稳定币 USD 余额,约 $100k);per_leg_usd = equity*gross_exposure*leverage/max_positions,并在每次入场前检查硬性总敞口上限(已开仓的 USD 面值 + 待成交仓位 + 新订单 <= equity*gross_exposure*leverage),因此杠杆为 1 时,最大总敞口 <= 权益的 0.9x。仅当主标的没有未平仓头寸、执行中的入场单或待处理平仓单时,才会设置 _primary_selected,从而避免主标的重复提交订单;基础模板也仅在空仓时调用 should_enter。信号与资金费率逻辑不变。已承认边际风险:反向多头头寸带有完整的币种贝塔,因此价格漂移可能压过套利收益;这正是假设本身所述内容,分析师应根据 avg_trade_return_pct 进行判断。

验证结果

从 _param_bounds 中移除 gross_exposure 并将其固定为 0.9,使搜索空间与预先登记的 3 个参数一致。

假设称仅有 3 个调优参数(entry_funding、exit_funding、max_positions),但 _param_bounds 还将 gross_exposure 暴露为可在 [0.0, 1.0] 范围内调整的参数。gross_exposure 只调整仓位规模,不影响信号。尽管如此,它仍是第 4 个可优化维度,且其下限 0 允许配置为不执行交易。

目前可接受。如果全历史回测显示大量 waiting_on_extra_legs 诊断信息,则将回测窗口起点设为标的池中最新的上市日期。

基础模板的对齐屏障会等到每个额外交易腿都在同一时间戳有 K 线后,才继续主要处理。因此,六个 COIN-M 永续合约中的任意一个缺少 K 线,都会导致整个篮子在该根 K 线上停滞,包括其他交易腿的退出。部分山寨币永续合约上线较晚或存在数据缺口,因此这种情况可能发生。

考虑采用 1.5x 间隔(43200 秒),避免一次延迟的数据更新导致仓位频繁变动。如果您更倾向于严格的过期退出机制,则保持现状。

funding_lag_seconds 为 28800,恰好是一个 8 小时结算间隔。如果资金费率数据延迟或缺失,持仓交易腿会被视为数据过期并被强制平仓,待下一次数据更新后重新入场。这会在信号没有变化的情况下产生一次完整的往返交易成本。

沙盒在约 1 年内进行了 103 笔交易,名义金额单笔收益为 +0.18%,夏普比率为 0.06,PF 1.13,贝塔为 0.016。偏度为 +2.9,峰度为 31.8,因此损益看起来由价格尾部波动驱动,而非稳定的资金费率收益。这符合持有完整币价贝塔的反向做多仓位特征。分析完整回测时,还应将损益拆分为资金费率现金流和价格变动。还需确认 funding_folded 是否以与已实现损益相同的币种单位为反向交易腿记入积分。若价格变动占主导,“套利”这一标签就不准确。还有一点:反向做多交易腿以币支付收益,但仓位规模只读取稳定的 USD 余额,因此收益不会复利增长。

回测评审

夏普
0.53
总收益率
81.46%
最大回撤
40.45%
总交易数
641
胜率
53.5%
盈利因子
1.45

样本量大:2021-09 至 2026-04 期间共平仓 641 笔做多交易,六个交易腿均有交易,且期末没有未平仓头寸,因此摘要结果未被未实现收益夸大。

账本核算一致。资金费率收入与价格盈亏记入同一个 USD 账本,按每笔交易入账。

单笔摘要收益 0.67% 高于 0.10% COIN-M 的底线;PF 为 1.45。

QA 的担忧得到证实。拆分交易账本后为:资金费率 +$25.9k、价格 +$70.6k、佣金 -$14.5k、模型估算冲击成本 -$9.4k。毛利润中约 73% 来自币价变动,而非套利收益。

扣除成本后,套利本身在 641 笔交易中净赚约 +$2k,单笔约为 +0.015%。低于 0.10% COIN-M 的底线。

价格部分是贝塔,不是超额收益:相对于等权 COIN-M 篮子的阿尔法为 -0.0034,信息比率为 -0.83,相关性为 0.61。预测 IC 为 -0.026(t=-2.6)。

2022 是资金费率贡献最高的一年($16.4k),价格收益约为 $0,且在 LUNA 窗口内亏损 31%。2023 和 2024(牛市)贡献了 $52k 的价格盈亏。

最大回撤为 40.5%(CI 至 64.6%),而 20% 是期货默认值;恢复用时 317 天。

在 2021-09-07 之前没有交易,因为对齐门槛一直在等待 SOL 条腿,导致约 13 个月的历史数据未被使用。

迭代历史

验证失败(Layer 4 — QA 审查)[class=premise_falsified]: - 数据驳斥了核心经济前提,事实上还显示其方向相反。该假设声称,矿工对冲造成的卖空压力使 COIN-M 资金费率 PERSISTENTLY NEGATIVE,因此多头会获得报酬。开发者测量了实际约 1 年的 COIN-M 资金费率历史,发现 MEAN 费率为 POSITIVE(约 +0.000033),每个标的只有 23-34% 的记录为负——平均而言,多头需要支付 PAY,这与所要收割的优势恰恰相反。只做多的负资金费率套利逆着资金费率均值为正的市场状态操作,无法系统性地收取套利收益。沙盒结果证实:total_return -4.17%,夏普比率 -0.144(CI [-0.80、0.58]),阿尔法 -0.0043,相较等权重篮子 information_ratio -0.74,end_unrealized -7.3%。avg_trade_return_pct 0.1198% 仅勉强超过实际的 0.10% 底线,整体组合的收益并未转正。被提升的 USD-M 同类策略奏效,是因为 USD-M 提供了负值状态;移植到 COIN-M 则失败,因为该状态并不存在。重新编写代码无法让 COIN-M 资金费率持续为负。 - 两项支撑前提也不成立:(a) 费用优势的说法(0.06% RT,“40% 更便宜”)不实——venue_configs 在 COIN-M 收取约 0.10% RT(与 USD-M 吃单费率相同),因此,微薄的约 0.01%/8 小时套利收益需要持仓数日才能达到盈亏平衡;(b) COIN-M 的资金费率数据仅存在于 2025-05-25 至 2026-05-04,因此所谓“5.8 年”回测实际上只是近期约 1 年、117 笔交易的样本(funding_events_available 402)。

验证失败(第 2 层 — 合成情景): 使用的参数:['exit_funding', 'min_notional', '_param_bounds', 'entry_funding', 'max_positions', 'gross_exposure', '_optimization_plan', 'funding_lag_seconds'] 请检查 __init__ 是否通过 self.parameters.get() 设置了所有属性。 - steady_uptrend:AttributeError:'_MockCache' 对象没有属性 'account_for_venue'(K 线时间戳:1735689840000) - steady_downtrend:AttributeError:'_MockCache' 对象没有属性 'account_for_venue'(K 线时间戳:1735689840000) - flat_ranging:AttributeError:'_MockCache' 对象没有属性 'account_for_venue'(K 线时间戳:1735689840000) -……展开收起

验证失败(第 2 层 — 合成情景): 使用的参数:['exit_funding', 'min_notional', '_param_bounds', 'entry_funding', 'max_positions', 'gross_exposure', '_optimization_plan', 'funding_lag_seconds'] 请检查 __init__ 是否通过 self.parameters.get() 设置了所有属性。 - steady_uptrend:AttributeError:'_MockCache' 对象没有属性 'account_for_venue'(K 线时间戳:1735689840000) - steady_downtrend:AttributeError:'_MockCache' 对象没有属性 'account_for_venue'(K 线时间戳:1735689840000) - flat_ranging:AttributeError:'_MockCache' 对象没有属性 'account_for_venue'(K 线时间戳:1735689840000) - volatility_spike:AttributeError:'_MockCache' 对象没有属性 'account_for_venue'(K 线时间戳:1735689840000) - zero_volume:AttributeError:'_MockCache' 对象没有属性 'account_for_venue'(K 线时间戳:1735689840000) - price_gap:AttributeError:'_MockCache' 对象没有属性 'account_for_venue'(K 线时间戳:1735689840000) - missing_supplementary_data:缺少补充数据时策略崩溃(AttributeError:'_MockCache' 对象没有属性 'account_for_venue';缺少键:funding_rates、funding_rates_by_instrument;K 线时间戳:1735689840000)。补充序列属于尽力提供的数据:在真实回测、模拟交易和实盘交易中,被引用的键可能缺失或为空,策略应清仓而非崩溃。修复方法:通过 self.supp_as_of(key, default=None) / self.supp_window(key, n)(或 self.parameters.get('supplementary_data', {}).get(key))读取序列,检查是否为 None 或空值;数据不可用时返回中性信号(0.0)。

验证失败(第 4 层 — QA 审查)[类别=code_defect]: - [edge_concern] 即使修复了仓位规模问题,每笔交易的资金费率套利损益仍然很小:以约 -0.01%/8 小时入场持有数日,在 BINANCE_CM 上累计的资金费率仅为零点几个百分点,却要承担 0.10% 的完整往返吃单手续费(交易所费率表为每边 0.05%,而非假设中的 0.06% RT)。反向做多仓位还承担完整的币价贝塔,因此价格漂移会主导收益。分析师应检查资金费率累积是否确实达到 avg_trade_return_pct。 - [critical] 仓位规模失控:_usd_equity() 将 EVERY 个币的余额按 BINANCE_CM 账户的完整 USD 标记价格估值。回测运行器(runner.py ~L511,inverse_support.coin_m_starting_balances)为每个 CM 交易腿注入与收益无关的抵押品:50 BTC、500 ETH,以及 SOL、XRP、BNB 和 DOGE 各 1,000,000 单位。这些初始资金本应仅作为 DELTA 估值。按标记价格汇总后,除 $100k 的……展开收起

验证失败(第 4 层 — QA 审查)[类别=code_defect]: - [edge_concern] 即使修复了仓位规模问题,每笔交易的资金费率套利损益仍然很小:以约 -0.01%/8 小时入场持有数日,在 BINANCE_CM 上累计的资金费率仅为零点几个百分点,却要承担 0.10% 的完整往返吃单手续费(交易所费率表为每边 0.05%,而非假设中的 0.06% RT)。反向做多仓位还承担完整的币价贝塔,因此价格漂移会主导收益。分析师应检查资金费率累积是否确实达到 avg_trade_return_pct。 - [critical] 仓位规模失控:_usd_equity() 将 EVERY 个币的余额按 BINANCE_CM 账户的完整 USD 标记价格估值。回测运行器(runner.py ~L511,inverse_support.coin_m_starting_balances)为每个 CM 交易腿注入与收益无关的抵押品:50 BTC、500 ETH,以及 SOL、XRP、BNB 和 DOGE 各 1,000,000 单位。这些初始资金本应仅作为 DELTA 估值。按标记价格汇总后,除 $100k 的 USDT 外,还多出数亿美元的 USD。因此 _per_leg_usd = equity*0.9/4 约等于真实资金的 1000x+。沙盒恰好显示了这一点:avg_position_pct 191,906%、$383.8M 交易名义金额、$190k 佣金、$1.36M 冲击成本,单笔交易亏损 $4.42M,并于 2025-05-25 被强平,收益率为 -100%。该组合下单的总名义金额比 equity x max_leverage 高出多个数量级。(第 120 行)— 修复方法:仓位只能依据真实资金确定。使用 self.get_account_equity()(稳定的 USD 余额,$100k),或将币余额按初始值的变动估值(在首根 K 线上记录余额快照,仅加上 (balance - initial) * mark)。另行限制总名义金额:per_leg_usd <= equity * leverage / max_positions,其中 equity 不得超过稳定币余额。每次入场前断言所有未平仓交易腿的名义金额之和 <= equity * leverage。 - [warning] 额外交易腿直接从 calculate_signal 提交订单。主要交易腿则由基础模板通过 should_enter/position_size 路由。两者使用相同的单腿预算,前后一致。但基础模板检查主要交易腿自身的持仓或待处理状态之前,就已经设置了其 _primary_selected。请确认基础模板不会在入场订单处理中重复提交主要交易腿。(第 236 行)— 修复方法:可选:通过与额外交易腿相同的显式路径提交主要交易腿,或依赖基础模板的进行中订单保护机制,并对此作出说明。 - [warning] 沙盒报告该窗口内仅有 67 个可用资金费率事件。考虑到 6 个交易腿、每 8 小时结算一次,且窗口约为 1749 天,预期应有数千个事件。所有 6 个交易腿均存在 COIN-M 资金费率 parquet(coinm_funding/<SYM>_PERP),通过 funding_rates_by_instrument 连接各交易腿也正确。不过,67 这一计数可能只反映了唯一持仓(被强平的仓位)的累积情况。若数据覆盖存在缺口,过期保护机制(funding_lag 8 小时)会退出或阻止入场。— 修复方法:修复仓位规模问题后,核实每个交易腿的资金费率序列是否覆盖整个回测窗口,并确认 funding_events_available 随持仓天数累积。

仓位只能依据真实资金确定。使用 self.get_account_equity()(稳定的 USD 余额,$100k),或将币余额按初始值的变动估值(在首根 K 线上记录余额快照,仅加上 (balance - initial) * mark)。另行限制总名义金额:per_leg_usd <= equity * leverage / max_positions,其中 equity 不得超过稳定币余额。每次入场前断言所有未平仓交易腿的名义金额之和 <= equity * leverage。

仓位规模失控:_usd_equity() 将 EVERY 个币的余额按 BINANCE_CM 账户的完整 USD 标记价格估值。回测运行器(runner.py ~L511,inverse_support.coin_m_starting_balances)为每个 CM 交易腿注入与收益无关的抵押品:50 BTC、500 ETH,以及 SOL、XRP、BNB 和 DOGE 各 1,000,000 单位。这些初始资金本应仅作为 DELTA 估值。按标记价格汇总后,除 $100k 的 USDT 外,还多出数亿美元的 USD。因此 _per_leg_usd = equity*0.9/4 约等于真实资金的 1000x+。沙盒恰好显示了这一点:avg_position_pct 191,906%、$383.8M 交易名义金额、$190k 佣金、$1.36M 冲击成本,单笔交易亏损 $4.42M,并于 2025-05-25 被强平,收益率为 -100%。该组合下单的总名义金额比 equity x max_leverage 高出多个数量级。

可选:通过与额外交易腿相同的显式路径提交主要交易腿,或依赖基础模板的进行中订单保护机制,并对此作出说明。

额外交易腿直接从 calculate_signal 提交订单。主要交易腿则由基础模板通过 should_enter/position_size 路由。两者使用相同的单腿预算,前后一致。但基础模板检查主要交易腿自身的持仓或待处理状态之前,就已经设置了其 _primary_selected。请确认基础模板不会在入场订单处理中重复提交主要交易腿。

修复仓位规模问题后,核实每个交易腿的资金费率序列是否覆盖整个回测窗口,并确认 funding_events_available 随持仓天数累积。

沙盒报告显示,该时间窗口内仅有 67 个资金费率事件。按 6 个交易腿、每 8 小时结算一次、约 1749 天计算,预期会有数千个事件。存在 COIN-M 个资金费率 parquet 文件(覆盖所有 6 个交易腿,路径为 coinm_funding/<SYM>_PERP),且通过 funding_rates_by_instrument 的逐腿连接配置正确。尽管如此,67 的计数可能仅反映已被清算的单个持仓的累计情况。如果覆盖存在缺口,陈旧数据保护机制(funding_lag 8 小时)将退出持仓或阻止开仓。

结局总结

评估仅做多的资金费率套利策略时,应先将损益拆分为资金费率和价格两部分:单笔收益看似良好,可能只是市场贝塔;获晋级的 USD-M 同类策略也应进行相同拆分。

分析师在回测审查时将其判定为 broken_mechanism(套利部分为 fee_edge),并放弃该策略。毛利润中约 73% 来自未对冲的做多币价贝塔(阿尔法 -0.003、IR -0.83、预测 IC -0.026),而套利本身低于 0.10% BINANCE_CM 的底线。未进入优化和后续阶段。

仅做多、等权配置的六种 Binance COIN-M 反向永续合约组合(BTC、ETH、SOL、XRP、BNB、DOGE),采用 4 小时 K 线;当合约的资金费率足够低时持仓。其思路是,矿工和持币者持续进行的对冲空头会向多头支付套利收益,且这种收益比在 USD-M 上更高,也更容易、成本更低地获取。

初始回测在 641 笔做多交易中取得 +81.5%,夏普比率为 0.53,单笔平均收益为名义金额的 0.67%,盈利因子为 1.45;但最大回撤为 40.5%,且需 317 天恢复。账本拆分显示,资金费率为 +$25.9k,价格变动为 +$70.6k,扣除 $14.5k 佣金和 $9.4k 冲击成本后,套利本身净收益约为每笔 +0.015%。

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