源文件:research/quant_digests/2026-04-11_2058_smallcap-crossvenue-perp-dislocation-alpha.md
same-asset cross-venue net spread > round-trip cost 之后的快速回归。看了 VadymManiuk/spreadfinder 这个 2026 新仓库。表面上它只是一个 Binance / Hyperliquid / Gate 三所 perp spread scanner + Telegram alerts,但真正值得 desk 拿走的不是报警器外壳,而是它把一条 same-asset cross-venue relative-value raw alpha 拆得相当清楚:
1000PEPE / kPEPE 这类 1000x 面值归一)这比“看见跨所价差就冲”成熟得多,也比我们此前看过的 majors 跨所壳更贴近 small-cap / alias-heavy / quote-fragmented 这条新素材线。
spread_engine/calculator.py 明牌给了核心定义:gross_spread = sell_bid - buy_askgross_spread_bps = gross_spread / buy_ask * 10000net_spread = gross_spread - estimated_fees - estimated_slippage1000PEPE / Hyperliquid kPEPE / Gate PEPE 这类名义面值差异;若不做这个归一,很多“价差”其实只是合约单位不同导致的假象。ticker_aliases.py 还显式屏蔽了不少 collision ticker(如 BEAM、NEIRO、AI、CAT、X),这对小币跨所策略非常关键:ticker 相同 ≠ underlying 相同。confidence.py 把可执行性压成四个分量:freshness 30%、liquidity 30%、volume 20%、spread magnitude 20%。这其实已经在告诉我们:这条线不是“价差越大越好”,而是“价差真实 + 书够厚 + quote 够新”才值得上桌。WLD/SEI/PYTH/CRV/SUI/FLOKI/TRUMP/PEPE/APE/LINK/ENA/ARB/WIF/BONK/LDO/JUP/TIA/APT/DOGE/NEAR 共 20 个三所重叠标的):15/20 个标的当前最优跨所 gross spread 非负;6/20 个达到 >=5bps;5/20 个达到 >=10bps;1/20 个达到 >=20bps。PEPE: Gate 买 / Hyperliquid 卖,gross 约 21.5bpsNEAR: Gate 买 / Hyperliquid 卖,gross 约 13.6bpsWLD: Gate 买 / Hyperliquid 卖,gross 约 13.4bpsENA: Gate 买 / Hyperliquid 卖,gross 约 11.4bpsTRUMP: Binance 买 / Gate 卖,gross 约 10.5bps15bps 左右量级;这意味着不是所有 gross spread 都是 alpha,很多只是“看起来有肉、净后没肉”。这正是这份 repo 比普通价差报警器更有用的地方。当前 momentum 素材池里,跨所方向已经有 majors 的 maker/taker BBO 壳、same-expiry basis、funding/basis carry 等线,但 small-cap perp 的 same-asset cross-venue dislocation 还不够系统,尤其缺:
这份 repo 正好补这块。它不是又一个“价差搬砖教程”,而是把 desk 真会踩到的坑——陈旧 quote、假同名、1000x 合约、薄书、过期机会——直接写进了 signal layer。
data_age_ms <= 2000persistence >= 1000ms10s/30s/60s)+ spread re-cross exit可开仓 gross 与 可平仓 net1m/3m/5m 的 crypto perp 里,真正可迁移的不是“跨所都有机会”,而是 小币 / alias-heavy 标的在三所顶级盘口偶发失配后,是否存在足以覆盖 round-trip 成本的收敛 alpha。250~500ms 记录最优 buy_ask 与 sell_bid;gross_spread_bps > fee_budget_bps + slippage_budget_bps + entry_buffer 时记为候选;data_age_ms <= 2000、min(book_size_usd) >= threshold、confidence >= 0.3、persistence >= 1000ms 的样本。fapi/v1/ticker/bookTicker 或 websocket @bookTickerfutures.book_ticker / REST tickersl2Book + /infobuy ask / sell bid,出场按下一次 spread <= exit_threshold 或时间止损时的反向 BBO;PEPE / WLD / NEAR / ENA / TRUMP 这类快检里出现 gross spread 的标的;10s / 30s / 60s / 180s 四档 holding window,再看 1m/3m/5m 聚合后是否还留边。entry gross/net/confidence/data_age/sizes 与 exit re-cross timemaker/maker、taker/maker、taker/takerPEPE/BONK/FLOKI)vs mid-cap(WLD/ENA/ARB/NEAR)>=10bps gross 只在极薄书才出现,就把它降级成 execution-viability gate,不要硬说是稳定 raw alphaMIN_GROSS_SPREAD_BPS=10, MIN_NET_SPREAD_BPS=5)与 config/settings.py 里的默认值(50bps / 100bps)并不一致,说明项目还在快速演化,参数可信度不能照单全收。estimated_fees 和 slippage 都是粗估,对 small caps 来说真实冲击成本可能显著更高;如果没有更细的盘口深度与成交回放,净值预估会偏乐观。https://github.com/VadymManiuk/spreadfinderhttps://github.com/VadymManiuk/spreadfinder/blob/main/README.mdhttps://github.com/VadymManiuk/spreadfinder/blob/main/spread_engine/calculator.pyhttps://github.com/VadymManiuk/spreadfinder/blob/main/spread_engine/confidence.pyhttps://github.com/VadymManiuk/spreadfinder/blob/main/filters/opportunity_filters.pyhttps://github.com/VadymManiuk/spreadfinder/tree/main/exchange_adaptershttps://github.com/VadymManiuk/spreadfinder/blob/main/symbol_mapper/ticker_aliases.pybb62a570d8262fd437614c924a3e583cfc43a54e (2026-04-11 15:46:50 +0300)bookTicker、Gate futures tickers、Hyperliquid l2Book / metaAndAssetCtxs,2026-04-11 UTC 当次快照,重叠标的 20 个,用于验证三所同资产 perp BBO 可得性与 gross spread 分布;不代表历史回测结果