跳至正文
全部策略

策略

DOGE 现货-永续合约基差错位收敛、市场中性(跨场所 BINANCE_SPOT 做多 + BINANCE USD-M 永续合约做空,15m K 线,淡化LARGE散户挤压引发的永续合约溢价,资金费率顺风,纯-OHLCV低参数)

结局: 已放弃

DogeSpotPerpBasisDislocationConvergenceNeutral15m

语义审计器发现代码与假设不一致——代码NOT实现该假设。应重新编写策略,使其EXACTLY实现该假设(交易品种、时间周期、方向、指定优势 / 机制、仓位规模)。具体问题:入场条件与假设所述触发条件相矛盾。假设标题 / 正文规定,当永续合约相对现货出现 LARGE 的绝对溢价(60-200+ bps,称其比约 30 bps 的往返成本高一到两个数量级)时做多 ONLY。代码完全没有绝对溢价门槛:`calculate_signal`…

假设

一种 MARKET-NEUTRAL、CROSS-VENUE 收敛交易,针对 SAME 标的资产,跨越 Binance 的 TWO 个场所:LONG DOGEUSDT.BINANCE_SPOT(现货,现金腿)+ SHORT DOGEUSDT.BINANCE(USD-M 永续合约,对冲腿),仅当 PERP 相对 SPOT 出现 LARGE 溢价时入场。这一策略一次填补四个权重不足的类别:cross_venue(6.5%,目标为 >=15%)、BINANCE_SPOT(10.5%,目标为 >=15%)、long_short/市场中性方向(long_only 为 84.1%,上限为 <=55%),以及 short_1m_15m 持仓周期(4.5%,目标为 >=10%),通过使用 15m bar 实现。CRITICALLY,这与此前失败的 CM-vs-USD-M 资金费率差交易 NOT:那种策略追逐两个高度联动永续合约之间约 1e-6 每 -8 小时的 FUNDING 价差,在数学上不可能覆盖手续费。本交易瞄准现货与永续合约之间直接的 PRICE 错位;在像 DOGE 这样容易出现散户挤压的高 beta 标的上,杠杆驱动的快速上涨期间,这种错位经常会扩大到 60-200+ bps——比约 0.30% 的双边往返总成本(现货约 0.20% RT + 永续合约约 0.10% RT)高出一到两个 ORDERS OF MAGNITUDE。之所以有意选择 DOGE 而非 BTC/ETH,是因为主流币的现货-永续合约基差已被套利压至几个 bps,低于成本;而 DOGE 是 Binance 上散户杠杆驱动最强、流动性深厚的交易对,因此其永续合约在挤压行情中经常偏离现货。设计刻意保持 MINIMAL,并采用纯 OHLCV(基差由两个对齐的 15m bar 收盘价计算)——不扫描资金费率序列,不普查多空比,不使用期权链——从结构上避免了本投资组合中反复出现的 BOTH 个失败模式:历史数据过短导致的数据瓶颈(DOGE 现货和永续合约都拥有多年 15m Binance 历史数据),以及 Layer-3 300s 超时(每根 bar 的运算量为 O(1):一次减法和一次比率计算,无需重新扫描任何补充序列)。只有 4 个可调参数,以避免夏普比率虚高 / 过拟合方面的否决。

针对 Layer-3 零交易失败的第 -5 次修复,尽量精简并以证据为依据。Layer 1/1.5/2 已通过,未作改动(导入、类、双腿结构及可安全对齐的同期读取均相同)。唯一的功能变更是 ENTRY GATE UNIT:第 4 次迭代正确地对基差去均值,但仍以绝对 bps 设阈值。对目录实际包含的 10,176 个对齐的 15m 收盘价进行测量(DOGE 现货 15m 数据始于 2026-05-07):原始基差均值为 -5.00 bps,标准差为 1.95,最大值为 +16.98;去均值序列的标准差为 1.54 bps,因此配置的绝对门槛在 ONCE 天内触发 119 次,在沙盒时间窗口内触发零次——这正好对应报告中的“在评估的 10176 根 bar 中返回 0 次 side”。对同一偏离值使用滚动 z 分数作为门槛(尺度不变,符合反复强调应使用 z 分数而非固定常数的经验)后,触发了 165 次。我用 BacktestRunner 在本地重现了沙盒,使用 208 天的 15m 窗口:旧代码不起作用,新代码产生了 356 笔交易(178 对),没有错误,耗时约 2 分钟(在 300 秒预算内)。有一点我需要说明:同一次本地运行表明,假设的前提在数据中并不存在——avg_trade_return_pct 相较于约 0.30% 的现货+永续合约双边往返总成本为 0.013%,总回报为 -34%,夏普比率为 -1.0。该交易要淡化的错位离散度约为 1.5 bps,大约比它必须覆盖的手续费低 20x 倍;现有历史数据中并未出现所声称的“60-200+ bps”DOGE 现货-永续合约大幅偏离(仅有一个 +17 bps 的尾部值)。代码现在正确且可测;机制不可行,因此我的建议是放弃,而不是再进行一轮调参。

