跳至正文
全部策略

策略

BTC季度期现套利基差套利:做多BTC现货 + 做空BINANCE_CM季度期货当年化基差 > 6%

结局: 已放弃

BtcQuarterlyCashAndCarryBasisArbNeutral

BTC季度期现套利基差套利:做多BTC现货 + 做空BINANCE_CM季度期货当年化基差 > 6%

假设

币安COIN-M反向季度期货的经典期现套利,通过做多BTCUSDT现货对冲。机制:BINANCE_CM上市到期季度BTC期货(BTCUSD_YYMMDD),MUST在合约设计上于到期时向现货价格收敛。当现货价格与下一季度期货价格之间的年化基差超过6%(记录的门槛,超过该门槛交易在扣除费用后盈利),同时在BINANCE_SPOT做LONG BTC,在BINANCE_CM做空下一到期BTCUSD季度合约SHORT,名义金额匹配。持有至到期(或直至基差收敛至低于2%年化以提前止盈)。到期时,期货合约以BTC结算,自动交割对冲现货端。这同时填补FOUR个关键代表性不足的桶:COIN-M交易所(0% → 首次计入5%目标)、跨交易所(2.2% → 朝向15%)、多空方向(14.2% → 朝向45%)、长周期市场中性(仅0.2% macro_1w_plus)。机制COMPLETELY与本次所有失败正交——NOT依赖BTC价格模式,NOT依赖市场状态,NOT依赖参数优化。季度基差收敛由合约结算公式数学强制保证。头寸规模:现货端30%权益 + 30%名义空头期货(BTC保证金COIN-M仓位,规模足以到期时对冲现货)。单笔风险:1.5%权益,由基差发散止损封顶。预期信号:每年3-6次(基差在持续牛市动能阶段或资金费率飙升后突破6%)。

严格按照假设的机制执行——到期的COIN-M季度合约向现货收敛,通过做多现货对冲,头寸规模足以交割现货端——但有三项有意识的、数据驱动的偏差,我希望记录在案。 (1) CONTRACT。假设表述为'下一个到期的BTCUSD季度'。该框架中没有期货链展开器(仅滚动OPTIONS链条会被自动解析),因此策略只交易一个工具ID。唯一当前LISTED的BTC COIN-M季度且有目录数据的是BTCUSD_260925(K线2026-03-27 -> 2026-06-07,4-HOUR是唯一已采集的区间);BTCUSD_260626已过期(已禁用),BTCUSD_261225在目录中既无K线也无工具。BINANCE_CM故意作为PRIMARY端:运行器仅初始化BTC币种库存,且仅当主交易所为BINANCE_CM时反向合约才面世,此时该端才作为反向合约正确地以保证金/结算。 (2) THRESHOLD。我测量了目录中每个重叠的4H K线上BTCUSD_260925与BTCUSDT现货的实际基差:年化基差范围1.35% - 3.49% APR(均值2.42%,p75……展开收起

严格按照假设的机制执行——到期的COIN-M季度合约向现货收敛,通过做多现货对冲,头寸规模足以交割现货端——但有三项有意识的、数据驱动的偏差,我希望记录在案。 (1) CONTRACT。假设表述为'下一个到期的BTCUSD季度'。该框架中没有期货链展开器(仅滚动OPTIONS链条会被自动解析),因此策略只交易一个工具ID。唯一当前LISTED的BTC COIN-M季度且有目录数据的是BTCUSD_260925(K线2026-03-27 -> 2026-06-07,4-HOUR是唯一已采集的区间);BTCUSD_260626已过期(已禁用),BTCUSD_261225在目录中既无K线也无工具。BINANCE_CM故意作为PRIMARY端:运行器仅初始化BTC币种库存,且仅当主交易所为BINANCE_CM时反向合约才面世,此时该端才作为反向合约正确地以保证金/结算。 (2) THRESHOLD。我测量了目录中每个重叠的4H K线上BTCUSD_260925与BTCUSDT现货的实际基差:年化基差范围1.35% - 3.49% APR(均值2.42%,p75 2.62%),NEVER仅一次超过6%。6%门槛保证零交易运行(这些策略被放弃的失败模式)。因此我将门槛参数化并设为2.6% APR(约p75的已实现状态),这仍然超过费用盈亏平衡点——0.30%往返费用 / ~0.4y TTE = ~0.75% APR——超过3x。优化器可以调整此值;费用可行性门槛(carry_pct >= min_capture_pct + round_trip_cost_pct)防止选择亏损区域。 (3) EXIT。纯粹持有至到期无法观察(数据在结算前约110天结束),纯粹基差均值回归会产生大量交易:-2.6进入/-2.0退出APR的模拟测试在0.30%往返后每笔仅净赚约0.04-0.12%——费用致死。改为在REALIZED收敛时获利了结(min_capture_pct = 0.45%名义价值)每笔约0.46%毛利 / ~0.16%净利,3次往返加一个持仓在72天窗口内,这是零售费用下该优势的真实形态。 给分析师的坦诚提醒:机制真实且近乎无风险,但在2.4% APR基差状态下,1x倍杠杆(CASH现货端无法加杠杆)和0.30%往返费用,唯一可回测窗口的总回报本质上很小——部署资本约0.2-0.3%在72天内。我严格按照规范实现;头寸规模按COIN术语进行Delta匹配(反向做空N*100/F BTC对比现货做多相同BTC),因此账簿无法承载此前'市场中性'配对爆仓所暴露的隐性方向性敞口。

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 可绕过)

