← 返回 Quant Digests · 站点首页

别把这份 2026 GitHub stat-arb repo 只读成日频组合实验:对 short-cycle desk,更该先测的是「rolling Johansen basket admission × strongest-basket OU fade」这条 raw alpha

更新时间:2026-04-11 00:20 UTC 研究时间:2026-04-11 00:18 UTC 类型:仓库 主题标签:raw-alpha / stat-arb / pairs-plus / basket / johansen / cointegration / ou / mean-reversion / regime-filter / risk-parity / strongest-basket / market-neutral / binance / perpetual / 15m / 5m / repo / public-data / cost / risk 证据类型:2026 GitHub repo source audit(`README.md` + `labs/research.ipynb` embedded outputs)+ Binance USDⓈ-M 公共 `15m/5m` portability probe

源文件:research/quant_digests/2026-04-11_0018_johansen-basket-ou-statarb-alpha.md

1. 这次看了什么

这次选的是 Sujith Kamme (2026), _Crypto Statistical Arbitrage via Cointegration and Regime Filtering_ 这个 GitHub repo,核心审计对象是:

我这次不是把它当“又一个协整 repo”略过,而是先问一句: 它的 base alpha 到底是什么?

答案是清楚的: base alpha 就是“协整 crypto basket spread 的均值回归 / OU fade”。

所以它不是纯 filter,不是纯 risk overlay,也不是“先有别的主信号,它来帮你 veto”。 它本身就是一条可独立落地的 market-neutral / relative-value / stat-arb raw alpha

而且它和当前 digest 池里常见的 BTC/ETH 单 pair 或 copula pair 也不完全一样:

换句话说,它更像一套完整的 basket stat-arb 壳子,而不是一条 pair 小技巧。

2. 先回答:这篇东西的 base alpha 是什么?

一句话: base alpha = 多资产协整篮子的 spread 在短期偏离后,按 OU 速度向均衡回归。

翻成人话:

所以它的归类是:

3. repo 里真正值钱的,不是“协整”两个字,而是这 4 层策略壳

3.1 第一层:basket discovery 不是固定 pair,而是 2–4 资产组合

repo README 直接写了:

这比很多“固定 pair + zscore”仓库更接近 live research:

3.2 第二层:admission 不是“相关高就上”,而是四重筛选

从 notebook 输出能看到,repo 不是只跑 Johansen 就交易,而是一路筛:

例如 notebook 最后汇总阶段显示:

这点很重要,因为它明确告诉我们: 真正的 alpha 不在“找到很多 basket”,而在“肯留下来的 basket 非常少”。

3.3 第三层:信号不是裸 z-score,而是 OU alpha

notebook 里 compute_ou_alpha_point() 的逻辑非常清楚:

对应参数我审到的关键值包括:

翻成人话就是: 它不只问“偏了多少”,还问“这东西平时回得快不快、现在这次偏离够不够值得做”。

3.4 第四层:执行层不是连续抖仓,而是 sticky buckets

repo 最让我愿意继续往下拆的,是 compute_bucketed_positions() 这层:

notebook OOS 里最终用的是:

这件事对 short-cycle 非常关键: 如果你把 OU alpha 直接连续映射成仓位,很多理论 edge 会死在换手里;sticky bucket 是这里真正有工程含量的一刀。

4. repo 原始结果里,最值得记住的数据点

4.1 walk-forward 主结果:先证明它不是玩具

notebook 输出的 walk-forward 总结:

这说明 repo 至少给的是一条完整且能滚动训练/测试的策略骨架,不是静态样本内演示。

4.2 最终精选 4 篮子后的 OOS 结果更像“可部署壳”

notebook 最后对精选 basket 做 bucketed + risk-parity OOS,结果是:

这组数字的意义,不是说我们可以直接照抄到 intraday perp; 而是说它已经把:

这些完整链条都写出来了。

5. 对当前 desk 最有价值的,不是原样搬 daily,而是拆成更适合 15m/5m 的旁支

