源文件:research/quant_digests/2026-04-13_1659_shorthalflife-walkforward-pairs-alpha.md
README.md + cryptoarb/pairs.py + cryptoarb/signals.py + cryptoarb/config.py)+ Binance USDⓈ-M 15m public-data portability probez-score 回归交易;本体不是单币方向,而是两条腿相对错位后的收敛。> base alpha = short-half-life cointegrated spread mean reversion。
这份 repo 表面上像一个“带 walk-forward 回测、但近年 OOS 结果并不好看”的日频 stat-arb 工程;真正对我们 desk 有价值的,不是它在 Kraken 1d 上那条负收益净值,而是它把一条 pairs raw alpha 完整壳 拆得足够清楚:
|z| 足够大时做 fade,在 |z| 收回时退出,并给 stop / cost / vol-scaling 留了明确接口。翻成人话:
DOGE 或 AVAX 单边涨跌;所以这不是 filter / overlay,它本体就是一条 可独立交易的 relative-value raw alpha。
atharvajoshi01)2026-04-13 创建;2026-04-13T16:54:13Z pushedreports/artifacts/quant_digests/2026-04-13_crypto-stat-arb-15m-transfer/pair_scan_wide_30d.csvreports/artifacts/quant_digests/2026-04-13_crypto-stat-arb-15m-transfer/candidate_pairs.csvreports/artifacts/quant_digests/2026-04-13_crypto-stat-arb-15m-transfer/signal_probe_summary.csvreports/artifacts/quant_digests/2026-04-13_crypto-stat-arb-15m-transfer/cost_ladder_summary.csv> 这份 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 全灭。
虽然 index 里已经有很多 pairs / stat-arb digest,但这轮仍然有补充价值,原因在于它补的不是“又一篇 z-score 教程”,而是三件更贴近当前 desk 的东西:
pair discovery → signals → portfolio → risk → costs → walk-forward 都写成模块。2021-2026、OOS 2025-02 到 2026-01;Annual Return -18.8%、Sharpe -2.56,不是只贴最漂亮区间。15m 最小实验。pairs.py 这条链很清楚:
min_correlation = 0.70)3 ~ 30,repo 原语义是天)对 short-cycle desk 来说,最该抄的不是默认“天”这个单位,而是:
> 先做准入,再做交易。
也就是不要一上来对任意两条腿跑 z-score,而要先问:
signals.py 给的是很干净的最小规则:
z > +entry_z → short spreadz < -entry_z → long spread|z| < exit_z → flat|z| > stop_z → stopwindow_multiplier × half_life默认参数:
entry_z = 2.0exit_z = 0.5stop_z = 4.0window_multiplier = 2.0这个设计对我们尤其重要,因为它不是“拍脑袋固定 60 bars z-score”,而是把窗口长度和 pair 自己的回归速度 绑在一起。
config.py 还给了:
所以它不是只有 alpha 点子,而是一个 可直接落地的 complete shell。
15m 后还剩什么?我没有照搬 repo 的日频 Kraken 口径,而是改成更适合 short-cycle desk 的版本:
15m30dETH/SOL/XRP/DOGE/ADA/LINK/AVAX/BNB/SUI/LTC/BCH/DOT/TRX/1000PEPE/WIF/AAVE/ETC/APT/NEAR/ATOM)> 0.85p < 0.054 ~ 64entry = |z| > 2exit = |z| < 0.5stop = |z| > 42 × half_life4 / 8 / 12 bps round-trip 成本阶梯#### 数 1:190 个组合里,只有 8 对通过短周期准入 这说明 repo 这套东西如果直译到 15m,不是“全市场到处都有 alpha”,而是明显要靠 admission 层硬筛。
#### 数 2:最强 pocket 是 LINKUSDT / AVAXUSDT
0.9661p = 0.0005651.1 bars(约 12.8h)30d 内入场次数:43avg bps/bar = +0.1534 bps 成本后:+0.092 bps/bar,累计约 +2.56%8 bps 成本后:仍有 +0.031 bps/bar这组是真正像 desk 可以先盯的 pocket:
#### 数 3:DOGEUSDT / SUIUSDT 与 DOGEUSDT / LTCUSDT 也勉强存活
DOGE/SUI:4 bps 后 +0.069 bps/bar,8 bps 后 +0.013 bps/barDOGE/LTC:4 bps 后 +0.066 bps/bar,8 bps 后 +0.013 bps/bar说明:
#### 数 4:12 bps round-trip 下全部转负 这件事比任何单个好看的 Sharpe 都更重要:
> 这条线不是“随便 taker 一把都能吃到”的 broad alpha,而是“低摩擦 selective pairs pocket”。
这轮和 index 里已有的 pairs 主题相比,新增价值主要在三点:
所以更准确的读法是:
> 这不是 another generic pairs note,而是一条“day-level stat-arb 工程 → short-cycle pocket 提炼”的迁移笔记。
corr > 0.85、ADF p < 0.05、half-life ∈ [4,64] bars15m 上跑 rolling OLS spreadz > 2:short spreadz < -2:long spread|z| < 0.5 平仓|z| > 4 强平time stop = 2 × half-lifemax_pair_weight 思路pair drawdown stopportfolio drawdown stop4 / 8 / 12 bps friction ladder8 bps 已明显转负,默认不把它当 taker alpha 主线优先级我会放在:
8~12 bps 下仍稳健为正的强 edge不要先做更复杂的 ML。先把下面这个最小实验做干净:
研究假设
15m / 30m 上滚动做 short-half-life admission,再只交易 8 bps 仍不转负的 pair,则少数 liquid-alt pairs 能形成可持续的 low-friction spread MR pocket。具体动作
30~40 liquid perp4h 或每天重跑一次 admissioncorr > 0.85ADF p < 0.05half-life 4~64 bars15m 做 entry / exit5m 只拿来细化 exit,不拿来重新发现 pair4 / 8 / 12 bps8 bps 后仍为正的 surviving pair ratio1m / 3m 走我的建议不是把 admission 也压到 1m / 3m,而是:
15m / 30m1m / 3m 只做 execution refinement / close-out timing原因很简单:
1m / 3m 更适合决定“怎么退”,不适合决定“这对腿值不值得做”。> 把这份 2026 repo 读成 short-cycle desk 语言后,最值得保留的不是“日频 market-neutral 组合”这个大叙事,而是“short-half-life liquid-alt pair admission × 15m spread fade”这条 selective raw alpha 壳;它有 pocket,但 edge 很薄,必须先过低摩擦筛选。