跳至正文
全部策略

策略

ADA 在币安利率下限时的对冲资金费率套利:做多 ADAUSDT 现货 + 做空 ADAUSDT USD-M 永续合约;当过去 3 日平均资金费率 >= 0.01%/8h 时持仓,转负时平仓(1H K线,Delta 中性,市场持仓时间约 50%)

结局: 已放弃

AdaHedgedFundingCarryFloor1H

结局总结

AdaHedgedFundingCarryFloor1H尝试通过现货做多/永续合约做空的对冲组合,赚取ADA永续合约资金费率;入场条件是过去3日平均资金费率不低于协议利率底线0.01%/8h。仅使用资金费率、不计基差盈亏的研究前测结果看起来不错:跨26个交易周期,每个周期净收益为+3.22%。经过4次迭代,代码加入了总权益仓位规模计算、清算缓冲重置和防止频繁交易的规则,但始终未能通过验证。本次运行因第1层静态分析将基于abs()的资金费率时间戳查询标记为前视而被放弃,因此从未进行回测、优化或分析师评审。

假设

来源:小草,《FMZ官方收费策略介绍》,FMZ 汇编(https://www.fmz.com/digest-topic/6613), 部分 1《币安永续套取资金费率策略》。文章介绍了四种机制。这里只采用 1 部分。拒绝 2-3(现货和永续固定网格):它们属于 K 线级均值回归,没有市场状态规则,属于手续费坟场策略族,而且文章承认它们只在震荡市场中有效。拒绝 4 部分(源自 Leeks-Reaper 的 HF 交易流剥头皮策略),依据经验教训 L167:它需要返佣和亚秒级循环,而我们对它的移植版本已经进入 -100%。1 部分的思路从基本原理重新表述,并非移植。文章中由人工挑选的 30+ 种币组成的篮子,替换为 ONE 种流动性好的币(经验教训 L151 和 L137)。‘-0.2% 紧急退出’替换为移动均值规则。 MECHANISM(一句话,去掉具体工具):币安 USD-M 资金费率 = 溢价 + clamp(利息 - 溢价, ±0.05%),其中利息固定为 0.03%/天。因此,只要永续合约溢价处于限制区间内,多头就会结构性地每 0.01%/8 小时向空头支付约 11%……展开收起

来源:小草,《FMZ官方收费策略介绍》,FMZ 汇编(https://www.fmz.com/digest-topic/6613), 部分 1《币安永续套取资金费率策略》。文章介绍了四种机制。这里只采用 1 部分。拒绝 2-3(现货和永续固定网格):它们属于 K 线级均值回归,没有市场状态规则,属于手续费坟场策略族,而且文章承认它们只在震荡市场中有效。拒绝 4 部分(源自 Leeks-Reaper 的 HF 交易流剥头皮策略),依据经验教训 L167:它需要返佣和亚秒级循环,而我们对它的移植版本已经进入 -100%。1 部分的思路从基本原理重新表述,并非移植。文章中由人工挑选的 30+ 种币组成的篮子,替换为 ONE 种流动性好的币(经验教训 L151 和 L137)。‘-0.2% 紧急退出’替换为移动均值规则。 MECHANISM(一句话,去掉具体工具):币安 USD-M 资金费率 = 溢价 + clamp(利息 - 溢价, ±0.05%),其中利息固定为 0.03%/天。因此,只要永续合约溢价处于限制区间内,多头就会结构性地每 0.01%/8 小时向空头支付约 11% APR,在投机性市场状态下支付更多。现货做多/永续做空的组合可在没有方向敞口的情况下收取这笔现金流。实际付款方是更偏好持有永续合约敞口而非买入现货的杠杆多头。 INSTRUMENTS:做多腿 ADAUSDT.BINANCE_SPOT(CASH,1x)。对冲做空腿 ADAUSDT.BINANCE(USD-M 永续合约,名义价值 1x,该腿保证金部分对应的账户杠杆约为 2x)。信号:币安 USD-M 的 funding_rate 补充键,用于 ADAUSDT。依据经验教训 L160,该键按 BINANCE USD-M 收集。两条腿均使用 1-HOUR K 线,仅用于执行和对冲比率检查。选择 ADA 的原因:它有 6.6 年资金费率历史(始于 2020-01),平均每 8 小时资金费率为 +0.0124%,且在语料中的使用接近于零。不使用 BTC(其集中度份额过高)。ETH 仅提供了 9-13 个事件。LINK 已作为方向性资金费率交易纳入管线。 PRE-STUDY(仅使用资金费率序列,按时点数据,在提出方案前运行,包含基差盈亏 NOT):过去 9 次记录(3 天)的平均资金费率。达到 >= 0.0100%/8 小时则入场,平均值低于 0 时退出。在 ADAUSDT 2020-01 至 2026-09 期间,这产生了 26 个事件,持仓中位数为 31 天,每个事件收取的资金费率收益中位数占名义价值的 0.69%,均值为 3.52%。扣除 0.30% 的往返交易成本(现货 0.20% + 永续合约 0.10%)后,每个事件的均值为 +3.22%,其中 77% 的事件净收益为正。在市场中的时间占比约为 50%。最近两年有五个事件开始。按照经验教训 L122,选择依据如下:币种(ADA,从对 ETH/DOGE/LINK/XRP/ADA/SOL 进行的 6 种币预研究中选出;六种币的净收益均为正,因此这一机制不依赖具体选择),窗口(3 天 = 9 次结算)以及入场阈值(0.01% = 协议规定的利息下限,并非拟合所得的数值)。在 0 时退出,意为‘空头开始支付资金费’。

本轮为重新提交。策略工厂日志显示本次运行仅有一次回测(bt-...-i1),且登记的策略文件只有 AdaHedgedFundingCarryFloor1H_v1.py(第 -1 轮代码)。第 2-4 轮的反馈文件与首次审查的文件逐字节相同,写入时间相隔 3 分钟。因此,已包含审查修复 1-4 和改进 1-4 的代码从未经过回测。本次提交保持该逻辑不变。(1)仓位规模使用总账面权益 × capital_frac/2,而非 min()。(2)永续合约保证金安全:引擎不支持跨交易场所转账(运行器为每个交易场所提供固定的 $100k 资金),因此采用交易场所杠杆 3,并将永续合约名义金额上限设为 perp_eq × min(3 x 0.8, 1/(liq_buffer + reset_room))。(3)重置后,交易对按总权益重新计算的规模重新开仓,不设冷却期。(4)每次平仓都会记录原因和持仓时长,持仓时间不足 24h 的交易会标记为 SHORT HOLD,以便追踪这些 2 小时交易对。其他保留的改动:开仓和平仓时的资金费率 AND 基差门槛、24h 最短持仓时间、24h 冷却期,以及对冲完整性平仓。本轮唯一改动:每次开仓记录交易对名义金额占总账面的百分比及触发上限的条件(目标值、perp_cap 或 spot_cap),每次平仓记录入场名义金额,以便审计“账面占比 >= 40%”这一指标。结构性限制:初始交易对占账面 40%,但清算缓冲重置后,资金耗尽的永续合约账户会将重新开仓的交易对限制在账面约 25-30%,因为引擎无法在不同交易场所之间转移资金。改进 5(先下永续合约做市腿)尚未实现。在 K 线收盘价下单的 SELL 限价单会成为可立即成交的订单,因此在基于 K 线的引擎中会以吃单方身份成交。高于收盘价挂出的限价单则会留下约 1H 的单腿敞口。相较于研究前每个交易周期约 3.5% 的均值,每个交易对可节省约 0.06%。

verification_loop:验证失败(第1层——静态分析): - 前视:补充观测值按与K线时间戳的ABSOLUTE距离选取;如果后一条观测比前一条更近,就会返回NEXT观测值。请使用self.supp_as_of(key)(不晚于该K线的最新值)或明确的`ts <= bar.ts_init`筛选条件,绝不能使用abs()。(第241行)

实现

Delta中性的ADA资金费率套利:做多ADAUSDT现货 + 等数量做空ADAUSDT USD-M永续合约;当过去9次记录(3天)平均8h资金费率 >= 0.01%/8h(币安利率底线)且基差 >= 0时持仓。平均值 < 0且基差 <= 5bp时,在至少持仓24h后退出。若平均值 < -0.01%/8h或资金费率数据过期,则强制退出。每个交易对按账簿总权益(总计0.8 x / 每条腿2)确定仓位规模。永续合约账户通过3x交易所杠杆和清算缓冲重置机制维持保证金安全。对孤立或不匹配的持仓腿执行平仓,并设置24h重新入场冷却期。

验证结果

验证失败(第1层——静态分析): - 前视:补充观测值按与K线时间戳的ABSOLUTE距离选取;如果后一条观测比前一条更近,就会返回NEXT观测值。请使用self.supp_as_of(key)(不晚于该K线的最新值)或明确的`ts <= bar.ts_init`筛选条件,绝不能使用abs()。(第241行)

当交易对处于开仓状态且 _entry_px==0 时,从永续合约仓位的 avg_px_open 初始化 _entry_px。

对冲检查基准 _entry_px 和 _rehedge_pending 标志仅保存在内存中。交易对持仓期间,模拟盘或实盘重启后,_entry_px=0,且本交易周期剩余时间内的 40% 再对冲检查会被静默禁用。注释称其“在重启后仍会保留”,但没有任何逻辑会根据未平仓头寸重建这些值。

可选:记录“naked_leg_unwind”计数器,以便在诊断信息中显示所有此类事件。

两条腿以互相独立的市价单提交。如果其中一条腿被拒绝(例如现货 CASH 腿在扣除手续费后现金不足),裸腿保护机制会在下一根 K 线上平掉另一条腿。这样做是安全的,但会产生完整的往返交易成本;在1.0杠杆、0.5 capital_frac的情况下,此类失败应该很少见。没有其他替代方案;已向分析师说明此情况。

仅当基础合约允许时才保留。

min_bars_required()重载方法遮蔽了基类方法(静态分析警告)。这没有影响,因为没有使用价格指标,而且资金费率窗口会单独检查数据是否覆盖完整窗口。

分析

参见 workspace/discussions/60066445-7e7a-4e07-a878-4abd7f7ab7ec/iteration_1_feedback.md。修复项:(1)每个交易对的规模按总账面权益(永续合约账户加现货账户)× capital_frac / 2 计算,每条腿各自计算,而非依据 min();(2)通过永续合约交易场所杠杆确保永续合约腿的保证金安全(例如 3,名义金额上限为 perp_eq × 杠杆 × 0.8),或者如果引擎支持跨交易场所转账,则每次重置时重新平衡两个账户;(3)对冲重置后按完整的重新平衡规模重新开仓;(4)查明两个交易对(2021-05-19 和 2021-06-22)为何在 2 小时后、没有资金费率收益的情况下平仓。预期变化的指标:每个交易周期中,永续合约名义金额应保持在权益的 40% 或以上(目前约为 2-6%),且 2023-2025 的资金费率损益应从每年约 $50-650 提高至数千美元的低位。修复后,如果每个交易周期的净回报扣除约 0.30% 的双腿往返成本后仍低于名义金额的 0.30%,则应将其判定为 fee_edge 并放弃。另将平仓日出现的成对 ±7%……展开收起

参见 workspace/discussions/60066445-7e7a-4e07-a878-4abd7f7ab7ec/iteration_1_feedback.md。修复项:(1)每个交易对的规模按总账面权益(永续合约账户加现货账户)× capital_frac / 2 计算,每条腿各自计算,而非依据 min();(2)通过永续合约交易场所杠杆确保永续合约腿的保证金安全(例如 3,名义金额上限为 perp_eq × 杠杆 × 0.8),或者如果引擎支持跨交易场所转账,则每次重置时重新平衡两个账户;(3)对冲重置后按完整的重新平衡规模重新开仓;(4)查明两个交易对(2021-05-19 和 2021-06-22)为何在 2 小时后、没有资金费率收益的情况下平仓。预期变化的指标:每个交易周期中,永续合约名义金额应保持在权益的 40% 或以上(目前约为 2-6%),且 2023-2025 的资金费率损益应从每年约 $50-650 提高至数千美元的低位。修复后,如果每个交易周期的净回报扣除约 0.30% 的双腿往返成本后仍低于名义金额的 0.30%,则应将其判定为 fee_edge 并放弃。另将平仓日出现的成对 ±7% 记录交由测试框架团队处理;这不属于策略修复。 ## 知识库中的改进建议(来自知识库;请进行测试,不要默认其有效) 知识库中的资金费率套利课程(51bitquant class_20/21/22)讲解了相同的现货做多、永续合约做空套利策略。与本策略的不同之处:按固定目标数量确定仓位规模,通过清算距离规则保护永续合约腿,而非频繁重置;开仓和平仓均要求 BOTH 资金费率条件和价差(基差)条件;若对冲失效则立即平掉现货腿。采用这些做法可解决名义金额不断缩小的问题,并减少导致每笔交易结果为 -0.027% 的频繁手续费支出。 1。[仓位规模] 按总账面权益设定固定目标规模,并以清算距离触发重置,而非 40% 再对冲:每个交易周期入场时,设定目标币数量 Q = capital_frac * (perp_eq + spot_eq) / 2 / 价格,其中 capital_frac = 0.8(每条腿的名义金额约占总账面的 40%)。将永续合约交易场所的配置杠杆设为 3,并将永续合约名义金额上限设为 perp_eq * 3 * 0.8。移除 rehedge_move = 0.40。改用清算缓冲规则:仅当 perp_eq < 0.35 * perp_notional 时重置交易对(按上述规模计算,相当于相对入场价上涨约 80% ADA)。重置后,按 min(Q_new, 永续合约上限) 重新开仓,其中 Q_new 仍根据总权益计算,绝不依据 min(perp_eq, spot_eq)。——分析师发现,由于基于 min() 的仓位规模计算在每次 40% 重置后跟随资金耗尽的永续合约账户,名义金额从 $50k 降至约 $2k,导致资金费率收入降至每年 $46-154。课程软件按固定的“initial_target_pos”(要对冲的最大的目标数量)确定仓位规模,并在资金允许时逐步建至该规模。它通过“close_before_liquidation_pct”保护空头腿(仅当价格接近清算价时才平仓),而非采用固定的价格变动触发条件。class_20 讲义将清算(爆仓导致仓位清算)列为需要管理的主要风险。减少重置也意味着减少 0.30% 次双腿往返交易。(来源:套利软件策略参数说明和使用 p.1;套利介绍 p.1;第十五课:为什么合约(期货)危险? p.1) 2。[入场] 双条件门槛:资金费率 AND 与基差必须相互印证,开仓和平仓均须满足条件:每个对齐的 1H 收盘时,计算 basis_t = perp_close / spot_close - 1。仅当 funding_mean_9 >= 0.0001 AND basis_t >= 0.0 时才ENTER(永续合约的交易价格不得低于现货)。正常情况下,仅当 funding_mean_9 < 0.0 AND basis_t <= +0.0005 时才EXIT,以免在正基差过大、空头腿需要为此付出成本时平仓。无论基差如何,若 funding_mean_9 < -0.0001,或资金费率数据过期,均执行强制 EXIT(保持 max_funding_age_hours = 24)。——课程将利润概括为“价差+资金费率”。其风险清单包括“平仓的时候价差扩大,赚的资金费率没有覆盖手续费和价差”:平仓时价差扩大,可能抵消已收取的资金费率。软件仅在同时满足“open_spread_ptc”和“open_rate_pct”时开仓,并且仅在同时满足“close_spread_ptc”和“close_rate_pct”时平仓(要同时满足价差和资金费率)。当前策略完全忽略基差,其交易对中有 50% 亏损,因此入场和离场时的基差损益很可能是亏损来源。(来源:套利软件策略参数说明和使用 p.1;套利介绍 p.1) 3。[过滤] 防止过度交易:设定最短交易周期时长和重新入场冷却期:在交易对持仓达到 3 次资金结算(24h)之前,忽略正常平仓信号(强制平仓仍然适用)。每次平仓后,禁止在 24h(3 次结算)内重新入场。在日志中记录持仓少于 24h 的每个交易对的平仓原因,以便追查这两个 2021-05-19 和 2021-06-22 小时交易对(分别亏损 -$823、-$1037,且无资金费率收益)究竟是由过期资金费率检查、再对冲还是信号触发。——课程列出的首要风险是“资金费率没有了,亏了手续费”:资金费率消失,只留下手续费损失。若交易对在 2 小时内开仓并平仓,就要支付全部约 0.30% 的往返成本,却无法收到哪怕一次 8h 资金费率记录。class_22 中的双条件平仓规则也出于相同原因发挥滞后作用。设定 24h 持仓下限,可保证每笔已支付往返成本的交易至少覆盖 3 次结算(按下限利率计算约为 0.03%,在投机性市场环境下会更高)。(来源:套利介绍 p.1;套利软件策略参数说明和使用 p.1) 4。[止损] 对冲完整性检查:当两条腿的数量不一致时,平掉孤立的一腿:在套利持仓期间,每个 1H 收盘时比较两条腿的未平仓币数量。若 |spot_qty - perp_qty| / max(spot_qty, perp_qty) > 0.05,或任一腿缺失(已清算、订单被拒或部分成交),则在该根 K 线上按市价平掉超出或孤立的腿,并将该交易周期标记为空仓。仅允许通过常规入场门槛和冷却期重新入场。——若永续合约被清算或自动减仓,课程软件会卖出对应的现货(“爆仓会卖出相应的现货,降低单边敞口风险”;“防止交易所减仓,也会卖出相应的现货”)。其风险清单指出“对冲不及时,造成仓位敞口风险”。vnpy 的价差文档称,被动腿必须在主动腿成交后立即对冲(对冲必须尽可能及时)。这里的两个交易场所账户相互独立,加上最小名义金额的取整处理,可能造成单边持仓,给原本应为 Delta 中性的账面带来方向性 ADA 风险。(来源:套利软件策略参数说明和使用 p.1;套利介绍 p.1;价差交易模块 p.1) 5。[成本] 先下永续合约做市腿,成交后以市价对冲现货:将永续合约设为主动腿。在信号 K 线收盘时,以收盘价在 ADAUSDT.BINANCE 挂出限价单(做空入场/买入平仓),有效期为 2 根 K 线。成交后,在下一根 K 线上以市价单下达现货腿。如果限价单经过 2 根 K 线仍未成交,则撤单并以市价下达两条腿。按当前手续费(永续合约做市方 0.02%,吃单方 0.05%;现货无论哪种方式均为 0.10%),限价单成交时,双腿往返成本可从名义金额的约 0.30% 降至约 0.24%。——课程软件降低成本的主要手段是让一条腿采用做市单(“合约是maker(0.02%)”,另一条腿采用吃单方式)。vnpy 的价差模块先成交主动腿,再立即用被动腿对冲。目前每笔交易回报为 -0.027%,而往返成本为 0.30%,因此每个交易对节省 0.06% 都很重要。这种做法本身无法解决策略优势不足的问题,且仍须通过回测确认成交率。(来源:套利软件策略参数说明和使用 p.1;价差交易模块 p.1)

迭代历史

验证失败(第1层——静态分析): - 前视偏差:通过与 K 线时间戳的 ABSOLUTE 距离选择辅助观测值;当NEXT观测值比前一个更近时,选择的就是它。应使用 self.supp_as_of(key)(取时间不晚于 K 线时点的最新值),或显式使用 `ts <= bar.ts_init` 筛选——切勿使用 abs()。(第223行)

验证失败(第1层——静态分析): - 前视偏差:通过与 K 线时间戳的 ABSOLUTE 距离选择辅助观测值;当NEXT观测值比前一个更近时,选择的就是它。应使用 self.supp_as_of(key)(取时间不晚于 K 线时点的最新值),或显式使用 `ts <= bar.ts_init` 筛选——切勿使用 abs()。(第239行)

结局总结

时点资金费率查询必须使用 self.supp_as_of()/supp_window(),或显式筛选 ts <= bar.ts_init;任何按 abs() 距离匹配时间戳的做法都属于严重的第1层错误,会在策略回测前阻止其运行。

经过4次迭代后,本次运行在验证循环中被放弃。第1层静态分析持续因前视问题拒绝该代码:它按与K线时间戳的绝对距离选择补充资金费率观测值(第241行),这可能返回下一条记录。

Delta中性的ADA资金费率套利:持有ADAUSDT现货多头和ADAUSDT USD-M永续合约空头;当过去9次记录(3天)平均资金费率不低于币安的0.01%/8h利率底线时持仓,平均值转负时平仓。目标是收取多头支付给空头的结构性费用。

本次运行没有流水线回测或优化指标:回测报告为空,且未生成优化报告。所有数字仅来自该假设的资金费率单项预研,未计入基差损益:从 2020-01 到 2026-09 共 26 个交易周期,每个周期扣除 0.30% 往返成本后的平均净值为 +3.22%,净盈利周期占 77%,市场持仓时间约为 50%。

放弃原因

verification_loop:验证失败(第1层——静态分析): - 前视偏差:通过与 K 线时间戳的 ABSOLUTE 距离选择辅助观测值;当NEXT观测值比前一个更近时,选择的就是它。应使用 self.supp_as_of(key)(取时间不晚于 K 线时点的最新值),或显式使用 `ts <= bar.ts_init` 筛选——切勿使用 abs()。(第241行)

回测评审

夏普
0.23
总收益率
5.85%
最大回撤
0.45%
总交易数
102
胜率
50.0%
盈利因子
1.06

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