策略
价格与基差分歧规则:作为 UN-TUNED 个8标的事件面板的量化回测。当主流币的 24h 均值永续溢价在一个方向上达到 >= 2 sigma,而其 24h 价格变动在相反方向上达到 >= 0.5 sigma 时,固定持仓 18h,按溢价方向交易(Binance USD-M 1H,独立的单标的事件交易,空仓时间约占标的小时数的 85%,premium_index)
结局: 已放弃
PremiumPriceDisagreementPanel
结局总结
分析师将单名 ETH 溢价与价格分歧策略以 revise_hypothesis 结论退回(单笔交易优势显著,但交易笔数不足以通过去膨胀检验或 FDR)后,研究负责人将其改写为冻结的 8 主流币事件面板,以扩大覆盖面。首次进行全历史回测时,面板共运行 830 笔交易并亏损:Sharpe -0.146,PF 0.908,总回报 -14.5%,7 年中有 4 年亏损。只有 ETH、SOL 和 LINK 盈利,而 BTC、DOGE 和空头的亏损超过了这些收益。经过 3 次迭代后,该策略在回测审查阶段被放弃。审查者还标记了两项需审查指标和引擎的问题:avg_trade_return_pct 与账本的符号不一致,以及反复出现的成对每日 ±9-10% MTM 波动。
假设
第3轮仅修复Layer-3超时问题。信号、仓位规模和退出规则均未改变。诊断:我在相同沙箱子进程中,使用py-spy分析了迭代-2代码,窗口为相同的833天、8腿、1H。运行在405-518秒后完成,产生265笔交易,夏普比率为-0.15,avg_trade_return_pct 0.163%。在8,026个采样中,只有约630(8%)位于策略代码内。约55%耗时用于NautilusTrader ParquetDataCatalog文件发现(_query_files中的fsspec glob/walk、bars()和instruments(),每种腿的K线类型运行一次)。约20%耗时用于_add_per_leg_premium_index加载所有8个标的的1分钟premiumIndexKlines parquet(单独测得约41秒)。因此,策略逐根K线的计算成本不会随回测区间增长。超时来自随交易腿数增长的单标的基础设施开销(选项c L155不适用)。此处的改动减少策略本身的耗时占比:现在仅对有跟踪入场记录(_stop_dist)的腿查找缓存仓位;空仓腿每根K线的逐腿仓位计数从约3降至0(约85%的标的小时为空仓)。这最多节省约30秒运行时间,单靠这一改动不足以让约400秒的运行低于300秒。唯一能从策略侧解决问题的办法是减少交易腿数,但这会破坏既定的8标的假设(hypothesis_mismatch,L86)。
失败代码:no_edge(premise_falsified),取自首份完整历史测量报告。固定的8标的价格与基差背离面板完成830笔交易,夏普比率为-0.146(CI -0.89至+0.63),PF 0.908,总收益为-14.5%。账本的单笔净收益为-0.099%,低于0.15% USD-M门槛。报告中的+0.089% avg_trade_return_pct与账本符号不一致,看起来是未扣成本的毛值(L116),因此需要审查指标。这不是fee_edge,因为在与门槛比较之前,符号就已为负。覆盖范围扩展后的结果推翻了溢价背离优势能够推广至各主流币的假设。BTC(PF 0.63,-$10.9k)和DOGE(PF 0.54,-$13.0k)的亏损超过ETH,而SOL和LINK获利(PF 1.22至1.29,合计约+$11k)。空头方向亏损-$22.4k。2022-2024和2026为负。QA的担忧得到证实。逐标的赢家是从8个标的中事后挑选的,只在这三个标的上重跑属于挑选性报告。给研究负责人的说明:不要再将这一机制作为主流币面板或手选的ETH/SOL/LINK子集重新提出。ETH单标的形式在去膨胀检验中已失败,面板结果则显示该效果无法在其他标的上复现。引擎审查,未经验证:反复出现配对的-9%至-10% / +9%至+11%每日MTM波动,以及空仓时出现的-10.0%最终K线打印。
实现
8 标的 Binance USD-M 1H 事件面板(BTC、ETH、XRP、SOL、ADA、LINK、DOGE、BNB)。逐标的计算:24h 均值 premium_index 相对于 720h 的 z-score,以及 24h 对数收益的 z-score。当 z_prem >= +2 且 z_ret <= -0.5 时执行 LONG;满足镜像条件时执行 SHORT。固定 18h 时钟退出,灾难止损设为 2.5x ATR24,在 1H 收盘价检查;每个标的冷却 6h。每个事件承担权益的 1% 风险,名义价值上限为 20%,最多同时持有 4 个仓位,单边最多 3 个,杠杆 2x。
验证结果
移除“* self.leverage”,使名义价值 = 权益 * frac,以符合声明的每事件 1% 风险和 80% 总敞口;此时杠杆 2x 仅作为保证金余量。或者保留该项,并修正文档字符串,以便分析师将回撤与每事件 2% 的组合进行比较。
每事件仓位规模会乘以杠杆:名义价值 = 权益 * min(0.20, 0.01/stop_pct) * 2.0。假设称:“每事件名义价值 = min(权益的 20%,权益的 1.0% /(2.5 x ATR%)),因此每个事件的风险约为权益的 1%。”按代码实现,每个事件触及灾难止损时风险约为权益的 2%,单事件上限为权益的 40%,最坏情况下的总毛敞口为 4 x 40% = 权益的 160%。类文档字符串声称“总毛敞口 <= 4 x 20% = 权益的 80%(符合 1x)”,与代码矛盾。沙盒中 avg_position_pct 的 16.5% 确认了规模翻倍。风险仍有界:160% 总毛敞口未超过交易场所杠杆 2x,止损为 2.5 x ATR,单事件风险为 2%,处于 L148 的 1-2% 区间内。假设中“总敞口上限 <= 权益的 80% x 2x”一行也有歧义。因此这是警告,而非关键问题。Sharpe 和 PF 对规模不敏感,但回报、回撤和 Calmar 约为预注册组合的 2x。
若连续采样间隔超过 1h,可选择重置某条腿的滚动状态或跳过信号。
只有在max_premium_age_hours(1小时)内存在溢价样本时,prem_h才会获得数值。溢价数据源出现缺口后,“24小时均值”覆盖的实际时长会超过24小时。同样,收盘价、最高价和最低价使用按样本数计数的双端队列,若某条腿缺少某小时的K线便会跳过,因此数据缺口后,ret24和24小时区间所跨时长可能超过24小时。在流动性较好的币安主流币上,影响很小。
无需更改。
名义价值下限为 min_notional=10(USD),数量先四舍五入至 6 位小数,再由基础模板按合约精度标准化。在 risk_pct 1% 和 1x-2x 权益下,无论权益处于何种现实水平,每个事件的名义价值都远高于 $5,因此没有问题。
沙盒覆盖 834 天(2024-06 至 2026-09),共 266 笔交易:PF 0.96,Sharpe 为 -0.37(CI -1.60 至 0.86),总回报 -1.84%。报告的 avg_trade_return_pct 为 +0.080%,其符号与总回报及 avg_trade_pnl_usd(-$6.93)相反。佣金为 $4,404,净值为 -$1,844,由此推算毛值约为 +$2,560。因此,百分比字段似乎是扣除佣金前的毛值(L116 符号检查:这是指标或账本分母问题,而非策略代码问题)。按扣费后净值计算,单事件优势约为零,远低于预注册的约 +0.35%。亏损集中在低波动率三分位(-6.2%,Sharpe -1.77)。完整 2020-2026 回测应优先检查:(1)各标的单笔净回报,因为 BTC 和 BNB 可能稀释 ETH 优势;(2)所需的时钟平台表 {8..30}h;(3)仅在 2024-2026 上的 ETH 优势是否仍然存在,该区间是 ETH 留出窗口。开发者自己的建议(“放弃”,本地沙盒 Sharpe -0.15)针对的是盈利能力,应列于此处而非失败项。另请注意,capacity_usd=713.91 和 impact_cost_pct=1183 看起来像是针对 8 个高流动性主流币的运行器异常。未经引擎审查,不要将其视为策略容量限制。
回测评审
- 夏普
- -0.15
- 总收益率
- -14.50%
- 最大回撤
- 24.74%
- 总交易数
- 830
- 胜率
- 51.3%
- 盈利因子
- 0.91
机制按规格实现:固定的2.0/0.5 sigma阈值、固定的18小时周期(平均持仓17小时52分钟)、逐标的冷却、多空方向均衡(441笔多头 / 389笔空头)、每个事件的平均名义金额约为15%,约70%的时间为空仓。
样本充足:在 8 个标的上,历时 6.6 年共交易 830 笔,metrics_reliable=true。
按账本计算,三个标的的净优势为正:SOL(+$4.4k,PF 1.25)、LINK(+$3.7k,PF 1.29)和ETH(+$3.0k,PF 1.22)。
在样本量充足的情况下,面板净结果为负。夏普比率为-0.146(CI -0.89至+0.63),PF为0.908,总收益为-14.5%,每笔交易的期望收益为-$17.5。这是在L141下完成且已被证伪的测量结果,并非调参问题。
广度假设未能成立。增加标的稀释了优势,而非扩大优势:BTC 亏损 $10.9k(PF 0.63),DOGE 亏损 $13.0k(PF 0.54),两者合计抹去了 ETH、SOL 和 LINK 的全部收益。空头亏损 $22.4k,做多盈利 $7.9k。按年份:2020 +2.7k,2021 +0.9k,2022 -5.8k,2023 -6.8k,2024 -3.7k,2025 +0.4k,2026 -2.0k。七年中有四年亏损,且从 2022 年起每年均持平或亏损。
单笔交易经济性:账本的平均净pnl_pct为每笔-0.099%,而0.15% USD-M是费用底线。佣金为$11.9k,资金费成本为$2.9k,冲击成本为$5.7k。报告中的avg_trade_return_pct +0.089%与账本符号相反(L116)。该字段看起来是未扣成本的毛值,这证实了QA的说明。这是指标问题,不是策略问题。
QA 的 edge_concern 得到了验证。沙盒中接近零的净优势延续到了完整的 2020-2026 历史区间。低波动率三分位亏损 -25.7%(Sharpe -0.42)。
未核实的异常:若干成对的每日 MTM 波动约为 -8% 至 -10%,次日又变为 +9% 至 +11%(2025-04-14/15、2025-07-15/16、2025-10-15/16、2026-01-15/16、2026-04-17/18、2026-07-18/19);最后一根K线上还出现 -10.0%,且 end_unrealized_pct=0。已实现交易盈亏总和(-$14,503)与 total_return 相符,因此结论不取决于这些波动。仍应提交引擎审查(影响/MTM 折叠)。我尚未核实其机制。
分析
在所有测试设置下,单笔交易的经济优势都真实存在。基础运行:avg_trade 0.51%,基于 210 笔交易,对比 0.15% USD-M 下限(3.4x),PF 1.48。优化运行:avg_trade 1.25%(8x 下限),PF 2.44。
没有硬性门槛未通过。CPCV OOS Sharpe 为 0.62,PBO 0.17,不存在过拟合。留出集为正(Sharpe 1.44,consistent_with_oos,z +0.66)。
结果并非贝塔。贝塔为0.003-0.004,基准相关性为0.09-0.16,最大回撤为1.9-3.4%;作为对照,ETH买入并持有的回撤约为70-80%,区间为2020-2026(L170不适用)。
多空双方均有贡献:基准运行中有130笔多头交易和80笔空头交易,多空胜率均高于0.56。交易符合假设:溢价偏高且价格下跌时做多,镜像情形下做空。
利润并未集中在某一年:表现最好的一年(2021)占盈亏的 33.7%。压力情景下的 Sharpe 为正(1.17 已优化)。
显著性检验未通过。DSR 为 0.68(原始值 0.49),低于在 21 次有效试验下的预期最大 Sharpe 0.57。Sharpe CI [-0.02, 1.41] 的区间跨过零。PSR 为 0.68。该候选项未通过项目级 FDR(p = 0.32,阈值为 0.0015)。
样本量过小。优化配置(premium_entry_z 2.84)将交易笔数从 210 降至 62,低于日内 100 笔的下限;试运行后该下限变为 HARD。留出集恰好有 10 笔交易,仅达最低要求。未达到预注册的 min_trades 150。根据 L178,此样本无法测量。
7 个日历年中仅有 4 个为正(57%;试运行后门槛变为 HARD,而原门槛为 60%)。优化结果为 2022 -0.47%、2023 -0.22% 和 2026 -0.81%。
hold_hours 上存在敏感性断崖。基础设置(12h)的 Sharpe 为 0.22。在 9.6h、10.8h、13.2h 和 14.4h 时,Sharpe 分别为 -0.02、0.01、0.01 和 0.02。时钟移动一小时就会抹去优势,这是退出时点碰巧有利的特征。随后优化器改为 16.6h。
运行周期过短。敞口为 1.8%(基础值 4.3%),日历 Sharpe 优化后为 0.75,基础值为 0.42。这是 L165 的情形:单笔交易优势出色,但空仓比例很高的-98%组合无法达到 Sharpe 1.0。未达到 L134 的晋级门槛(Sharpe >= 1.0)。
未核实的症状:每日收益反复出现成对的 -X/+X 日,而组合处于空仓状态(例如 2025-10-15 -2.24 / 2025-10-16 +2.30,2026-01-15/16、2026-04-17/18)。今天其他运行中也出现了相同模式。这很可能是运行器的 MTM/标记异常,给 Sharpe 引入噪声。需要进行引擎审查。我尚未检查其机制。
持续测试后的HARD
未通过
恰好 10 笔交易
L134晋级门槛
研究负责人REVISED这一假设,因为先前的前提并不成立。请从头实现REVISED假设(见假设说明),不要复用先前策略。 修订理由:WHAT CHANGED:单币种ETH框架改为在币安USD-M 1H上的8个标的面板,并将SAME规则固定为研究前未经调参的数值(2.0 sigma 溢价、0.5 sigma 价格)。分析师的证据是:单笔交易存在优势,但单个标的一年只有约30次事件,无法通过DSR 0.68、100笔交易的验证期或正收益年份门槛。优化器的2.84 sigma和12小时周期处于悬崖边缘,因此我将其弃用:不重新调阈值,周期改为18小时,即12-24小时平台区间的中点,并且必须报告平台表现。WHY NOT A DUPLICATE OR BANNED FAMILY:这不是中性组合(L137)。每个仓位都是在自身溢价产生信号的标的上进行的单腿事件交易(不在A上产生信号、在B上交易,L143)。这不是横截面排名,标的数量上限为8(L173)。这也不是更长周期(L166):18小时位于测得的远期收益峰值区间内。策略声明约80%的空仓状态(L150)。补充键premium_index用于BINANCE USD-M,已在磁盘上针对全部8个标的验证(L160)。VENUE:BINANCE USD-M占比过高,但机制需要premium_index数据源(仅币安USD-M和HL),而HL约1H、约7个月的历史太短(L168)。设计需要做空,可填补代表性不足的多空类别。必须通过ex-2021和逐标的表格,直接检验仅ETH带来优势的风险(2021)。预测设定较为保守:OOS夏普比率0.9、平均单笔交易0.30%,低于研究前均值,以考虑BTC/BNB/DOGE造成的稀释。
对 345 个项目候选项按 q=0.10 进行 Benjamini-Hochberg 检验后,9 得以保留。未通过此检验的候选项,无法与项目自身的噪声区分,无论其单项统计结果看起来多好。
迭代历史
sandbox_timeout:验证失败(Layer 3 — 沙箱回测):烟雾测试在约20000根K线的窗口(BTCUSDT.BINANCE-1-HOUR-LAST-EXTERNAL的833天)内超过了300秒的运行时间限制。这通常意味着逐根K线的工作量随历史长度增长,例如反复扫描完整资金费/补充数据序列,或在每根K线上于calculate_signal()/on_bar()中重新构建列表并调用min()/sorted()。在__init__中预先计算已排序时间戳数组ONCE并使用bisect,或按时间戳缓存查找结果,使逐根K线的成本为O(log n)而非O(n)。
结局总结
在一个币种上发现的单笔交易优势未能延续至其他主流币,因此扩大标的范围无法挽救未通过去膨胀检验的单名信号。事后在赢家(ETH/SOL/LINK)上重新运行属于挑选有利结果。
回测审查给出“放弃”结论(no_edge,premise_falsified):增加标的稀释了优势,而非扩大优势。BTC(PF 0.63,-$10.9k)和 DOGE(PF 0.54,-$13.0k)的亏损超过 ETH、SOL 和 LINK 的合计盈利;空头亏损 $22.4k,且 2022-2024 和 2026 为负。
它将 ETH 价格与基差分歧规则改写为一个 8 标的 Binance USD-M 1H 事件面板(BTC、ETH、XRP、SOL、ADA、LINK、DOGE、BNB)。当某标的 24h 永续合约均值溢价达到一个方向上的至少 2 sigma,而其 24h 价格变动达到相反方向上的至少 0.5 sigma 时,按溢价方向交易,采用固定 18h 时钟、冻结阈值和 2.5x ATR 灾难止损。
在完整的 2020-2026 历史区间内,冻结面板共交易 830 次,Sharpe 为 -0.146(CI -0.89 至 +0.63),PF 0.908,总回报 -14.5%,最大回撤 24.7%。账本中的单笔净回报为 -0.099%,而报告的 avg_trade_return_pct 为 +0.089%。分析师此前审查的单名 ETH 显示每笔交易确有优势(平均交易 1.25%,PF 2.44,留出集 Sharpe 1.44),但结果仅基于 62 笔交易,属于 DSR 的 0.68,且未通过项目 FDR。
Stratmill 是研究与模拟交易工具,不提供财务建议,也不是经纪商。回测与模拟结果均为假设性结果。交易存在亏损风险。