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