如果你把这个 repo 生搬硬套成“多 basket 同时跑 + 风险平价 + 较慢 hold”,很可能会太钝。

但它里面有一个非常适合当前 desk 的旁支: rolling Johansen basket admission × strongest-basket OU fade

也就是:

  1. rolling formation window 找 basket;
  2. 保留通过 Johansen + ADF + VR + half-life 的候选;
  3. 不急着同时部署很多篮子;
  4. 每个短交易窗只先上最强那一个
  5. 用 OU alpha 做 bucketed fade;
  6. regime 坏掉就 flat。

这条旁支仍然服务同一个 raw alpha: basket spread mean reversion / stat-arb

6. 我做的 portability probe:把它压到 Binance USDⓈ-M 15m/5m

6.1 probe 口径

我做的不是 full faithful replication,而是一个 desk-friendly 最小实验:

此外我专门比较了:

因为我怀疑: short-cycle 上,“先求准、后求多”比“先分散”更重要。

6.2 结果:15m 有像样 pocket,5m 还不行

本地 probe 产物:

#### 15m strongest-basket only(top-1)

几个重复出现的 basket:

#### 同一口径下,越想“组合化”,越容易把 edge 稀释掉

这点我觉得非常关键: repo 日频上“精选 4 篮子 + risk parity”是成立的,但压到 intraday 后,第一反应不该是“复制更多篮子”,而该是“先抓最强那个 basket”。

#### 5m strongest-basket only

翻成人话: 这个思路在当前简化版上,15m 还能看,5m 已经明显更像被噪音和换手打坏。

7. 这次 probe 最重要的判断,不是“repo 能不能搬”,而是“哪一支能搬”

我这轮结论不是“整个 repo 可以原样压缩到 5m/15m”。

更准确地说:

7.1 可以保留的,是 raw alpha 主体

也就是: Johansen basket admission + OU spread fade

这条本体在 short-cycle 仍然说得通,因为:

7.2 需要降并发的,是组合层

repo 日频版本靠多篮子 + risk parity; 但我的 15m probe 显示:

所以 intraday 第一版更像: single-best-basket book,而不是 portfolio-of-baskets。

7.3 暂时不该硬上的,是 5m alpha 主体

从这个 probe 看:

8. 为什么它和当前项目不撞题,但又刚好能补仓

已有 digest 里,pairs / stat-arb 很多是:

这份 repo 的新增价值在于:

8.1 它把 pair 提升成了 basket

pair 容易被单一共同因子污染; 3-leg basket 往往更接近“真正的相对价值残差”。

8.2 它把 admission 写得比“协整就做”更完整

Johansen 只是第一关,后面还有:

这更适合作为 research funnel,而不是一次性固定参数。

8.3 它天然允许以后接别的 overlay

这个壳子以后很好接:

所以它不只是一个“新 pair 变种”,而是一个可继续生长的 raw alpha 容器

9. 策略拆解(必填)

10. 风险与保留意见

11. 下一步怎么测

11.1 先做 faithful intraday transfer

把 repo 的核心结构更完整地搬到 perp:

11.2 把 15m 定成 first lane,5m 只做 execution layer

优先测试:

11.3 把“是否组合化”当成单独实验,而不是默认设定

这轮已经给了一个很明确的工程信号: intraday 上,多 basket 并发不是默认更好。

所以单独做:

比较:

11.4 最该先补的 live 风控

  1. 单 basket 最大持有时长
  2. 事件窗 blacklist
  3. funding/basis 异常 veto
  4. 单资产重复暴露上限
  5. 执行时的 maker-first / adverse-selection 过滤

12. 来源

13. 一句话带走

这份 repo 最值得 desk 先复现的,不是“多篮子日频 risk parity”整套外壳,而是里头那条更适合 intraday 的 raw alpha 主体:rolling Johansen basket admission × strongest-basket OU fade;从当前快检看,它更像 15m 的第一车道,而不是 5m 的主信号。