源文件:research/quant_digests/2026-04-23_0315_crossvenue-bestfunding-routing-shell.md
看的是 2026 GitHub 仓库 PietroC21/Crypto-PerpetualFutures。它不是只给一句“funding rate 高了就 short perp long spot”,而是把 跨所 funding 路由、sign-constrained entry、zero-cross / min-hold exit、OI gate、VIX/SPY macro gate、weight scheme、fee model、P&L attribution 都写成了可直接运行的策略壳。
和最近已经写过的 funding / basis 主题相比,这个 repo 真正的新意不在“carry 存在”本身,而在:同一条 carry alpha,如果只做单所版本会被费率打穿;但把 perp 腿动态路由到当下 funding 最肥的 venue,结果会从负变正。
这篇东西的 base alpha 很清楚:
> base alpha = 同标的 spot↔perp 的 delta-neutral funding carry,也就是在 perp 对 spot 明显偏贵、且 funding 足够 rich 时,做 short perp + long spot 去收 funding;若 funding 明显为负,则反向做 long perp + short spot 收负 funding。
所以它不是单纯 filter / regime / overlay,而是一条 能独立站住的 raw alpha。仓库里的 OI / 宏观门控只是 admission / veto,venue routing 是 alpha 壳的重要放大器,不是主题本体。
z_exit=0 + min_hold=3 个 8h 周期 的 hysteresis hold,目标是减少 turnover 和 fee drag。它和 desk 当前目标的关系非常直接:
8h/1h funding,但执行层完全可以拆成 15m/5m child execution。15m/5m 分批进出、spread / liquidity veto换句话说,这篇最适合 desk 保留的,不是“又一个 funding 观点”,而是:
> 单 venue carry 常常只是研究幻觉;可交易版本要把 routing、hold、fees、gate 一起写进去。
核心不是“这根 funding 高不高”,而是:
这一步直接决定 gross carry 厚度。repo 给出的分析里,加入 Hyperliquid 之后,策略从单 venue 不可交易变成可交易。
不是只看 |z| 大就开仓,而是要求方向一致:
best_fr > 0 时才做 short perp + long spotbest_fr < 0 时才做 long perp + short spot这很重要,因为它把“funding 异常”与“你实际收的是哪边 funding”绑定了起来,避免做反方向的伪 carry。
repo 的默认参数不是来回抖动式的 threshold in/out,而是:
z_entry = 2.0z_exit = 0.0min_hold = 3(3 个 8h 周期)对 short-cycle desk,这个设计的启发很大: alpha state 可以慢,但 execution 不必每根 K 都翻仓。 很多 funding/basis 策略真正亏在“有 edge,但你太爱交易”。
repo 用 open_interest >= 0.5 * rolling_mean(OI) 做 admission。这个点比“看 volume”更靠谱,因为在 crypto 里 volume 更容易被噪声或 wash trading 污染。
repo 还用了:
VIX > 30 flattenSPY 5-day drawdown > 5% flatten这些不是给 intraday 主信号下 direction,而是明确定位成 shared risk overlay。对我们 desk,可直接翻译成“risk-off 时减半 / 不开新仓”,而不是伪装成逐根主信号。
它明确把两腿成本都算进去:
这点很关键,因为很多 funding shell 只展示 funding 收入,却不把 spot hedge 成本 当真成本,最后在真实执行里直接翻车。
这条 alpha 不适合被伪装成“每 5m 都产生一个独立方向信号”。更合理的 desk 落地方式是:
1h / 8h funding state15m 主执行,5m 做微调BTC/ETH/SOL,再扩到 BNB/XRP/DOGE/AVAXBinance + Hyperliquidbest_fr 与 rolling z-score|z| > z_entrybest_fr 方向与持仓方向一致|z| < z_exit 或 funding sign flipmax_hold 与 min_hold 双边约束15m/5m 的方式15m/5m 负责:也就是: alpha state 在 funding,edge 留在 routing,短周期负责 execution。
Binance-only carry 在我们口径里大概率依然偏薄,但 Binance + Hyperliquid best-leg routing 可能把 net expectancy 拉回正值。
相比继续卷 entry 阈值,更值得先测的是:
min_holdz_exit对这类 alpha,真正的“快周期提升”不是把 state 做得更快,而是把 execution friction 压下去。
8h/1h,所以它对 desk 的直接意义更像 完整壳 / state engine,不是现成 5m 裸 alpha。https://github.com/PietroC21/Crypto-PerpetualFutureshttps://github.com/PietroC21/Crypto-PerpetualFutures/blob/main/README.mdhttps://github.com/PietroC21/Crypto-PerpetualFutures/blob/main/FINAL_Notebook.ipynbhttps://github.com/PietroC21/Crypto-PerpetualFutures/blob/main/FINAL_Notebook_V2.ipynbhttps://github.com/PietroC21/Crypto-PerpetualFutures/blob/main/strategy_cross.pyhttps://github.com/PietroC21/Crypto-PerpetualFutures/blob/main/strategy.py/tmp/Crypto-PerpetualFutures不要先去优化一堆 z-score 小参数,先做一个 desk 版双场地 carry shell smoke test:
Binance + Hyperliquid 两地;BTC/ETH/SOL 先跑 best_fr z-score + sign-constrained carry;15m 一次性 taker5m 三段 maker-first / taker-backstoprouting-switch frequency 过高,就别继续加币,先把 sticky routing / cooldown / min-hold 调顺。一句话版下一步: 这条策略先别继续证明“funding 有用”,而是先证明“best-venue routing 后,净 carry 还剩多少”。