跳至正文
全部策略

策略

Avellaneda-Lee 单对行业-ETF 残差 s-score 均值回归:XOM 对 XLE,贝塔对冲,规范固定阈值,约 55% 的时间持仓为空(USEQ DAILY,零佣金,多空)

结局: 已放弃

XomXleAvellanedaLeeSScorePair

结局总结

该策略尝试进行日频 XOM/XLE 统计套利,通过交易 ETF 因子残差的 s-score 极值,同时维持贝塔对冲。由于 Layer 3 沙盒冒烟测试在约 20,000 根 K 线上超过 300 秒限制,没有得到记录的回测结果。经过三次迭代后,验证超时导致运行结束,未进入后续阶段。

假设

源自 quant.stackexchange 讨论帖“统计套利与因子交易”(Michael,2017;采纳答案作者为 mperlow),该帖讨论了 Avellaneda & Lee(2010)的《US股票市场中的统计套利》。原文中唯一具体且可检验的机制是论文的 ETF 因子版本:在滚动的 60 个交易日窗口内,用股票所属行业 ETF 的收益率回归该股票的日收益率,将残差积分为辅助过程 X_t,对 X 拟合 AR(1)/Ornstein-Uhlenbeck 模型,并交易无量纲 s 分数 s = (X_t - m)/sigma_eq;持有 1$ 的股票,同时持有 -beta $ 的 ETF,使头寸因子中性(这正是采纳答案引自第 16 页的对冲方式)。根据 L173/L137,我们不进行 NOT 运行 20-500 名称的 PCA 组合(Bybit 的 PCA 残差前 -20 名组合运行超时;中性多名称组合会因交易腿成本而失效)。我们改为在免佣金的 USEQ 交易场所交易 ONE 股票与其自身因子的配对,第二条腿成本约为 0.02-0.05%,而非加密货币往返交易成本。标的选择遵循预先登记的规则,而非人工挑选列表:股票是行业 ETF 中权重最大的成分股(在自 1998 年以来几乎整个 ETF 历史期间,XOM 一直是 XLE 的头号持仓)。信号在 XOM 和 XLE 上衡量,并在 XOM 和 XLE 上交易(不在 A 上产生信号、却在 B 上交易)。DAILY 根柱线约涵盖 27 年历史。所有阈值均采用论文公布值,未经调参:当 |s| > 1.25 时入场;做多时 s > -0.50 平仓;做空时 s < +0.75 平仓;并使用论文的均值回归速度筛选条件(只有拟合的 OU 半衰期 < 约 30 个交易日,即 kappa > 252/30 时才交易)。这是对第一性原理的重新表述,未作修改,不是代码移植。

迭代 3 性能修复:从 calculate_signal 中移除了每根 K 线对主仓位和对冲仓位的持仓/订单协调查找。对冲管理仍与入场和信号退出挂钩,而滚动拟合每根 K 线仍限制在 60 个观测值内。这保留了此前通过的静态层和合成层,并移除了导致 Layer-3 超时的高开销缓存操作。

verification_loop:sandbox_timeout:验证失败(Layer 3——沙盒回测):冒烟测试在约 20000 根 K 线的窗口(2400 天,来自 XOM.USEQ-1-DAY-LAST-EXTERNAL)上超过了 300 秒的墙钟时间限制。这几乎总是意味着每根 K 线的工作量会随历史长度增长——例如,重新扫描完整的资金费率/补充序列,或在每根 K 线上于 calculate_signal()/on_bar() 内重建列表并调用 min()/sorted()。在 __init__ 中预先计算已排序的时间戳数组 ONCE 并使用 bisect,或按时间戳缓存查找结果,使每根 K 线的开销为 O(log n) 而非 O(n)。

实现

使用滚动 60 个交易日收益率回归、累积残差 OU 拟合、贝塔中性多空配对构建,以及规范的入场、退出和半衰期阈值,交易 XOM 与 XLE 之间的 Avellaneda-Lee 残差 s-score。

验证结果

sandbox_timeout:验证失败(Layer 3——沙盒回测):冒烟测试在约 20000 根 K 线的窗口(2400 天,来自 XOM.USEQ-1-DAY-LAST-EXTERNAL)上超过了 300 秒的墙钟时间限制。这几乎总是意味着每根 K 线的工作量会随历史长度增长——例如,重新扫描完整的资金费率/补充序列,或在每根 K 线上于 calculate_signal()/on_bar() 内重建列表并调用 min()/sorted()。在 __init__ 中预先计算已排序的时间戳数组 ONCE 并使用 bisect,或按时间戳缓存查找结果,使每根 K 线的开销为 O(log n) 而非 O(n)。

结局总结

每根 K 线的计算应避免重新扫描完整的补充序列或反复重建并排序数据;应预先计算或缓存查找结果。

验证因沙盒超时而失败后,该策略在三次迭代后被放弃。未进入后续流水线阶段。

该策略尝试使用 Avellaneda-Lee ETF 因子 s-score 阈值,在日频 USEQ 数据上交易 XOM 与 XLE 之间均值回归且经贝塔对冲的残差。

由于验证在沙盒回测期间停止,没有记录回测指标。冒烟测试在约 20,000 根 K 线上超过了 300 秒限制。

分析

量化回测:统计套利与因子交易对比 | Stratmill

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