源文件:research/quant_digests/2026-04-07_1902_session-vwap-sigma-fade-alpha.md
README.md + shared_strategies/spot/strategies.py + backtest/backtester.py + repo metadata)close - session_vwap 的滚动 σ 偏离在液态币上存在可交易的 fade 机会。看的是 richkuo/go-trader(2026-02 创建,2026-04-07 仍在更新,约 77 stars)里被埋在“大而全交易 bot”下面的一条小策略:vwap_reversion。源码把它写得很直接:按日重置 VWAP,默认 entry_std=1.5、exit_std=0.2,当价格跌破 VWAP - 1.5σ 时给多头信号,涨破 VWAP + 0.2σ 时给空头/平多信号;配套 backtester 默认吃 10 bps 手续费 + 5 bps 滑点,并挂着组合 kill switch 与策略冷却。
1m/3m/5m/15m 的原始 alpha 壳。entry_std=1.5 / exit_std=0.2 这个默认壳,本质是在赌:远离 VWAP 的瞬时失衡,常比趋势延续更短命;先用远端入场、近中心出场,把盈亏比交给回归距离,而不是赌大趋势。0.1% commission + 0.05% slippage;这很粗,但反而适合 desk 做第一轮 friction ladder:如果在这种偏严口径下都站不住,就别急着往 live 走。这条线值得收进 momentum,因为它不是“解释型 overlay”,而是一条能独立下单的单币 raw alpha:
1m/3m/5m/15m,尤其适合 BTC/ETH/SOL 这种高流动标的;session VWAP deviation mean reversionATR/realized vol 过高 veto、news/event veto、low-liquidity slot veto研究假设: 对 liquid crypto,价格一旦偏离当日 VWAP 达到 1.5σ~2.0σ,短时间内更容易回到 VWAP 附近,而不是继续无条件漂移。
可计算定义:
1m 原始 K 线先算 session_vwap_t = cumsum(tp*vol) / cumsum(vol),UTC 日切重置;sigma_t = rolling_std(close - session_vwap, 20);close < vwap - k*sigma;Short:close > vwap + k*sigma;touch vwap、touch 0.2σ 内带、8 bar time stop。最小回测切口:
BTCUSDT / ETHUSDT / SOLUSDT perp 或 spot1m -> 3m/5m/15m 聚合;但 VWAP 必须先用 1m 原始数据算,不要直接拿 15m bar 算假 VWAP2024-01-01 ~ 2026-04-074 / 8 / 12 / 20 bps friction ladder最该先看:
<= 8 bars 是否占大头)。1h,而 desk 想测的是 1m/3m/5m/15m;信号思想能迁,但参数不能直接照抄。sell_cross 明确拆成 short entry,而不只是平多。https://github.com/richkuo/go-traderhttps://github.com/richkuo/go-trader/blob/main/README.mdshared_strategies/spot/strategies.py.https://github.com/richkuo/go-trader/blob/main/shared_strategies/spot/strategies.pybacktest/backtester.py.https://github.com/richkuo/go-trader/blob/main/backtest/backtester.py