← 返回 Quant Digests · 站点首页

别把这份 2026 walk-forward crypto stat-arb repo 只读成日频 Kraken 回测:对 short-cycle desk,更该先测的是「short-half-life liquid-alt pair admission × 15m spread z-score fade」这条 raw alpha

更新时间:2026-04-13 16:57 UTC 研究时间:2026-04-13 16:59 UTC 类型:2026 GitHub repo source audit(`README.md` + `cryptoarb/pairs.py` + `cryptoarb/signals.py` + `cryptoarb/config.py`)+ Binance USDⓈ-M `15m` public-data portability probe 主题标签:raw-alpha/pairs/stat-arb/relative-value/mean-reversion/walk-forward/engle-granger/half-life/rolling-ols/zscore/liquid-alt/binance-perpetual/15m/5m/repo/public-data/cost/risk 证据类型:源码规则 + 公共数据 first verdict

源文件:research/quant_digests/2026-04-13_1659_shorthalflife-walkforward-pairs-alpha.md

1. 先把一句话说清楚:这篇东西的 base alpha 是什么?

> base alpha = short-half-life cointegrated spread mean reversion。

这份 repo 表面上像一个“带 walk-forward 回测、但近年 OOS 结果并不好看”的日频 stat-arb 工程;真正对我们 desk 有价值的,不是它在 Kraken 1d 上那条负收益净值,而是它把一条 pairs raw alpha 完整壳 拆得足够清楚:

  1. 先做相关性 + Engle-Granger + half-life 的 pair admission;
  2. 再用 rolling OLS 估 hedge ratio,构造动态 spread;
  3. 最后在 |z| 足够大时做 fade,在 |z| 收回时退出,并给 stop / cost / vol-scaling 留了明确接口。

翻成人话:

所以这不是 filter / overlay,它本体就是一条 可独立交易的 relative-value raw alpha

2. 这次看了什么

主来源(repo)

方法地基(paper)

本轮自建 probe

3. 一句话核心结论 + 一句话证明方式

一句话核心结论

> 这份 repo 最值得 desk 接的,不是它 README 里那条日频负收益曲线,而是“short-half-life pair admission × 15m spread fade”这条完整 raw alpha 壳;它在宽 liquid-alt 宇宙里能筛出一小撮可交易 pocket,但只有低摩擦版本能过线。

一句话证明方式

> 证明不是靠 README 自夸,而是靠源码拆解 + Binance USDⓈ-M 15m 公共数据快检:20 个 liquid alt / major perp 里,190 个组合最终只有 8 对通过“短半衰期协整”准入;再加成本后,4 bps 仍有 4 对为正,8 bps 只剩 3 对勉强为正,12 bps 全灭。

4. 为什么这轮值得写

虽然 index 里已经有很多 pairs / stat-arb digest,但这轮仍然有补充价值,原因在于它补的不是“又一篇 z-score 教程”,而是三件更贴近当前 desk 的东西:

  1. 它是一个很新的完整工程壳。
  1. 它的 README 很诚实。
  1. 它天然适合做短周期 first verdict。

5. repo 真正提供了什么

5.1 Pair admission

pairs.py 这条链很清楚:

对 short-cycle desk 来说,最该抄的不是默认“天”这个单位,而是:

> 先做准入,再做交易。

也就是不要一上来对任意两条腿跑 z-score,而要先问:

5.2 Signal 壳

signals.py 给的是很干净的最小规则:

默认参数:

这个设计对我们尤其重要,因为它不是“拍脑袋固定 60 bars z-score”,而是把窗口长度和 pair 自己的回归速度 绑在一起。

5.3 完整策略外壳

config.py 还给了:

所以它不是只有 alpha 点子,而是一个 可直接落地的 complete shell

6. public-data portability probe:落到今天 Binance 15m 后还剩什么?

6.1 本轮最小实验口径

我没有照搬 repo 的日频 Kraken 口径,而是改成更适合 short-cycle desk 的版本:

6.2 先记最重要的 4 个数

#### 数 1:190 个组合里,只有 8 对通过短周期准入 这说明 repo 这套东西如果直译到 15m不是“全市场到处都有 alpha”,而是明显要靠 admission 层硬筛。

#### 数 2:最强 pocket 是 LINKUSDT / AVAXUSDT

这组是真正像 desk 可以先盯的 pocket:

#### 数 3:DOGEUSDT / SUIUSDTDOGEUSDT / LTCUSDT 也勉强存活

说明:

#### 数 4:12 bps round-trip 下全部转负 这件事比任何单个好看的 Sharpe 都更重要:

> 这条线不是“随便 taker 一把都能吃到”的 broad alpha,而是“低摩擦 selective pairs pocket”。

7. 这条线和已有 pairs digest 的差别在哪

这轮和 index 里已有的 pairs 主题相比,新增价值主要在三点:

  1. 不是老论文或脚本,而是一个今天刚更新的完整 walk-forward 工程。
  2. 不是先讲最漂亮 pair,而是先接受 README 里的负 OOS,再反推哪些短周期 pocket 值得保留。
  3. 不是只讲“有无协整”,而是把“half-life 压到 bar 级别”当 admission 主条件。

所以更准确的读法是:

> 这不是 another generic pairs note,而是一条“day-level stat-arb 工程 → short-cycle pocket 提炼”的迁移笔记。

8. 策略拆解(entry / exit / sizing / risk / cost)

8.1 Entry

8.2 Exit

8.3 Sizing

8.4 Risk

8.5 Cost

9. 我对这条线当前的判断

当前判定

该怎么放进素材池

优先级我会放在:

10. 下一步怎么测(必须项)

不要先做更复杂的 ML。先把下面这个最小实验做干净:

10.1 最小实验

研究假设

具体动作

  1. Universe 扩到 top 30~40 liquid perp
  2. 4h 或每天重跑一次 admission
  3. 先固定使用:
  1. 对 surviving pairs:
  1. 成本固定先跑:4 / 8 / 12 bps

10.2 最该先看的 3 个指标

  1. 8 bps 后仍为正的 surviving pair ratio
  2. post-cost mean trade pnl
  3. rolling positive-window ratio(不是只看全样本)

10.3 如果要继续往 1m / 3m

我的建议不是把 admission 也压到 1m / 3m,而是:

原因很简单:

11. 一句话结论

> 把这份 2026 repo 读成 short-cycle desk 语言后,最值得保留的不是“日频 market-neutral 组合”这个大叙事,而是“short-half-life liquid-alt pair admission × 15m spread fade”这条 selective raw alpha 壳;它有 pocket,但 edge 很薄,必须先过低摩擦筛选。