在可靠的 360 笔交易样本上呈现负期望值,且核心前提可测地不存在。该假设依赖“60-200+ bps”的 DOGE 永续合约相对现货错位,但在唯一重叠的 15m 现货历史数据(来自 2026-05-07)中,基差离散度约为 1.5 bps,只有一个 +17 bps 的尾部值——比约 0.30% 的现货+永续合约双边往返总成本低 10-20x。结果:avg_trade_return_pct 0.013%(接近零,远低于手续费下限),profit_factor 0.055,total_return -34.7%,夏普比率 -1.08(CI 完全为负),手续费占毛收益的 518%,且风险回报比不利(avg_loss 312 对比 avg_win 32,偏度 -8.9)。z 分数门槛在约 3 bps 的相对偏离时触发,无法覆盖成本,因此没有正的毛收益优势可供优化;这 4 个参数(entry_z/exit_z/basis_window/max_hold_bars)无论如何都无法让 PF-0.055 信号转正。QA 关于手续费不可行的担忧已由完整历史数据证实。不值得花 2 小时优化。abandon_class=negative_expectancy(前提已被证伪:数据中不存在大幅错位优势)。

实现

在 DOGE 上进行市场中性跨平台收敛配对:LONG DOGEUSDT.BINANCE_SPOT + 按美元金额匹配的 SHORT DOGEUSDT.BINANCE USD-M 永续合约,使用 15 分钟 K 线。当永续合约相对现货的基差(基点)较其自身 24 小时滚动区间显著偏高(z >= entry_z)时开仓,并在回归(z <= exit_z)或达到 24 小时时限时平仓。纯 OHLCV,每根 K 线的复杂度为 O(window),四个可调参数。裸露的单边头寸会立即平掉,因此持仓组合始终不会暴露于方向性风险。

验证结果

作为均值回归的基差收敛实现是可以接受的。如果要求严格符合“永续合约溢价”这一表述,可额外设置下限,要求基差>0(永续合约实际呈溢价),并同时保留 z 分数门槛;但请注意,数据显示这种情况几乎从未发生,而这本身就是关于优势的发现。

该假设规定仅当“PERP 以高于 SPOT 的 LARGE 溢价交易”时入场(绝对永续合约溢价,据称为 60-200+ 个基点)。但代码实际依据基差相对于其近期均值的滚动 z 分数设置入场门槛。考虑到测得的结构性基差偏移约为 -5 个基点,z>=entry_z 的入场条件可能在永续合约相对现货略有折价时触发,而非溢价。这是一个合理且与尺度无关的收敛门槛,仍然是在基差偏离时反向交易,但它反映的是相对区间偏离,而非假设字面上所指的绝对溢价优势。

作为 edge_concern 留给分析师。任何代码改动都无法让 1.5 bps 的错位覆盖 30 bps 的手续费;诚实的结论很可能是在 backtest_review 时放弃。

每笔交易的优势(约 1.5 个基点的离散度)比约 30 个基点的现货加永续合约双边往返成本低约 20x 倍;沙盒中的 356 笔交易证实期望收益为负。仅供参考——这是在回测阶段判定的绩效结果,并非代码缺陷。

