源文件:research/quant_digests/2026-04-09_2254_btceth-betaneutral-costaware-pairs-shell.md
这次看的是 Bauch0430/crypto-pairs-trading-btc-eth。我重点读了 README.md、src/02_statistical_tests.py、src/03_strategy_engine.py、src/04_backtester.py、src/04b_backtester_beta.py。这不是“再讲一遍 pairs 原理”的仓库,而是一份很适合 desk 拿来做 成本诚实化 + sizing 对照 的完整 BTC/ETH spread shell。
-791.6 USD 翻到 +67.0 USD。-791.6 USD,beta-neutral 版本约 +67.0 USD;源码还能对上 β 滚动估计、fee/slippage/funding 计入方式和状态机规则。02_statistical_tests.py 用 1h 数据生成 rolling_beta、spread、adf_pvalue、median_half_life;03_strategy_engine.py 只在 |z| > 2.0 且 adf_pvalue < 0.05 时开仓,|z| < 0.5 止盈,|z| > 3.5 止损,并在 持仓时间 > 3 × median_half_life 时强制 time-stop。10,000 USD,ETH 腿按滚动 β 调整,不再硬做双腿各 5,000 USD。这非常适合 BTC/ETH、BTC/SOL 这类高相关但 β 不稳定的 crypto pair。04b_backtester_beta.py 里每腿 fee 0.06%、slippage 0.02%,而且 funding 直接并入净收益;README 汇总显示 beta-neutral 版本手续费仍有约 -96.48 USD,funding 约 ~-27 USD,说明这条线不是“成本忽略后才成立”的幻觉。hedge ratio / notional mapping / friction,不是先继续炼 signal。当前 desk 已经有不少 pairs / relative-value intake,但很多还停在“spread 有没有回归”这一步。这份 repo 的价值是把一个可独立复现的 raw alpha 再往前推半步:
5m / 15m 的 BTC/ETH、BTC/SOL、ETH/SOL spread 壳,而不是只在 1h 样本里做漂亮图。所以这轮不是为了“再补一篇 pairs 入门”,而是为了补一个 能直接提升 pairs admission / sizing / cost honesty 的可复现组件。
adf_pvalue < 0.05 且 spread 仍有可交易 z-score 偏离|z| > 2.0 才开,|z| < 0.5 退出,|z| > 3.5 强制止损,持仓超过 3 × median_half_life 强制平仓β hedge ratio、beta-neutral notional mapping、每腿 0.06% fee + 0.02% slippage、funding 并入净收益研究假设: 在 crypto pairs 上,short-cycle 成败经常不是由 spread signal 本身决定,而是由 dollar-neutral vs beta-neutral sizing 与成本记账方式决定。
最小实验:
BTC/ETH,用 Binance 或 Bybit 公共 15m 数据替代 repo 的 1h;β、ADF、spread z-score、entry=2.0 / tp=0.5 / sl=3.5、time-stop=3×median_half_life;β 调整;16 bps 起步,再单独记 funding。先看两项指标:
bps/trade;1h,不是直接为 5m / 15m 设计;它更像 结构和记账壳,不是现成可下场的 ultra-short strategy。β 漂移、手续费、funding、借贷与最小下单量都会更伤。ENTRY_Z=2.0 这组参数在所有 venue/周期都稳。5m,最先该检查的不是 Sharpe,而是 trade density × friction 是否已经把 alpha 吃光。https://github.com/Bauch0430/crypto-pairs-trading-btc-ethsrc/02_statistical_tests.pysrc/03_strategy_engine.pysrc/04_backtester.pysrc/04b_backtester_beta.py