源文件:research/quant_digests/2026-04-10_0322_btcusdt-vwap-ofi-hysteresis-mr-shell.md
README.md + src/signals.py + src/backtest.py + src/data.py)+ Binance USDⓈ-M BTCUSDT 1m 近约 60d portability probeBTCUSDT perp 在分钟级 VWAP / rolling z-score / RSI / 快慢均线 过度偏离后,未来 5~15m 更容易回归;OFI / trade intensity 更像确认与否决层,而不是 alpha 本体先回答 base alpha:这不是 filter,而是单资产、超短周期、可直接下单的 raw alpha——本体就是“分钟级过冲后的均值回归”。
看的是 mengrenman/btcusdt-perp-signals。repo 很克制:只做 BTCUSDT 永续,目标持有期就是 5~15m。源码里把 8 个分钟级信号拼成一个完整壳:z-score MR、Bollinger MR、VWAP MR、OFI、trade intensity、RSI MR、MA cross、volume momentum;默认权重里 VWAP 占 20%,z-score / OFI 各 15%,其余各 10%,再做 EMA(5) 平滑,并用 entry=0.15 / exit=0.05 的 hysteresis 生成仓位。
5m 重平衡。2.3M 笔原始成交做 tick→1m 研究;我再用 Binance 公共 1m perp kline(含 trade_count 与 taker_buy_volume)做近约 60d / 86,400 根 portability probe,看 IC、分桶和成本后壳是否还活着。5m IC 大约在 0.10~0.12,加权 composite 胜过单因子,粗略 break-even transaction cost 约 0.75 bps round-trip,且 1~3m 重平衡优于更慢频率。5m rank-IC 前几名是 RSI MR 0.0585、MA cross 0.0572、VWAP MR 0.0554,composite 约 0.0488;说明能 transfer,但没到“随便 taker 都能吃”的程度。VWAP MR 十分位分桶,最差桶未来 5m 约 -0.43 bps、最好桶约 +0.77 bps;未来 15m 约从 -0.37 bps 拉到 +1.00 bps,方向很干净。1m 改仓,gross 约 +22.1%,但 break-even 只有 0.39 bps round-trip,0.5 bps 成本后已经转负;3m 版只在 0.5 bps 下勉强剩 +1.5%。反而 5m hysteresis shell 最像可交易版本:gross 约 +51.8%,break-even 约 1.09 bps round-trip,0.5 bps 成本后约 +27.9%,1.0 bps 之后仍约 +4.1%。这轮最值钱的点,不是又多了一个“BTC 均值回归”标题,而是给当前素材池补了一块真正面向 1m/3m/5m 的完整 microstructure raw alpha 壳:
15m 趋势框架;VWAP / rolling mean / RSI / short MA 的过度偏离,未来 5~15m 回归OFI、trade intensity、最小成交活跃度、成本门槛EMA(5) 平滑、0.15/0.05 hysteresis、3~5m 重平衡、maker-first 或仅在预估 round-trip < 1bp 时放宽 taker5~15m 会回归,但只有当重平衡频率放慢且交易成本受控时,alpha 才能留下来。composite;若 signal > 0.15 做多、signal < -0.15 做空,|signal| < 0.05 平仓;先比较 1m / 3m / 5m 三种改仓节奏。BTCUSDT Binance USDⓈ-M 1m,先跑近 60~90d,成本阶梯至少测 0.5 / 1.0 / 2.0 bps round-trip。break-even round-trip bps 与 cost-after return;其次看 VWAP MR / composite 的 decile spread 是否还单调。reports/artifacts/literature/btcusdt_perp_signal_ic_2026-04-10.csvreports/artifacts/literature/btcusdt_perp_signal_shell_probe_2026-04-10.csvreports/artifacts/literature/btcusdt_perp_signal_buckets_2026-04-10.csv1m kline 代理,不是完整 L2 / queue / tick-by-tick 成交簿;真实实盘很可能比这里更吃执行。60d 只能说明“没马上死”,还不算严格 OOS。https://github.com/mengrenman/btcusdt-perp-signalshttps://github.com/mengrenman/btcusdt-perp-signalshttps://github.com/mengrenman/btcusdt-perp-signals/blob/main/README.mdhttps://github.com/mengrenman/btcusdt-perp-signals/blob/main/src/signals.pyhttps://github.com/mengrenman/btcusdt-perp-signals/blob/main/src/backtest.pyhttps://github.com/mengrenman/btcusdt-perp-signals/blob/main/src/data.pyhttps://github.com/mengrenman/btcusdt-perp-signals/blob/main/notebooks/03_signal_research.ipynb