根据开发者自己的诚实测量,该策略在现有历史数据上无法覆盖手续费。唯一重叠的 DOGE 现货 15m 数据(来自 2026-05-07)显示,永续合约相对现货的基差离散度约为 1.5 bps,只有一个 +17 bps 的尾部值——假设所依据的“60-200+ bps”散户挤压错位幅度低了 10-20x 倍。相较于约 30 bps 的双边往返总成本(现货约 0.20% + 永续合约约 0.10%),整个信号比成本小约 20x 倍:沙盒 avg_trade_return_pct 0.013%(远低于 0.15% 下限),total_return -34.4%,PF 0.047,夏普比率 -3.4,手续费占毛收益的 601%。还请分析师注意一个机制细节:入场门槛是基差相对于自身滚动均值的 z 分数;由于基差有持续约 -5 bps 的偏移,z>=2 时即使永续合约相对现货仍有小幅 DISCOUNT,也可能触发入场,而非假设所说的“大幅溢价”——因此,这是在淡化相对状态偏离,而非绝对的永续合约溢价。这是合理的价差收敛机制,但并非最初声称的大幅错位优势。所有这些都是对回测和分析师的表现 / 优势判断,并非代码缺陷;开发者据此建议放弃该策略。

回测评审

夏普
-1.08
总收益率
-34.69%
最大回撤
34.69%
总交易数
360
胜率
34.7%
盈利因子
0.05

可靠且经测量确认的最终结果:在约 120 天的现货-永续合约重叠期内交易 360 笔,双腿均取自同期 K 线(不存在滞后腿造成的伪差),因此这是对该机制的真实检验,而非零交易或数据受限导致的停滞。

市场中性构造合理,代码每根 K 线的复杂度为 O(1)。

前提已被证伪:假设中的“60-200+ bps”DOGE 现货-永续合约错位,在唯一重叠的 15m 数据中并不存在——基差离散度约为 1.5 bps,仅有一个 +17 bps 的尾部值,比约 0.30% 的双边往返总成本低 10-20x 倍。

可靠样本显示负期望值:avg_trade_return_pct 0.013%(远低于 0.15%/0.25% 下限且接近零),profit_factor 0.055,total_return -34.7%,夏普比率 -1.08(CI [-3.23, -1.00],完全为负),期望值为每笔交易 -$193。

commission_pct_of_gross 517.9% 和 total_impact 50k+ ——手续费 / 冲击成本远超微小的毛收益优势;z 分数门槛针对约 3 个基点的相对偏离触发,这些偏离无法覆盖成本。

结构性风险回报比不利:avg_loss 312 对比 avg_win 32,return_skew -8.9,峰度 81 ——少数几次大幅收敛失败造成的亏损会抹去许多次微小盈利。

只有约 120 天可用的现货 15m 历史数据;由于现货腿决定每根 K 线是否有效,永续合约长达 6 年的历史数据无关紧要。

分析

语义审计器发现代码与假设不一致——代码NOT实现该假设。应重新编写策略,使其EXACTLY实现该假设(交易品种、时间周期、方向、指定优势 / 机制、仓位规模)。具体问题:入场条件与假设所述触发条件相矛盾。假设标题 / 正文规定,当永续合约相对现货出现 LARGE 的绝对溢价(60-200+ bps,称其比约 30 bps 的往返成本高一到两个数量级)时做多 ONLY。代码完全没有绝对溢价门槛:`calculate_signal` 计算 `basis = (perp_px - spot_px)/spot_px*1e4`,然后计算 `dev = basis - self._basis_sum/n`(在 basis_window=96 根 bar 上滚动求均值),而 `_manage` 仅在条件 `dev >= entry_dev_bps`(默认值 2.5,边界 [1.0, 6.0])满足时开立现货多头 / 永续合约空头配对;代码没有检查 `basis > 0`。基础模板的入场路径在此处不起作用(`should_enter` 返回 None,`position_size` 返回 0),因此 `_manage` 是唯一的入场门槛。根据该策略自身测得的分布(均值 -5.31 bps,最大值 +0.00 bps,超过 |20| bps 的 bar 占 0.00%),该数据中永续合约从未出现溢价,因此每次入场触发时,永续合约相对现货都处于直接的 DISCOUNT 状态——与假设条件的符号相反;且触发幅度约为 2.5 bps,比假设赖以覆盖成本的 60-200+ bps 错位低 24-80x 倍。512 笔交易 / PF 0.066 / -50% 的结果进一步印证,触发入场的是被替换后的机制,而非假设中的机制。

迭代历史

