源文件:research/quant_digests/2026-04-08_1429_dynamic-hedgeratio-btceth-pairs-fade-alpha.md
1m/5m portability probeBTC/ETH dynamic hedge-ratio spread mean reversion这次主看 KulkarniPushakar (2025) 的 GitHub 仓库 Real-Time Crypto Pair Trading Analytics Platform(commit fb49d7b,repo 更新时间 2025-12-17)。source audit 重点覆盖:README.md、analytics/hedge_ratio.py、analytics/spread.py、analytics/zscore.py、analytics/backtest.py、analytics/runner.py、analytics/resample.py、analytics/ADF_test.py、analytics/rolling_corr.py。
一句话先说:这份 repo 真正值钱的不是“实时看板”,而是它把 short-cycle pairs 最核心的 raw alpha 明确拆成了——动态对冲比率先把 BTC/ETH 两腿对齐,再做 spread 的 z-score 回归。
BTC - β_t * ETH 的动态 spread 偏离过大,就赌它回到中线。1s/1m/5m resample、rolling correlation、ADF、spread、z-score、entry/exit backtest skeleton。也就是说,这不是“pairs 概念笔记”,而是可直接迁到我们 desk 的实验骨架。BTCUSDT/ETHUSDT)显示:dynamic beta 明显比 static beta 更能压缩 spread 噪声。最近样本里:1m:spread std 约从 29.42 bps 压到 3.58 bps5m:约从 94.38 bps 压到 8.21 bpsz_entry=2 / z_exit=0 最小回测壳快检:1m:约 172 笔,毛 +9.65 bps/trade,按双腿 8 bps 粗成本后仍约 +1.65 bps/trade5m:约 198 笔,毛 +21.72 bps/trade,按双腿 8 bps 后约 +13.72 bps/trade它和我们当前主线的关系非常直接:这不是又一个 breakout / pullback filter,而是可独立复现的完整 pairs raw alpha 候选。而且它正好补的是 desk 现在最该继续积累的那块:
1m / 3m / 5m / 15m 的最小实验一句话核心结论:对 BTC/ETH 这种高相关腿,先做动态 beta 对齐,再做 spread fade,比直接拿固定 ratio/z-score 更像能活下来的短周期 pairs 原型。
一句话证明方式:repo 给了完整工程骨架,我再用 Binance 公开 1m/5m 数据做了最小移植快检,先看 spread 压缩,再看成本前后每笔期望。
dynamic hedge-ratio spread mean reversion研究假设:对 BTC/ETH,动态 hedge ratio 比 static beta 更能产出可交易的短周期 spread fade。
一个可计算定义:
1m 或 5m close 计算 log(BTC)、log(ETH);β_t;spread_t = log(BTC_t) - β_t * log(ETH_t);z_t 超过 ±2 开仓,回到 0 平仓,附加 max_hold;6~12 bps 做 friction ladder。最小回测切口:
BTCUSDT / ETHUSDT5m,再降到 1m/3m30~90d 连续 Binance Spot 或 perp最该先看:
post-cost expectancy / tradetrade count 与 median hold1m 上看起来能活,不代表加上 queue / latency 后还活。BTC-ETH 之外的 majors peer set。https://github.com/KulkarniPushakar/Real-Time-Crypto-Pair-Trading-Analytics-https://github.com/KulkarniPushakar/Real-Time-Crypto-Pair-Trading-Analytics-README.mdanalytics/hedge_ratio.pyanalytics/spread.pyanalytics/zscore.pyanalytics/backtest.pyanalytics/runner.pyanalytics/resample.pyanalytics/ADF_test.pyanalytics/rolling_corr.pyhttps://api.binance.com/api/v3/klines先别扩 universe,先做一个最干净的 A/B:
static beta vs dynamic betaclose-to-close vs next-bar-open4 / 8 / 12 bps 三档往上压rolling corr floor + ADF veto如果这四步后 5m 还能保住正的 post-cost expectancy,这条就有资格进更正式的 pairs replication 池。