策略
BTC COIN-M 季度合约与永续合约基差套利:当年化基差 >= 8% 时做多永续合约 + 做空季度合约(反向保证金现金套利)
结局: 已放弃
BtcCmQuarterlyPerpBasisCarryNeutral
BTC COIN-M 季度合约与永续合约基差套利:当年化基差 >= 8% 时做多永续合约 + 做空季度合约(反向保证金现金套利)
假设
币安 COIN-M(反向合约)BTC 合约上的市场中性日历价差:当年化基差 >= 8% 时,做多 BTCUSD_PERP 永续合约,做空最近的 BTCUSD_YYMMDD 季度交割合约。两条腿均以 BTC 计价保证金(反向合约),因此盈亏以 BTC 实现——使其成为持仓者的 BTC 增强收益交易,同时保持 USD 中性价差。边际是机械性的:有到期日的季度交割合约 MUST 在到期时按合约规格收敛至标的现货/永续价格,因此季度合约相对永续合约存在溢价时,随着到期临近价格压缩是有保证的(基差 = mark_quarterly / mark_perp - 1,年化计算周期 days_to_expiry)。这与失败的 ETH/BTC 比率均值回归有本质区别:后者的'比率'是两个不同标的之间的关系,没有合约力量将其拉拢,可能无限期趋势运行。而此处,同一 SAME 资产上两个合约之间的基差存在硬性合约收敛点。目标是最不具代表性的交易所类别(BINANCE_CM 占 0.9%,而目标 >= 5%),同时增补多空(12.4%)、配对范围(18.0%),并引入该投资组合从未测试过的'基差套利/现金套利'机制类别。OHLCV 专用——无额外数据依赖,无经典 TA 形态,无不同标的间的比率回归,简单的 2 腿仓位。
完全按照假设的机制实施——做多永续合约 / 做空有到期日的季度合约、单一交易场所、两条腿、仅 OHLCV、年化基差触发、依据合约收敛而非统计回归——我选择有到期日的腿,是为了满足交易场所关于季度合约必须为 CURRENTLY LISTED 的规则:BTCUSD_260925(到期日为 2026-09-25)仍在交易,而目录中的 BTCUSD_260626 已到期,既无法用当前窗口进行回测,也无法投入实盘。季度合约正是 PRIMARY/时钟腿,因为它是存续时间较短的合约,因此每根主合约 K 线都有同期的永续合约 K 线,跨腿对齐的要求始终可以满足(反向选择会受限于永续合约的 2020-2026 历史)。Delta 中性是结构性的,而非算术上的:相同的 $100 面值意味着相同合约数量对应相同名义价值,这正是此前导致市场中性配对策略失败的具体缺陷。有两项我希望明确记录的有意偏离。第一,8% 年化触发条件无法触发:我测量了目录中的真实基差序列,当前合约的年化基差跨度仅为 BTCUSD_2609251.8%-3.6%(中位数 2.5%),此前的 260626 合约为 0.1%-5.7% ——8% 出现了 ZERO 次,因此固定的 8% 阈值会导致零交易。所以默认值设为 2.8%(大约处于该合约实际可提供水平的第 80 百分位),同时优化器上限保持开放至 8%,这样若出现更丰富的市场环境,假设中的水平仍可达到。第二,也是对预期更重要的一点:这种机制在结构上属于低频策略。在真实合并序列上模拟完全相同的进出场逻辑,得到 2 次入场和 1 次完整往返交易,覆盖 334 根重叠 K 线——每个合约周期只有一次收敛交易,因此无论如何设定阈值,对交易笔数敏感的统计指标都会较弱。经济收益微薄但真实:以约 110bp 的溢价入场,并持有至距离结算 2 天以内,扣除两条腿合计约 0.20% 的往返吃单成本前,毛收益约为 1.1%。杠杆保持在 1.0,每条腿的名义价值为权益的 0.25x,因此总保证金约为权益的一半,且不存在强平路径。
backtest_failed: RuntimeError: 永续合约腿 'BTCUSD_260925.BINANCE_CM' 的资金费率数据不可用——按需采集失败,或该交易场所没有资金费率历史数据(为保证准确性,回测已阻止;设置 SF_DISABLE_ONDEMAND_FUNDING=1 可跳过) Traceback (most recent call last): File "/opt/strategy-factory/src/agents/backtest_agent.py", line 194, in _run_backtest await self._ensure_funding_for_perp_legs(instrument_id, extra_instrs) File "/opt/strategy-factory/src/agents/backtest_agent.py", line 411, in _ensure_funding_for_perp_legs raise RuntimeError( RuntimeError: 永续合约腿 'BTCUSD_260925.BINANCE_CM' 的资金费率数据不可用——按需采集失败,或该交易场所没有资金费率历史数据(为保证准确性,回测已阻止;设置 SF_DISABLE_ONDEMAND_FUNDING=1 可跳过)
实现
币安 COIN-M BTC 反向合约现金套利(4 小时K线,仅 OHLCV)。该策略定价当前挂牌的季度交割合约 BTCUSD_260925(到期日 2026-09-25)与 BTCUSD_PERP 永续合约之间的日历基差,基差 = 季度合约/永续 - 1,按距到期天数年化计算。当年化基差较丰厚(>= entry_ann)且距到期超过 2 天时,做空 SHORTS 季度合约、做多 LONG 永续合约,合约数量相等——由于两个 COIN-M 反向合约均携带相同固定面值 $100 USD,等量合约即等值 USD 名义金额,因此该组合在构造上即为delta中性,无方向性敞口残留。当基差已正常化(年化 <= exit_ann)或在结算前 2 天内平仓,半开仓位(一腿成交另一腿未成交)立即清仓。两条腿均以 BTC 计价保证金,因此盈亏和手续费以 BTC 实现——属于 BTC 计价的收益增强型特征。两条腿在同一根K线内于 calculate_signal 同时开仓和平仓;基类的单腿路径被刻意设为惰性,因为逐腿入场相隔一根K线会承载裸露的 BTC delta。
验证结果
验证失败(层级 4 — QA 审查)[class=not_measurable]: - [edge_concern] 除可测量性外,开发者的回放显示该策略在结构上属于低频、薄利边际:约 2 次入场和 1 次完成的往返交易,覆盖合约存续期内约 1.1% 总额,对应约 0.20% 双腿往返成本。沙箱的夏普比率 2.85 / PF 2.0 / +4.6% 是基于 4 笔交易、72 天窗口内计算的(metrics_reliable=false),不能作为边际估算的可靠依据。exposure_pct 285% 是双腿反向合约的重复计算伪影,非真实方向性风险。仅供参考——阻塞点在于数据覆盖范围。 - NOT MEASURABLE — 边际在于季度合约向永续合约 CONTRACTUAL AT EXPIRY 的收敛,但可交易窗口受限于较短存续期的季度合约(主合约/时钟)。BTCUSD_260925.BINANCE_CM 仅有 4H 目录数据覆盖 2026-03-27 -> 2026-06-07(约 72 天,436 根K线),而该合约于 2026-09-25 结算——数据在到期前约 110 天 BEFORE 截止,因此从未观察到向结算价的收敛过程。沙箱产生了 4 笔交易(约 1-2 次往返);开发者回放给出约 2 次入场 / 1 次完成往返。单个截断周期(n=1)无法验证收敛边际,也无法填充 3 窗口的滚动前推或 HARD >= 10 笔交易的保留样本。所述 8% 触发条件从未出现(观测值 1.8-3.6%)。 - 假设门槛为年化基差 >= 8%,但 entry_ann 默认为 2.8%,因为所测量的基差仅跨越 1.8-3.6%(8% 从未出现)。透明、数据驱动的幅度变化,保留了结构性门槛(边界开放至 8%),并非机制更换——但假设的 8% 覆盖费用的前提并非实际所测试的内容;在 2.8% 条件下边际较薄。 - Delta中性基于 USD-NOTIONAL(等量合约数,等面值 $100)。对于 INVERSE 合约 BTC delta = 名义价值/价格,因此两条腿的 BTC delta 存在基差差异(约 2-3%)——这是小幅度的方向性敞口残留,并非精确为零。二阶效应,对收敛交易而言可接受,但'构造上delta中性'略有夸大。
迭代历史
RuntimeError: 永续合约腿 'BTCUSD_260925.BINANCE_CM' 的资金费率数据不可用——按需采集失败,或该交易场所没有资金费率历史数据(为保证准确性,回测已阻止;设置 SF_DISABLE_ONDEMAND_FUNDING=1 可跳过) Traceback (most recent call last): File "/opt/strategy-factory/src/agents/backtest_agent.py", line 194, in _run_backtest await self._ensure_funding_for_perp_legs(instrument_id, extra_instrs) File "/opt/strategy-factory/src/agents/backtest_agent.py", line 411, in _ensure_funding_for_perp_legs raise RuntimeError( RuntimeError: 永续合约腿 'BTCUSD_260925.BINANCE_CM' 的资金费率数据不可用——按需采集失败,或该交易场所没有资金费率历史数据(为保证准确性,回测已阻止;设置 SF_DISABLE_ONDEMAND_FUNDING=1 可跳过)
放弃原因
backtest_failed: RuntimeError: 永续合约腿 'BTCUSD_260925.BINANCE_CM' 的资金费率数据不可用——按需采集失败,或该交易场所没有资金费率历史数据(为保证准确性,回测已阻止;设置 SF_DISABLE_ONDEMAND_FUNDING=1 可跳过) Traceback (most recent call last): File "/opt/strategy-factory/src/agents/backtest_agent.py", line 194, in _run_backtest await self._ensure_funding_for_perp_legs(instrument_id, extra_instrs) File "/opt/strategy-factory/src/agents/backtest_agent.py", line 411, in _ensure_funding_for_perp_legs raise RuntimeError( RuntimeError: 永续合约腿 'BTCUSD_260925.BINANCE_CM' 的资金费率数据不可用——按需采集失败,或该交易场所没有资金费率历史数据(为保证准确性,回测已阻止;设置 SF_DISABLE_ONDEMAND_FUNDING=1 可跳过)
Stratmill 是研究与模拟交易工具,不提供财务建议,也不是经纪商。回测与模拟结果均为假设性结果。交易存在亏损风险。