验证失败(Layer 2 — 合成场景): 使用的参数:['exit_bps', 'min_bars', 'entry_bps', 'capital_frac', 'min_notional', 'max_hold_bars', 'qty_precision', 'spot_instrument_id', 'supplementary_data'] 检查 __init__ 是否设置了 self.parameters.get() 中的所有属性。 - steady_uptrend: TypeError: DogeSpotPerpBasisDislocationConvergenceNeutral15m._bar_ts() 需要 1 个位置参数,却传入了 2 个(bar 时间戳:1735690740000) - steady_downtrend: TypeError: DogeSpotPerpBasisDislocationConvergenceNeutral15m._bar_ts() 需要 1 个位置参数,却传入了 2 个(bar 时间戳:1735690740000) - flat_ranging: TypeError: DogeSpotPerpBasisDislocationConvergenceNeutral15m._bar_ts() 需要 1 个位置参数,却传入了 2 个(bar 时间戳:1735690740000) - volatility_spike: TypeError: DogeSpotPerpBasisDislocationConvergenceNeutral15m._bar_ts() 需要 1 个位置参数,却传入了 2 个(bar 时间戳:1735690740000) - zero_volume: TypeError: DogeSpotPerpBasisDislocationConvergenceNeutral15m._bar_ts() 需要 1 个位置参数,却传入了 2 个(bar 时间戳:1735690740000) - price_gap: TypeError: DogeSpotPerpBasisDislocationConvergenceNeutral15m._bar_ts() 需要 1 个位置参数,却传入了 2 个(bar 时间戳:1735690740000)

验证失败(Layer 3 — 沙盒回测):未产生任何交易 使用的K线类型:DOGEUSDT.BINANCE-15-MINUTE-LAST-EXTERNAL,处理的K线数量:210972 诊断:should_enter() 在 3168 根评估K线中返回方向 0 次 -> 您的 ENTRY CONDITION 从未触发。请放宽入场逻辑/阈值。 请确保您的策略在给定的数据和参数下能产生交易。

验证失败(Layer 4 — QA 审查)[class=code_defect]: - [edge_concern] 开发者自己的完整重叠区间测量(10,176 个对齐的 15m 收盘价,2026-05-07..2026-09-03)显示,永续合约相对现货的基差最大值为 +17 bps,第 99 百分位约为 2 bps,而双腿往返成本约为 30 bps(现货 0.10%x2 + 永续合约 0.05%x2)。假设的前提,即存在 60-200+ bps 的 DOGE 现货-永续合约错位,低了 4-10 倍;资金费率顺风(约 0.9 bps/天)需要约 33 天才能覆盖一次往返成本,而收敛周期为 24 小时。分析师还需注意:现货腿的 15m 历史数据直到 2026-05-07 才开始,因此这对交易品种仅能在约 120 天的重叠区间内进行测量。 - [严重] 双腿交易在结构上无法覆盖手续费。入场错位下限 min_dev_bps=5.0(0.05%)低于 0.15% 可行性下限,而该交易需承担约 0.30% 的双腿往返成本(BINANCE_SPOT 每边 0.10% x2 + BINANCE 永续合约每边 0.05% x2)。收敛交易的毛收益上限受入场错位幅度限制,因此在 5 bps 入场时,理想情况下完全收敛(约 5 bps)也只能收回 30 bps 成本的约 1/6。开发者对整个 10,176-bar 重叠区间的测量证实,观测到的 LARGEST 错位为 17 bps,第 99 百分位约为 2 bps,均低于 30 bps 的成本;而已发布门槛的重放结果显示,平均毛收益为 8.1 bps,即每笔交易净收益约 -22 bps。无论采用何种参数,这在手续费后都是负收益(将阈值提高至所需的 30 bps 会使交易数降为零,因为没有观测到的行情达到该幅度),因此优化器无法挽救,应在完整回测之前于此处否决。(第 96 行)——修复方案:在 DOGE 现货与永续合约基差上,收敛机制无法覆盖两个交易场所的往返成本,因为该基差在结构上从未超过约 17 bps。任何参数调整都无法解决。放弃这一机制,或改用基差错位经常超过约 40-60 bps 的交易场所 / 交易品种组合(即留出余量,覆盖 30 bps 的双腿成本)。

验证失败(Layer 3 — 沙盒回测):未产生任何交易 使用的K线类型:DOGEUSDT.BINANCE-15-MINUTE-LAST-EXTERNAL,处理的K线数量:211068 诊断:should_enter() 在 3264 根评估K线中返回方向 0 次 -> 您的 ENTRY CONDITION 从未触发。请放宽入场逻辑/阈值。 请确保您的策略在给定的数据和参数下能产生交易。

