← 返回 Quant Digests · 站点首页

别把这份 2026 crypto stat-arb repo 只读成“又一个 cointegration pair 模板”:对 short-cycle crypto desk,更该先保留的是「同簇 cointegrated spread fade × Hurst regime gate × hub concentration cap」这条完整 raw alpha 壳

更新时间:2026-04-23 03:48 UTC 研究时间:2026-04-23 03:47 UTC 类型:GitHub repo audit / 最小 portability probe 主题标签:pairs / stat-arb / relative-value / mean-reversion / cointegration / Hurst / Kalman / clustering / concentration-cap / Binance / 15m / 5m / repo / public-data / cost / risk 证据类型:repo 规则拆解 + Binance USDⓈ-M public-data portability probe

源文件:research/quant_digests/2026-04-23_0347_hurstgate-clustered-pairs-shell.md

1. 这次看了什么

这次看的不是论文,而是 2026 GitHub 仓库 Jing-Lavinia / Pairs-Trading。它的价值不在“又做了一次 pair spread fade”,而在于把一条 可实盘化的 pairs/stat-arb 策略壳 写得很完整:

如果只盯着 repo headline 的 1H 回测收益,会错过它对我们更值钱的那部分:它把“pair fade 怎么变成一个完整策略壳”说清楚了

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

一句话:base alpha 就是 cointegrated spread 的均值回复

也就是:

所以这篇东西不是纯 filter,不是纯 overlay。它本体就是 raw alpha;Hurst / clustering / concentration cap 只是让这条 raw alpha 更像可交易策略,而不是课堂练习。

3. 核心结论

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

当前 desk 已经积累了不少单资产 trend / reversal / carry 方向的素材,但 pairs / stat-arb 这条线更容易遇到两个实盘问题:

  1. pair 太多,容易 over-search;
  2. 单个强节点(例如 ETH / BNB 一类)会在组合里被过度复用,最后看起来是多对分散,实际上是同一个风险因子被放大。

这份 repo 恰好把这两个问题都正面写进去了:

对 short-cycle desk 来说,这比“又一个 z-score=2 开仓、0 平仓”的 pair 教程更有用,因为它更接近 真实组合部署

5. repo 里最值得搬的,不是 headline,而是这 5 个部件

5.1 同簇预筛:别让 pair search 失控

repo 先对 1H log returns 做:

然后只在同一个 cluster label 里做后续 pair 检验。这个动作不是 alpha 本体,但很实用:

对我们来说,可以把它翻成更轻量的 short-cycle 版本:

5.2 cointegration + half-life:先确保这不是随机价差

repo 的第二层 admission 是:

这背后的想法很朴素:

这个约束对 15m/5m 特别重要,因为短周期最怕的不是“没信号”,而是看起来像 alpha,实际上只是高噪音 + 高周转

5.3 Kalman hedge ratio:别把配比当常数

repo 用 Kalman filter 跟踪动态 gamma_t,而不是把 hedge ratio 固定死。这个点我们其实已经在别的 digest 里见过,但这份 repo 把它自然嵌进了完整 shell:

这对 crypto 尤其合理,因为相关币之间的 beta 漂移比股票 pair 更快。

5.4 Hurst gate:它不是 alpha,本质是“别在趋势态里做 fade”

repo 用 rolling Hurst exponent,当 H < 0.60 才允许开新仓。

这层东西不该伪装成主 alpha,本质上它是:

从我这次最小 probe 来看,这层 gate 的效果是:

5.5 hub cap:这是最像实盘组件、也最容易被忽略的一层

repo 明确写了:任何单币最多参与 3 对 active pairs

这看起来像小细节,实际上非常 desk-friendly:

这层在我们后续真做 multi-pair deployment 时,重要性可能不低于 entry threshold 本身。

6. 我自己的最小 portability probe 做了什么

为了不只停留在 repo README,我做了一个简化 probe:

这里我没有完全复刻 repo 的 PCA+DBSCAN、Kalman 动态 beta、full walk-forward weekly refresh;所以它是 portability probe,不是 repo 的一比一 reproduction。但已经足够回答一个关键问题:

> 这条 raw alpha 迁到 15m/5m 后,是完全死掉,还是还有可筛选的正 pocket?

结论是:还有 pocket,但不能无脑全做。

7. 研究结论该怎么落地成 desk 版本

如果把这份东西翻成我们更可执行的 desk 版本,我会这样拆:

7.1 alpha 本体

7.2 admission / regime

7.3 sizing / risk / execution

8. 风险与保留意见

9. 来源

主要来源

本地最小实验

10. 下一步怎么测

下一步别再泛泛测“全市场 pairs 有没有 edge”,而是直接做这 5 个最小实验:

  1. cluster-first pair ranking:先固定 liquid universe,在 15m 上比较“全 pair 搜索” vs “同簇 pair 搜索”的净收益、成交数、pair 稳定度。
  2. gate ablation:对每个候选 pair 分别比较 no gate / Hurst gate / volatility gate / Hurst+vol,看谁真能改善净 bps/笔,而不是只减少交易。
  3. hub-cap 组合实验:把 max active pairs per ticker 设为 1 / 2 / 3,测组合层面的 drawdown 与 cluster concentration。
  4. execution realism:把 15m 正 pocket(优先 LINK/AVAXBNB/AVAXSOL/AVAX)拉进 maker/taker 双版本,先回答“edge 是策略本身,还是 taker 成本假设太重”。
  5. 下沉频段前先做 pocket-only:如果要测 5m -> 3m,不要全 universe 下沉,先只拿近窗稳定的 2~4 对做 OOS 滚动,看正 pocket 能不能保留,而不是让噪音把整个结论冲掉。