源文件:research/quant_digests/2026-04-20_1216_kalman-dynhedge-pair-spreadfade-alpha.md
15m portability probe这次主材料是 2025-12 新仓 KulkarniPushakar/Real-Time-Crypto-Pair-Trading-Analytics-。README 和 app.py 的核心不是 Streamlit UI,而是一条很标准、可直接拆成交易规则的 pairs/stat-arb sleeve:Binance WebSocket 对齐双币价格,计算 OLS / Huber / Theil-Sen / Kalman dynamic hedge ratio,再用 spread、rolling z-score、rolling correlation、ADF p-value 和 z_entry / z_exit 阈值生成 LONG / SHORT / EXIT alerts。
一句话核心结论:这条线最值得拿走的是“不要用一根固定 beta 去做 pairs,先让 hedge ratio 随市场慢慢漂,再只 fade 真正偏离 beta 的 spread”。
一句话证明方式:repo 把实时数据、动态 hedge、z-score 阈值和 rule-based alert 串成了可执行骨架;我再用 Binance USDⓈ-M 15m 公共数据做了一个最小 portability probe,看它是否还有成本后 pocket。
spread = price_y - beta_t * price_x;当 z(spread) > 2,做空 rich leg / 做多 cheap leg;当 z < -2 反向;|z| < 0.5 平仓。BTC/ETH、XRP/DOGE、SOL/AVAX 这类相关关系会随叙事和波动切换漂移,固定 OLS beta 很容易把 beta 漂移误读成 spread alpha。BTC/ETH/BNB/SOL/XRP/DOGE/ADA/LINK/AVAX/LTC,2026-01~03、15m,对 45 个 pair 做 Kalman-style beta + 96-bar z-score + corr>0.55 admission:6,928 笔,说明机会很多,但也意味着成本非常敏感。XRPUSDT/DOGEUSDT 最突出:187 笔,平均 +11.04 bps gross/trade,粗扣 8 bps 双腿 round-trip 后仍约 +3.04 bps/trade,gross win rate 约 56.1%。BTCUSDT/ETHUSDT 很稳定但太薄:325 笔,平均 +2.11 bps gross,扣 8 bps 后约 -5.89 bps/trade;它更适合当 sanity benchmark,不适合直接上 taker 版。这篇对当前素材池有用,因为它补的是 pairs / stat-arb / relative value 族里的一个清楚 raw alpha 壳,和最近的 trend / funding digest 不同:
15m:可直接做母信号,尤其适合 XRP/DOGE、SOL/AVAX、LINK/LTC 这种同风格 alt pair。5m:更适合做 child execution——15m 发现 spread extreme,5m 等回归第一脚或 maker queue placement。pair admission、dynamic hedge、spread z-score entry、exit / timeout / stop-z、cost ladder 五个模块,后续可以独立替换。Kalman dynamic hedge ratio 调整后的 pair spread 偏离滚动均值后回归rolling_corr > 0.55、beta 为正且不过度异常时启用;更严格版本应加 ADF / half-life / liquidity admission|z| < 2 不开;corr 降低、beta 跳变、spread stop-z、单腿跳空、资金费率/新闻事件可 veto1 + |beta|;|z| < 0.5 平仓;12 bars timeout;|z| > 4 同向扩张止损;研究期先按 4/8/12 bps 双腿 round-trip friction ladder8 bps round-trip;真实执行若走 taker 双腿会很吃亏,优先测 maker-first / one-leg-maker-one-leg-taker1m/3m/5m/15m15m,XRP/DOGE、BTC/ETH、SOL/AVAX、LINK/LTC 四个代表 pair;样本先滚动 90dbeta_t = Kalman(price_y ~ beta_t * price_x)spread_t = price_y - beta_t * price_xz_t = (spread_t - rolling_mean_96) / rolling_std_96entry: z>2 => short y/long beta*x; z<-2 => long y/short beta*xexit: |z|<0.5 or timeout=12 bars or stop_z=4net_bps/trade under 4/8/12 bps frictionmean-cross exit ratio 与 median holding barscorr>0.7 + ADF p<0.1 + half-life 2~16 bars + quote_volume top bucket,看 XRP/DOGE 的 +3.04 bps net/trade 是否还保得住。15m signal 接 5m child execution:入场不直接 next-open taker,改成 5m 第一根 spread 回落 / maker mid-placement,目标是把 8 bps 成本打到 4 bps 以下。30d 里选 top 3 pairs,下一周交易,避免事后挑 XRP/DOGE。8 bps 后为负。XRP/DOGE 的好结果可能包含阶段性 meme / alt beta 结构,不应直接外推;必须做 rolling OOS selection。README.md, app.py, main.py2025-12-17, pushed 2025-12-17, language Pythonreports/artifacts/quant_digests/2026-04-20_kalman_pair_spreadfade_probe_summary.csvreports/artifacts/quant_digests/2026-04-20_kalman_pair_spreadfade_probe_trades.csvreports/artifacts/quant_digests/2026-04-20_kalman_pair_spreadfade_probe_event_horizon.csv