源文件:research/quant_digests/2026-03-31_2048_whitelist-peer-divergence-halflife-spread-fade.md
README.md + docs/SERVER_ASSET_WHITELIST.md + docs/SERVER_POSITION_MANAGEMENT.md + docs/SERVER_ORDER_EXECUTION.md + server/src/utils/assetMappings.ts + server/src/analysis/correlationAnalyzer.ts + server/src/strategies/pairsCorrelationStrategy.ts source audit + Binance USDⓈ-M Perpetual 公开 15m proxy quick checkspread = price_B - beta * price_A 偏离其均值超过阈值,就做 long laggard / short leader 的配对回归这次主材料不是论文,而是一份仍在更新的 Hyperliquid 配对交易仓库:Andrew Wilkinson / Privateer Capital(GitHub repo,2024 创建,2025 仍有 push)。
它最值得 desk intake 的地方,不是“又一个 pairs trading repo”,而是它把问题收窄成了更可执行的一种版本:
先手工限定一个“同生态/同风格”的白名单,再只在这些 peer 里找高相关、短 half-life 的 spread 偏离。
翻成人话: 不是全市场瞎搜 cointegration,而是先承认很多可交易 alpha 根本不是“任意两币之间”的,而是 同类币之间的相对错位。
仓库白名单里包含的就是这种思路:ETH / ARB / OP / STRK / CELO / MNT / AAVE / ENA / LINK / UNI / MKR / CRV / PENDLE ...。这比“全市场 pair search”更贴近 desk 真正会下手的短周期 relative-value lane。
从 repo 和代码本身,能直接提炼出 5 个关键点:
beta;spread = price_B - beta * price_A;|z| > 2.5 时,做 rich leg short / cheap leg long。0.95;half-life 必须落在 6~15 个 bar;这和 desk 当前需要的素材池是对得上的: 不是再堆一个抽象 stat-arb 名词,而是补一条能直接落到 5m / 15m perp 的 raw alpha lane。
pairsCorrelationStrategy.ts 里写着: minDataPoints: 96 // 1 week of 15-minute snapshots
但 96 根 15m bar 实际上只有 24 小时,不是 1 周。 这不是注释小错,而是会直接改变 pair discovery、half-life 估计、信号密度的口径问题。
同一白名单 peer-cluster 内,short half-life spread fade 到底是不是一条能稳定产出、且不被成本秒杀的 raw alpha。
它和我们这轮 intake 目标高度匹配:
entry / exit / sizing / risk / cost;5m / 15m,往 3m / 1m 压缩也有自然路径;更关键的是,它不是那种“paper headline 很大,但落地只剩风格解释”的材料。这里的 base alpha 本身就能独立下单。
peer_spread_zscoresame-ecosystem whitelist + short half-lifecorr >= 0.95、6 <= half_life <= 15、资产不重叠、低流动性腿剔除、事件币剔除base alpha = 同一白名单 peer pair 的 spread z-score 偏离;当同类资产之间的相对价格错位拉大到极端,就做回归。
所以它不是 filter,不是 overlay,而是一条可以独立写成完整策略的 raw alpha。
assetMappings.ts 和白名单文档给出的宇宙,本质上是一组“同类风险资产”:
ETH / CELO / MNT ...ARB / OP / STRK / BLASTAAVE / ENA / LINK / UNI / MKR / CRV / PENDLE / GMX / LDO这个设计的好处是: 先用主观先验把 pair search 限到“本来就可能一起动”的东西,再让统计量只负责判断有没有暂时错位。
这比全市场 cointegration 暴力扫描更像 desk 真会采用的做法。
pairsCorrelationStrategy.ts 的核心逻辑可以翻成:
corr >= 0.956 <= half_life <= 15z > 2.5:认为 B 相对 A 偏贵,做 long A / short B;z < -2.5:认为 B 相对 A 偏便宜,做 short A / long B。这套定义足够清楚,完全能独立复现。
仓库不是停在“信号生成”那一步,而是把很多真实交易会踩的坑也写出来了:
tradeSizePercent = 0.5,即用 50% 可用保证金 开一组 pair;maxPositions = 4;这意味着它不是 paper-only idea,而是真在往“能活着执行”靠。
最值钱的 audit 结论反而是一个很朴素的问题:
96 根 15m bar 被写成了 “1 week”。
实际不是。
这会带来三个直接后果:
所以这条 alpha 要不要进研究池,不该先问“repo 有没有 dashboard”,而该先问 96 vs 672 的信号结构差多少。
我用 Binance USDⓈ-M Perpetual 公开 15m K 线,在 repo 白名单可映射的 12 个币上做了最小快检。
样本口径:
ETH / ARB / OP / STRK / CELO / AAVE / ENA / LINK / UNI / MKR / CRV / PENDLE15m96 bars vs 672 bars1500 根 15m bar 里,对每个 pair 做 672-bar 估计96 bars 和 672 bars 根本不是一回事在同一时点上:
corr >= 0.95 且 6 <= half-life <= 15;ARB/CRVARB/LINKLINK/CRV这已经足够说明: 这条 alpha 的第一优先级不是调 z-score,而是先把 lookback 定义说清楚。
在 672-bar 口径下,当前最强的 z-score 也只有:
LINK/CRV: |z| ≈ 1.09ARB/CRV: |z| ≈ 0.66ARB/LINK: |z| ≈ 0.52也就是说: 现在这个时点,pair gate 有,但 entry 没到。
这是好事——它说明这不是那种“随时都在乱发信号”的伪均值回复框架。
ARB/CRV 是这批 peer pair 里最像样的一组对最近 829 个 rolling 672-bar 窗口(约 8.6 天的判定序列)统计:
ARB/CRV 有 298 个窗口满足 gate,占比 35.9%;|z| >= 2.5 的原始信号窗口有 34 个,占全部窗口约 4.1%;这类 alpha 的味道很明确: 不是“每小时都有新单”,而是 平时等,冲击来时抓 relative-value 回归。
对这 5 个去重后的 ARB/CRV signal episode,再看未来 10 根 bar(约 2.5h):
15 根 bar 内真正回到 |z| <= 0.5 或翻过零轴。翻成人话: 它不是那种“一触发马上 V 回”的 ultra-fast pair trade。更像先吃一段 spread 压缩,再决定要不要继续等 full reversion。
这对 desk 很关键,因为它直接决定:
0.75σ ~ 1.25σ 的第一段压缩。所以这份 repo 最值得 intake 的,不是“有个 pairs engine”,而是下面这条更窄、更实盘的读法:
别做全市场任意 pair mean reversion;先做 whitelist peer-cluster divergence。
也就是:
ARB/OP/STRK 这种 L2 同类组;AAVE/UNI/MKR/CRV/LINK/PENDLE 这种 DeFi beta 组;ETH 这类大 beta anchor。然后只在这些组里做:
这比“广撒网 pairs”更贴近短周期 desk,也更利于之后做实盘组件拆解。
15m 主版:672 bars5m 加速版:2016 barscorr >= 0.956 <= half_life <= 15|z| >= 2.5 时 next-bar 进场,做 long laggard / short leader|z| <= 0.5abs(z_entry) - abs(z_now) >= 1.01.5 × half_life 或 12 bars 取较大|z| 扩到 4.0 或 pair gate 失效(相关性/half-life 坏掉)50% 保证金,desk baseline 改成 10%~15% available margin/pair 更合理2 / 6 / 10 / 14 bps最小实验建议直接做这 5 件事:
96 vs 672(15m)和 288 vs 2016(5m)的 pair 数、信号数、after-cost PnL。L2、DeFi beta 两个 bucket,看 bucket 内 alpha 是否明显强于 unrestricted pair scan。full reversion to |z|<=0.5first compression >=1.0σ比较哪个更适合 5m / 15m。
2.0 / 2.5 / 3.0,看信号密度和净值的 trade-off。taker/taker 与 maker/taker 下,盈亏差多少;如果 edge 只剩纸面统计,不要急着升级到实盘。ARB/CRV 这类幸存者 pair 目前更像 shock-compression,不是稳定 full mean reversion;如果出场定义错了,很容易把 paper alpha 变成 execution 噪音。50% 可用保证金/组 的 sizing 对 desk 来说偏猛,不能原样照抄。别把短周期 pairs 理解成“任意两币找协整”;对 desk 更值钱的,往往是白名单 peer-cluster 里的那种短 half-life 错位。
Readable URL: https://github.com/ADWilkinson/privateer-capital Repo URL: https://github.com/ADWilkinson/privateer-capital
Readable URL: https://raw.githubusercontent.com/ADWilkinson/privateer-capital/main/README.md
Readable URL: https://raw.githubusercontent.com/ADWilkinson/privateer-capital/main/docs/SERVER_ASSET_WHITELIST.md
Readable URL: https://raw.githubusercontent.com/ADWilkinson/privateer-capital/main/docs/SERVER_POSITION_MANAGEMENT.md
Readable URL: https://raw.githubusercontent.com/ADWilkinson/privateer-capital/main/docs/SERVER_ORDER_EXECUTION.md
Readable URL: https://raw.githubusercontent.com/ADWilkinson/privateer-capital/main/server/src/utils/assetMappings.ts
Readable URL: https://raw.githubusercontent.com/ADWilkinson/privateer-capital/main/server/src/analysis/correlationAnalyzer.ts Readable URL: https://raw.githubusercontent.com/ADWilkinson/privateer-capital/main/server/src/strategies/pairsCorrelationStrategy.ts
Readable URL: https://developers.binance.com/docs/derivatives/usds-margined-futures/market-data/rest-api/Kline-Candlestick-Data
reports/artifacts/quant_digests/privateer_peer_pair_scan_15m_20260331.csvreports/artifacts/quant_digests/privateer_arb_crv_signal_followthrough_15m_20260331.csv