验证失败 (Layer 4 — QA 审查): - 假设的前提在经验上被证伪,由开发者在真实的 7,584 对齐 15m 收盘价(2026-05-07..2026-08-06)上测量得出:DOGE 永续与现货基差均值为 -5.31 bps,标准差 1.54,最小值 -10.70,MAX +0.00 bps —— 永续合约 NEVER 交易于现货之上,因此指定的"做空永续溢价 >= 8 bps"条件在任何阈值下都无法触发(是符号错误,而非水平错误)。相同的 ~-5 bps 偏移量出现在 BTC(均值 -4.57)和 ETH(均值 -4.75)上,表明这是两个交易场所的 15m 收盘价记录方式的系统性 FEED ARTIFACT,而非经济基差。假设的核心主张——"常规 60-200+ bps DOGE 错位"——在数据中以 10-20 的因子缺失(0.00% 的条形超过 20 bps)。为了产生任何交易,开发者将触发条件重新设定为基差减去滚动均值,留下仅 ~1.5 bps 标准差的残差错位。 - 费用/优势失败,是灾难性的而非边缘性的(检查清单 #7, L6)。两腿跨场所往返交易为四次成交约 30 bps(现货 0.20%……展开收起

验证失败 (Layer 4 — QA 审查): - 假设的前提在经验上被证伪,由开发者在真实的 7,584 对齐 15m 收盘价(2026-05-07..2026-08-06)上测量得出:DOGE 永续与现货基差均值为 -5.31 bps,标准差 1.54,最小值 -10.70,MAX +0.00 bps —— 永续合约 NEVER 交易于现货之上,因此指定的"做空永续溢价 >= 8 bps"条件在任何阈值下都无法触发(是符号错误,而非水平错误)。相同的 ~-5 bps 偏移量出现在 BTC(均值 -4.57)和 ETH(均值 -4.75)上,表明这是两个交易场所的 15m 收盘价记录方式的系统性 FEED ARTIFACT,而非经济基差。假设的核心主张——"常规 60-200+ bps DOGE 错位"——在数据中以 10-20 的因子缺失(0.00% 的条形超过 20 bps)。为了产生任何交易,开发者将触发条件重新设定为基差减去滚动均值,留下仅 ~1.5 bps 标准差的残差错位。 - 费用/优势失败,是灾难性的而非边缘性的(检查清单 #7, L6)。两腿跨场所往返交易为四次成交约 30 bps(现货 0.20% + 永续 0.10%),相对于 ~1.5 bps 的残差信号——费用约为 20x 整个优势。修正后的引擎沙盒远差于盈亏平衡:total_return -38.07%,夏普比率 -1.99,profit_factor 0.059,win_rate 0.35,avg_loss $324 对比 avg_win $36(~9x),largest_loss -$2,273,return_skew -13.9,return_kurtosis 243,换手率 102x,total_impact_usd $55,829 跨越 382 笔交易。在 15m 上做空 1.5-bps 的噪声偏差,并将背离亏损持有至 24h 超时,会对 DOGE 方向 delta 中性但 NOT 其交易基差的持仓产生不对称负向的收益几何形态。 - 可测量性 / 数据跨度壁垒。DOGEUSDT.BINANCE_SPOT 仅有 ~7,680 15m 条形(~92 天,2026-05-07..2026-08-07),而永续合约有 212,988 条形可回溯至 2020-07,因此基础库的同一时间框架对齐障碍仅能在该 ~92 天的重叠期内评估该对(失败消息中处理的 211,068 条形中的 3,264)。即使忽略费用裁决,~92 天的窗口也无法填充均值回归对的向前滚动 OOS 窗口或 15 天的保留样本。开发者表示,扩展现货历史是数据层任务,而非策略代码。

验证失败(第 3 层 — 沙盒回测):未产生交易 使用的 K 线类型:DOGEUSDT.BINANCE-15-MINUTE-LAST-EXTERNAL,处理的 K 线数:19756 诊断:should_enter() 在 10176 根已评估 K 线上返回了 0 次方向信号 -> 你的 ENTRY CONDITION 从未触发。请放宽入场逻辑/阈值。 请确保你的策略能够根据给定的数据和参数产生交易。

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