← 返回 Quant Digests · 站点首页

别把这份 2026 新 repo 只读成“daily pairs 修 bug”:对 short-cycle desk,更该先测的是「ADF+Johansen 双检验 × rolling beta spread z-score fade」这条 pairs raw alpha

更新时间:2026-04-01 21:12 UTC 研究时间:2026-04-01 21:05 UTC 类型:2026 GitHub repo source audit(`README.md` + `stat_arbitrage_improved.py` + GitHub API metadata) 主题标签:raw-alpha/pairs/stat-arb/relative-value/mean-reversion/cointegration/adf/johansen/dual-test/rolling-beta/spread-zscore/walk-forward/binance/bybit/okx/1h/15m/5m/3m/1m/repo/public-data/cost 证据类型:repo-based source audit + 方法锚点

源文件:research/quant_digests/2026-04-01_2105_dualtest-coint-zscore-pairs-alpha.md

1. 这次看了什么

这次主看的是 julia136 (2026) 的 GitHub 仓库 Statistical-Arbitrage-in-Crypto-Currencies。repo 表面上是一个 daily crypto pairs 回测修正版,但真正值得 desk intake 的,不是“日频配对作业”本身,而是它把一条可独立拆走的 raw alpha 骨架写得相当清楚:

repo 最有价值的地方不是“spread 会回归”这句老话,而是它明确想解决 false-positive cointegration:pair 不是只看 ADF,而是先过 Engle-Granger ADF,再过 Johansen trace,尽量把“看起来像配对、其实只是同涨同跌”的假关系先挡在交易前面。

2. 核心结论

  1. walk-forward 重选 pair,而不是一劳永逸固定组合;
  2. rolling hedge ratio,而不是永远拿静态 beta;
  3. 把 stop-loss 和 turnover cost 写进策略壳,而不是只看毛收益。
  1. 代码里如果双检验后一个 pair 都没留下,会 静默回退到 ADF-only;这对 desk 来说不能当成默认安全行为。
  2. repo 注释声称已经修好 spread direction consistency,但 adf_for_pair() 里的残差定义与 gen_signals() 里的 spread 公式仍存在 口径不一致风险;这一层不能盲抄,必须自己重写并 unit-test。

一句话说:这轮真正值得进入素材池的,不是“又一个 pairs repo”,而是“用双检验减少假 pair,再把 spread MR 留给短周期执行层”这条更稳的 raw alpha 读法。

3. 为什么和当前项目有关

最近 intake 已经有不少 pairs / stat-arb / relative-value 主题,但更偏向:

这轮补的是另一个同样关键、但更基础的缺口:pair 是怎么被批准进入交易池的。

它和当前学习进展的关系很直接:

翻成人话:不是再找一条新花样,而是把“哪些 pair 根本不该交易”先讲清楚。

3.5 策略拆解(必填)

4. 可复刻的最小实验

  1. rolling 45 ~ 901h 窗口;
  2. 只保留 ADF p-value < 0.05 且 Johansen trace > 5% critical value 的 pair;
  3. 不允许 silent fallback 到 ADF-only
  4. 先按行业/叙事 bucket(L1、L2、DeFi、meme)分层做,别第一刀就全市场乱扫。
  1. 15m 上用 rolling 96 / 144 / 192 bar 估 beta;
  2. 统一自己重写 spread 定义,确保回归方向与残差方向一致;
  3. |z| >= 2.0 / 2.5 入场,|z| <= 0.5 出场,|z| >= 3.0 / 3.5 止损。
  1. ADF-only vs ADF+Johansen OOS 对照;
  2. 正收益 pair 占比;
  3. turnover、平均持有时长、止损触发率;
  4. 15m 触发后换到 5m 执行,净收益是否还能保住。

5. 先测什么,不先测什么

先测 “双检验 shortlist 是否比 ADF-only 更稳”,而不是先卷最优 z-score 阈值。因为如果 pair admission 本身是脏的,后面所有 entry / exit 调参都只是在脏地基上抹墙。

也不要一上来照抄 repo 的 daily 节奏:

更合理的第一刀是:慢一点选 pair,快一点执行 trade。

6. 风险与误区

7. 来源与复现线索

主来源(repo)

方法锚点(经典地基,非本轮主来源)

8. 一句话带走

如果把这份材料变成 desk 可测策略,我会把它定义成:“用 ADF+Johansen 双检验先守住 pair admission,再把 spread z-score fade 下放到 15m/5m 执行层”的 pairs raw alpha 壳,而不是一份可以直接照抄的 daily 回测作业。