源文件:research/quant_digests/2026-04-22_0458_feeaware-spot-xvenue-gap-shell.md
README.md + arbitrage/pure_arb_simulator.py)+ public live quote sanity probe(Binance Spot / Bitstamp BTC,约 40s)这次主看的是 Atrone / stat_arb_crypto。这个 repo 里其实混了几条线:一条是带 ESRNN 预测和 funding 条件的方向分支,另一条更干净、也更适合 desk intake 的,是 arbitrage/pure_arb_simulator.py 里的 same-symbol cross-venue gap capture。
它最值得保留的地方,不是“跨所套利”这四个字,而是把一条很老但仍然重要的 raw alpha 壳写成了可检查的流程:
> arbitrage_threshold 才记为可做机会;A买/B卖 和 B买/A卖 两边。翻成人话:不是看到价差就兴奋,而是先问“扣完摩擦后还剩几口肉”。
这篇东西最值钱的不是“又一次提醒你跨所会有价差”,而是:
> same-symbol cross-venue gap 当然是 raw alpha,但在今天的主流 BTC 现货里,taker 化通常不够厚;它更像一条必须依赖 inventory、maker-first、超低延迟和严成本门槛的 deployment shell。
核心证据来自 pure_arb_simulator.py 的逻辑,而不是 README 口号:
fetch_data(...):从交易所拉同标的 OHLCV / close;estimate_slippage(...):对买卖两边分别估计冲击;get_exchange_fees(...):显式取双边 fee;simulate_arbitrage(...):A买/B卖 与 B买/A卖;adjusted_buy_price = price * (1 + slippage)、adjusted_sell_price = price * (1 - slippage) 先把“理论价差”压成“成交后价差”;net_profit_usd;net_profit_usd > arbitrage_threshold 才记为一笔机会。也就是说,这个 repo 至少把 alpha 本体 和 摩擦现实 放在同一个判定口径里,而不是只看裸 spread。
先说清边界:
这篇东西的 base alpha 是:
> 同一标的跨 venue 的瞬时错误定价 / 价差偏离,会在足够短时间内向统一价格回归。
其余这些都只是把它从“纸面套利”变成“可落地系统”的必要二层组件:
所以它符合本轮优先级:这是 raw alpha,而且能自然写成完整策略壳。
我额外做了一个很轻的 live sanity check:
BTCBTCUSDT vs Bitstamp BTCUSD5s 采 1 次,共 8 次,近似看“买最便宜、卖最贵”的即时可执行 gap2.18 ~ 2.98 bps2.45 bps这组数的含义很直接:
> 主流 BTC 现货的表面 gap 确实存在,但肉非常薄。
如果你用普通 taker×2 去打,别说再加提现、转账、库存占用和 API 延迟,单看显性手续费,很多时候就已经把这 2~3 bps 吃没了。
这条边不是没有,但默认不该被写成“稳定无风险套利”。对 desk 更诚实的说法是:
1m/3m,其次才是 5m这条 edge 天生更接近 event-time / top-of-book,不是慢 bar 因子。 最小实验应是:
1s~5s 级 quote 采样;1m 的 dislocation count / max gap / dwell time;1m/3m/5m 上是否还有可交易残留,而不是反过来先做 15m K 线。当前 probe 已经很说明问题:如果公开可见 gap 只剩 2~3 bps,那这条边更像:
而不是“看到 gap 就两边 taker”。
1s 级 bid/ask,而不是 close;连续采 BTC/ETH/SOL,先跑 3~7d。USD / USDT 混在一起直接比;先补稳定币偏离修正。gross gap -> minus fee -> minus half-spread -> minus hedge delay,别直接谈年化。taker/taker、maker/taker、inventory-funded maker/taker,看哪一档才可能过线。BTC 太薄,就把它迁到更分散的 alt / 区域性 venue 组合,而不是继续在最卷的主流对上幻想无脑套利。README.md、arbitrage/pure_arb_simulator.py