源文件:research/quant_digests/2026-04-22_0958_perp-perp-funding-diff-zfade-shell.md
README.md + strategies/perp_perp.py + config/main.yaml + backtest/execution_sim.py)+ Binance / Bybit 公开 funding history portability probe(BTC/ETH,最近 200 个 8h funding 点)raw alpha同一永续合约在两个交易所的 funding rate 差值出现统计极端时,做空高 funding venue、做多低 funding venue,赚下一段 funding differential,并等待差值回归是是这条线值得进素材池,但不要照搬 repo 默认阈值直接上 BTC/ETH。 gencersarp/cryptoarb 给了一条很干净的 perp-perp funding differential 完整壳:entry、exit、sizing、max-hold、cost simulator 都齐;但最近 Binance vs Bybit 的 BTC/ETH 公开 funding 差太窄,repo 默认 2 bps/8h 门槛在近 200 个结算点里没有触发。更合理的 desk 用法是:把它当 1m/5m 扫描 + 5m/15m child execution 的稀疏 relative-value alpha,先扩到多 venue / 多 asset,再决定是否值得接实盘执行。
最近已有多篇 basis / funding / pairs digest,但这篇不是再写 spot-perp basis,也不是泛泛的“跨所 funding APR 榜单”。它的新增点在于:
same asset, perp vs perp, venue A funding - venue B funding;不需要 spot leg,也不赌币价方向;一句话:这是 relative-value raw alpha,不是 filter;低频 funding 是收益来源,短周期 bars 负责扫描、入场、补腿、退出和风控。
主来源:
gencersarp2026(created 2026-03-29,pushed 2026-04-06)N/Ahttps://github.com/gencersarp/cryptoarbstrategies/perp_perp.py, config/main.yaml, backtest/execution_sim.pystrategies/perp_perp.py 的核心规则可以还原为:
fr_hi, fr_lo;spread = fr_hi - fr_lo;30 个 funding bars 计算 spread z-score;abs(spread) >= min_funding_spread,repo 默认 0.0002,即 2 bps/8h;abs(z) >= entry_z,repo 默认 2.0;spread > 0:venue A funding 更高,short venue A perp,long venue B perp;spread < 0:反过来;abs(z) < exit_z,repo 默认 0.5;max_hold_bars = 6、position_size_pct = 0.30、max_open_positions = 2。这里要注意一个源码层细节:perp_perp.py 里的 Signal 只显式发了 v_hi 那条腿,另一条低 funding venue 的 hedge leg 需要由 backtest / execution 层补齐;我们复现时应把它明确写成双腿组合,避免把一条腿误测成方向交易。
BTCUSDT, ETHUSDT1m/5m/15m 做 child execution 和补腿监控200 个 matched 8h 点,约 2026-02-15 00:00 UTC 到 2026-04-22 08:00 UTCspread = binance_funding - bybit_funding,rolling 30 点 z-scoreBTCUSDT:
2000.377 bps/8h0.897 bps/8h1.473 bps/8h2 bps/8h + |z|>=2:0 次触发ETHUSDT:
2000.388 bps/8h0.978 bps/8h1.570 bps/8h2 bps/8h + |z|>=2:0 次触发把绝对门槛降到更现实的 0.5/1.0/1.5 bps 后,信号会出现但非常稀疏:
| symbol | min spread | z gate | entries | next-1 funding spread 收敛率 | next-3 收敛率 | |---|---:|---:|---:|---:|---:| | BTCUSDT | 0.5 bps | |z|>=2 | 7 | 85.7% | 100% | | BTCUSDT | 1.0 bps | |z|>=2 | 4 | 100% | 100% | | ETHUSDT | 0.5 bps | |z|>=2 | 11 | 90.9% | 100% | | ETHUSDT | 1.0 bps | |z|>=2 | 6 | 100% | 100% | | ETHUSDT | 1.5 bps | |z|>=2 | 1 | 100% | 100% |
人话解释:spread 的确有回归性,但最近 BTC/ETH 两大 venue 太有效,raw edge 厚度很薄;如果双腿都吃 taker,绝大多数信号不够扣费。
1m / 3m / 5m / 15m 的关系这条 alpha 的收益结算不是逐根 K 线,而是 funding settlement;但短周期并不无关:
1m/3m:用于 funding 快照轮询、盘口价差、腿间偏离、partial fill / orphan leg 监控;5m:用于 child execution,把双腿拆成 maker-first / post-only 尝试,若价差恶化则撤单;15m:用于持仓巡检、z-score exit、max-hold、venue exposure rebalancing;8h:用于 funding PnL attribution,不应把 funding alpha 伪装成每根 K 的方向预测。最小可落地版本:
BTC/ETH/SOL/BNB/XRP/DOGE/LINK/AVAX,venue 至少 Binance / Bybit / OKX / Hyperliquid;(asset, venue_i, venue_j) 计算 funding spread;要求 |z_30|>=2 且 expected_next_funding_edge_bps > round_trip_cost_bps + safety_margin;notional = min(capital*0.10~0.30, venue_cap, depth_cap);用 edge_after_cost / volatility 做缩放,不要用 APR 幻觉放大;|z|<0.5、下一期 expected edge 转负、腿间 mark divergence 超阈值、或 max hold 1~3 个 funding intervals;2 bps/8h 门槛近期根本不触发;post-cost > 0 的事件密度,就把它降级成 funding-regime gate:当某币 funding cross-venue 极度不一致时,提醒别让其他方向 alpha 裸追拥挤腿。Binance / Bybit / OKX / Hyperliquid,覆盖至少 20 个永续,共同 timestamp 对齐到 8h。min_abs_spread = 0.5/1.0/1.5/2.0 bps × z = 1.5/2.0/2.5;不要先固定 repo 默认值。maker-maker、maker-taker、taker-taker;只有 maker-first 版本为正才值得继续。1m/5m orderbook / kline 近似成交,记录 leg-in slippage 与 orphan-leg 暴露时长。N/Ahttps://github.com/gencersarp/cryptoarbstrategies/perp_perp.py, config/main.yaml, backtest/execution_sim.py---
reports/artifacts/quant_digests/perp_perp_funding_diff_probe_20260422/summary.txtreports/artifacts/quant_digests/perp_perp_funding_diff_probe_20260422/threshold_sweep.csvreports/artifacts/quant_digests/perp_perp_funding_diff_probe_20260422/BTCUSDT_binance_bybit_funding_diff.csvreports/artifacts/quant_digests/perp_perp_funding_diff_probe_20260422/ETHUSDT_binance_bybit_funding_diff.csv