源文件:research/quant_digests/2026-03-27_1748_graph-matching-pairbook-meanreversion.md
15m 本地 transfer check> 先回答 base alpha:这是 raw alpha,不是单纯 filter。 真正赚钱的底层仍是 cointegration spread mean reversion;这篇 paper 的新意在于:不要再把 pair book 做成一堆共享同一条腿的“伪分散”组合,而是用 maximum-weight matching 选出 不共享资产 的一组 pairs,把同一条 raw alpha 做得更像一个可控、可扩容、可上 desk 的组合。
这次主看:
10.48550/arXiv.2403.07998https://arxiv.org/abs/2403.07998https://arxiv.org/html/2403.07998v1https://github.com/kai-trading-bot/pair/BTC, ETH, SOL, BNB, XRP, DOGE, ADA, LINK, LTC, AVAX, TRX, DOT, BCH, ETC, APT, SUI 对应 USDT perp15m60d formation + 10d trade,滚动 5 个窗口reports/artifacts/quant_digests/graph_matching_pairs_20260327/这篇 paper 的 headline 是:pairs 组合若直接按 cointegration 强度排序,很容易反复押在同一批公共腿上,导致表面上 pair 数很多,实际上组合方差、换手和单腿风险都偏高。
对我们 desk 来说,最值钱的不是“graph theory 很新”,而是:
cointegration spread mean reversion + no-overlap pair book 这条完整 skeleton。1.23 vs 0.48、net cumulative return 约 +65% vs -26%,且 turnover 更低、单股票集中度更低。但 desk 化之后更重要的诚实读法是:
1.23,基线只有 0.48;+64.7% / +66.3%,基线约 -26.2% / -13.4%;-8.0%,显著小于市场 -19.5%。15m 的滚动最小迁移快检里,matching 的“结构修正”是明显成立的。 最近 5 个滚动窗口中:1.0 vs 3.6(matching 永远每个资产只出现一次);16.0 vs 9.4;22.85 vs 28.00。也就是说,它确实把 pair book 从“公共腿堆叠”改成了“真分散”。
15m 简化 z-score 测试下:+3.4%,baseline +9.1%;-6.3%,baseline -3.6%;169 bars,baseline 约 129 bars。这说明:matching 把 book 结构修对了,但在我们这版 15m proxy 里,还没把“更慢的 spread + 更低重叠”转成净 alpha 优势。
最近几篇 pairs / stat-arb digest 已经补了:
但还缺一类很实际的问题: > 如果很多最强 pair 都共享同一条主腿,book 到底该怎么组?
这篇 paper 的价值就在这里:
如果后面 desk 继续扩 pairs / stat-arb 素材池,这一层迟早都要补。
先做最小可复现版本:
15m12~20 个 USDT perpetual45~60dlog(P_j) = μ + β log(P_i) + εε 做单 lag ADF-ADF t-stat(越大表示越强均值回归候选)p-value 直接取 top pairspaper 给了两个触发器:
z-score:标准化残差超过阈值就开仓q-score:用分位数而不是标准差做稳健归一化,并按离群程度整数分档加权对 short-cycle desk,建议先这样落地:
|z| >= 1.0 ~ 1.5 或 |q| >= 1 开仓z / q 回到 0 附近平仓;max holding bars = 16 / 24 / 32;β 做 dollar hedge;q-score,可以把极端离群 pair 的权重向上分档,但必须设单 pair cap。必须加:
5m/15m desk。先卡 half-life <= 96~192 bars。本轮 quick check 先用的是很粗的简化 friction proxy,不能当最终成本结论。 正式版至少要跑:
2 / 3 / 4 bps round-trip4 / 6 / 8 bps8 / 10 / 12 bps如果 matching 只是在 gross 上修风险、但净后仍输给 overlap baseline,就说明:
我这次快检只想回答一个问题: > 把 paper 的 matching pair-book 思路搬到 crypto 15m,会不会立刻变成更好的短周期净策略?
当前答案是:不会立刻。
我拿 Binance Futures 公共 15m 数据,用 60d formation + 10d trade 滚动 5 个窗口,做了一个极简版 z-score spread 回测。结果显示:
所以这篇的正确定位不是:
而是:
按优先级继续往下做:
q-score + integer sizing。现在的 proxy 太粗,容易把慢 spread 与 outlier-sensitive std 归一化混在一起。
先用更强的 admission layer 缩图:
ADF p-value然后再在候选图上做 matching。
不是只能二选一:
中间还可以测:max degree <= 2 或 same leader leg capped at 2。
当前 matching 选出的 pair median half-life 更长,说明它可能不该硬塞进纯 15m 快周转;要补跑:
15m 入场 + 4h/8h/1d 持有5m 触发但 1h+ 持有对 crypto 来说,“不共享资产”还不够,最好再加:
避免匹配器为了去重,硬把风格完全不对的 pair 拼进去。
K overlap baseline然后统一看 gross / net / turnover / concentration / exposure / borrow-capacity proxy。
> 最该先测的正式版本: Binance perp 15m, 60d formation, ADF + half-life admission, 在候选图上比较 full matching 与 max-degree<=2 hybrid,交易层用 q-score 而不是简化 z-score,holding 至少拆 1h / 4h / 8h 三档。若 hybrid 明显优于 full matching,就把这篇 paper 吸收成 pairs book governance module,而不是把“完全不重叠”当教条。
research/quant_digests/2026-03-27_1748_graph-matching-pairbook-meanreversion.mdreports/artifacts/quant_digests/graph_matching_pairs_20260327/reports/artifacts/quant_digests/graph_matching_pairs_20260327/window_metrics.csvreports/artifacts/quant_digests/graph_matching_pairs_20260327/summary.jsonreports/artifacts/quant_digests/graph_matching_pairs_20260327/latest_matching_pairs.csvreports/artifacts/quant_digests/graph_matching_pairs_20260327/latest_baseline_pairs.csv10.48550/arXiv.2403.07998https://doi.org/10.48550/arXiv.2403.07998https://arxiv.org/abs/2403.07998https://arxiv.org/html/2403.07998v1https://binance-docs.github.io/apidocs/futures/en/#kline-candlestick-datahttps://fapi.binance.com/fapi/v1/klines?symbol=BTCUSDT&interval=15m&limit=1500https://github.com/kai-trading-bot/pair/(当前公开访问疑似失效,待后续核实是否迁移/私有化)