源文件:research/quant_digests/2026-04-16_0837_crossvenue-perpperp-spread-hysteresis-shell.md
README.md + spread_strategy.py + GitHub API metadata)+ Bybit/Binance public ticker live sanity probe(SOLUSDT, 0.5s 轮询,120 样本)Binance-Bybit spread 偏离阈值后,做多便宜腿/做空昂贵腿,等价差收敛后双腿平仓一句话:base alpha 不是“自动下单”本身,而是“同一标的跨 venue perp 报价偏离后的回归”。
在 spread_strategy.py 里写得很直白:
spread_percent = ((binance_price - bybit_price) / bybit_price) * 100spread > entry_th:LONG Bybit / SHORT Binancespread < -entry_th:SHORT Bybit / LONG Binance这就是标准的 same-underlier cross-venue relative-value / stat-arb 主体,不是 filter/overlay。
kmrlab)created_at=2025-08-27)algo-arbitrage)这份材料的价值不在“又一个跨所套利故事”,而在于它把完整策略骨架写全了:
in_position + position_type);0.1);CHECK_INTERVAL=1s,天然兼容 1m/3m/5m/15m 聚合评估)。same-underlier cross-venue perp spread mean reversionabs(spread) >= MIN_SPREAD_PERCENT 才开仓qty >= 0.1)POSITION_SIZE_USD = 500MIN_SPREAD_PERCENT = 0.02(代码按百分比计算,即 2 bps)abs(spread) <= 0.1(即 10 bps)1s对 SOLUSDT 做 0.5s × 120 样本快检(Bybit/Binance 公共 ticker):
|spread| 中位数约 1.17 bps|spread| >= 2 bps 占比约 21.7%|spread| >= 5 bps / >=10 bps 占比均 0%(本样本)这直接暴露一个可交易性问题:当前 exit 阈值(10 bps)大于 entry 阈值(2 bps),hysteresis 方向反了。若按原逻辑直接跑,极易出现“进场后很快触发平仓判定”或策略行为异常,先别急着实盘。
1m/3m/5m/15m 的关系1m/3m:最适合做 spread 事件密度、持仓时长、滑点冲击的 first verdict;5m/15m:更适合做“阈值是否足够覆盖成本”的稳健性层(尤其 taker 场景);v5/market/tickersfapi/v1/ticker/price(最好再补 best bid/ask)BTCUSDT / ETHUSDT / SOLUSDT1m/3m/5m/15mentry_abs >= 4~6 bpsexit_abs <= 1~2 bpsmax_hold = 3~10 min 强平entry->exit 收敛完成率与中位持有时长entry > exit(例如 5 bps 入、1.5 bps 出)。4 / 8 / 12 bps 总成本三档,检查策略是否仍为正 EV。BTC/ETH/SOL,再扩到高波动 alt,比较收敛率和腿风险。max_hold、one-leg timeout、forced flatten 三个硬约束。---
kmrlab). *algo-arbitrage* (GitHub repo, 2025).<https://github.com/kmrlab/algo-arbitrage>
spread_strategy.py<https://raw.githubusercontent.com/kmrlab/algo-arbitrage/main/spread_strategy.py>
README.md<https://raw.githubusercontent.com/kmrlab/algo-arbitrage/main/README.md>