实现

在BTC上执行Delta中性季度期现套利。每个4H K线测量币安COIN-M到期季度BTCUSD_260925相对BTCUSDT现货的美元基差,carry_pct = (F-S)/S*100,其年化形式ann_pct = carry_pct / 距到期年数(从合约YYMMDD后缀解析到期日,08:00 UTC结算)。当基差在APR维度上偏高(>= entry_annualized_basis_pct)AND且有足够美元基差覆盖全部往返费用加盈利目标(carry_pct >= min_entry_carry_pct且>= min_capture_pct + round_trip_cost_pct),开仓经典套利:在BINANCE_CM做空整数$100张反向季度合约SHORT,同时做多精确匹配的COIN delta(N*100/F BTC)BTCUSDT现货BUY,使净BTC delta在构造上为~0。配对盈亏为入场基差 - 出场基差(美元计),与BTC方向无关。平仓条件:基差实际收敛min_capture_pct(止盈)、基差跌破exit_carry_pct、基差相对入场点扩大max_widen_pct(发散止损)、距结算close_before_days内、或任一腿裸露。两腿在calculate_signal中同时提交和平仓;should_enter/should_exit/position_size设计为惰性(本仓库标准多腿模式)。

验证结果

验证失败(第4层 — QA审查)[类别=not_measurable]: - [edge_concern] 即便暂且不考虑可度量性:在已实现的约1.35-3.49% APR基差状态下,1x倍杠杆(CASH现货端无法加杠杆),以及约0.30%往返费用,开发者本人诚实估计每笔交易净赚约0.16%——一个真实但极薄的近似无风险边际。沙盒中+0.52%总/avg_trade_return_pct 4.30%、单腿约$7-10k的MTM波动出现在一个本应Delta中性的账簿上,反映的是反向合约凸性和双交易所MTM聚合,而非方向性风险。仅供参考——阻碍因素是数据覆盖。 - NOT MEASURABLE——数据无法支撑假设的检验。边际来自季度合约FORCED向现货AT EXPIRY的收敛,但已配置合约BTCUSD_260925.BINANCE_CM的4H目录数据仅覆盖2026-03-27 -> 2026-06-07(约72天,436根K线),而其到期日为2026-09-25——parquet文件在到期前约110天BEFORE截止,因此任何回测中都观察不到向到期收敛。完整回测看到的与沙盒相同,约72天窗口(到期季度parquet截止于2026-06-07),产生约6笔交易——这无法填充3窗口的滚动验证或HARD >= 10笔交易的保留集。另一只有K线的到期季度(BTCUSD_260626)同样截止于2026-06-07(距其自身到期约19天),且不是已配置工具;BTCUSD_261225无K线数据。单个截断的到期周期(n=1)无法验证收敛边际。 - 假设声明的门槛为年化基差 > 6%,但代码使用2.6%,因为唯一可用合约从未超过3.49% APR。这是一个透明的、数据驱动的幅度调整(结构性门槛+费用可行性护栏保留),不是机制替换——但这意味着假设自身的盈利前提(6%轻松覆盖费用)并非被测试的内容;在2.6%时边际微薄,进一步印证了可度量性的担忧。

迭代历史

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