策略
个股相对自身行业的 ETF 残差冲击反转:对 20 个 US 大盘股在 5 个交易时段内出现的幅度大于等于 2.5 倍标准差的特异性异动进行反向交易,并以各自所属的 SPDR 行业 ETF 进行贝塔对冲,固定持有 10 个时段(USEQ 1-DAY)
结局: 已放弃
StockSectorEtfResidualShockReversal
结局总结
该假设提出了一种行业相对残差反转策略,以 20 个 US 大盘股和四只 SPDR 行业 ETF 为标的进行贝塔对冲;其前期研究报告称,每个事件的优势虽小但为正。开发者构建了 O(1) 滚动统计实现,并经过 3 次迭代修改。第 3 次迭代旨在将配置设为计划指定的固定杠杆 2.0,但验证仍未通过 Layer 1.5 假设/配置一致性检查中的杠杆要求。运行以验证循环告终并被放弃,因此未进入回测、优化、分析师审核或风险评估阶段。
假设
verification_loop:验证失败(Layer 1.5 — 假设/配置一致性)[类别=hypothesis_mismatch]: - optimization_plan 将杠杆固定为 2.0
实现
在 20 个 US 大盘股中,做空个股相对行业的显著残差冲击;使用按贝塔加权的行业 ETF 对冲,同时最多持有八个事件,基准持有 10 个交易时段,并设置残差风险止损。
针对报告中的 Layer 1.5 失败,将 config.leverage 设为研究计划指定的固定值 2.0。现有的相对权益配对仓位已乘以 self.config.leverage,因此此修正提供了预期敞口。保留可执行策略逻辑;仅在源文档字符串中记录此修正。仍配置了指定的全部 24 个标的,包括假设描述明确要求、但在 market_context.instruments 中遗漏的四个 XLP 成分标的。未运行验证。由于本次会话的文件系统权限为只读,无法写入请求的 outbox 文件;完整的任务相关 JSON 已直接返回。
验证结果
验证失败(Layer 1.5 — 假设/配置一致性)[类别=hypothesis_mismatch]: - optimization_plan 将杠杆固定为 2.0
迭代历史
sandbox_timeout:验证失败(Layer 3 — 沙盒回测):在约 20000 根线的窗口内,冒烟测试超过 300 秒墙钟时间限制(2400 天、每XLF.USEQ-1-DAY-LAST-EXTERNAL根柱)。这几乎总是意味着每根线的工作量会随历史长度增长,例如每根线都重新扫描完整的资金费率序列或补充序列,或在 calculate_signal()/on_bar() 内重建列表并调用 min()/sorted()。在 __init__ 中预先计算排序后的时间戳数组 ONCE,并使用 bisect,或按时间戳缓存查询结果,使每根线的开销为 O(log n) 而非 O(n)。
结局总结
重新提交前,请确认策略输出配置(尤其是杠杆)与假设中的 optimization_plan 完全一致,因为重复出现的 Layer 1.5 不匹配会在产生任何回测证据前终止运行。
经过 3 次迭代后,运行在 Layer 1.5(假设/配置一致性,类别 hypothesis_mismatch)的验证循环中被放弃,报错信息为“optimization_plan 将杠杆固定为 2.0”。策略从未进入回测、分析师审核或风险评估阶段。
对 20 个 US 大盘股在 5 个交易时段内出现的幅度大于等于 2.5 倍标准差的特异性残差异动进行反向交易,以其自身 SPDR 行业 ETF(XLE、XLF、XLU、XLP)进行贝塔对冲,在 USEQ 日线上固定持有 10 个交易时段,以获取短期残差反转的流动性溢价。
没有流水线回测或优化结果(回测报告为空,也没有优化报告)。唯一的数据来自假设自身的前期研究,并非流水线回测:从 2008 到 2026 共 911 个事件,每个事件平均 +0.33%,命中率 54.3%,t 值约为 2.75。
Stratmill 是研究与模拟交易工具,不提供财务建议,也不是经纪商。回测与模拟结果均为假设性结果。交易存在亏损风险。