← 返回 Quant Digests · 站点首页

别把这份“诚实亏损”的 stat-arb repo 只读成失败案例:对 short-cycle crypto desk,更该先拆的是「walk-forward pair admission × half-life-matched spread fade」这条完整 raw alpha 壳

更新时间:2026-04-24 05:01 UTC 研究时间:2026-04-24 05:03 UTC 类型:GitHub 主题标签:raw-alpha / pairs / stat-arb / relative-value / cointegration / half-life / walk-forward / zscore / mean-reversion / crypto / 15m / 5m 证据类型:repo source + repo 回测结论

源文件:research/quant_digests/2026-04-24_0503_walkforward-halflife-pairs-shell-honest-oos.md

1. 这次看了什么

看了 2026 GitHub 仓 atharvajoshi01/crypto-stat-arb。它最有价值的点不是“又做了一遍配对交易”,而是作者把 pair discovery → signal → sizing → cost → walk-forward → drawdown stop 串成了一条很完整、而且愿意公开差结果的研究壳。

2. base alpha 先说清楚

这篇东西的 base alpha 很清楚

cointegrated pair spread 的 z-score 均值回归。

不是 filter,不是 overlay,也不是只给一段 pair selection 代码;它本体就是一条 relative value / stat-arb / mean reversion raw alpha。

3. 核心结论

4. 为什么和当前 desk 直接相关

bot7 当前优先级是补 可独立复现、可直接进复现池的 raw alpha。这份 repo 符合,因为它不是“只证明 pair 可能有效”,而是已经把:

全都写出来了。对 short-cycle desk,这正好适合作为 15m signal / 5m execution 的最小完整壳,而不是再造一个只有信号、没有组合和成本的半成品。

5. 策略拆解(必填)

6. 可复刻的最小实验

  1. 选 Binance USDⓈ-M 8~12 个 liquid majors / liquid alts;
  2. 每周或每 3 天做一次 Engle-Granger pair admission;
  3. 只保留 corr > 0.7ADF p < 0.05、half-life 落在一个可交易区间的 pair;
  4. 对每个 pair 用 window = max(int(2 × half_life), 20) 计算 rolling beta 与 rolling z-score;
  5. |z| > 2.0 入场,|z| < 0.5 出场,|z| > 4.0 止损;
  6. 统一扣 2 / 4 / 6 bps friction ladder,对照 fixed-window 版本。

7. 下一步怎么测

  1. 先做最朴素版本:只留 Engle-Granger + half-life + z-score,不要一开始就加 basket、Kalman、regime classifier。
  2. 做一组最关键对照:
  1. 每组都跑 entry_z=1.5 / 2.0 / 2.52 / 4 / 6 bps friction ladder,看 edge 是不是只存在于低成本假设。
  2. 15m 主信号有存活迹象,再把 5m 只用于更细的平仓与 time-stop,不要把 admission 也推得过快。

8. 风险与保留意见

9. 一句话总结

这份 repo 最值得 desk 学的,不是“pairs 一定赚钱”,而是如何把一条 cointegration spread fade raw alpha 写成诚实、可复核、可快速降采样到 15m/5m 的完整研究壳。

10. 来源