源文件:research/quant_digests/2026-04-08_1358_normalized-cluster-deviation-snapback-alpha.md
README.md + src/strategies/stocks/mean_reversion_cluster.py)+ Binance Spot public 15m portability probe看的是 ThewindMom/151-trading-strategies 里 Strategy 3.9: Mean-Reversion (Cluster):源码默认把一组相关资产的价格矩阵求 cluster_mean,再对每个资产的 asset - cluster_mean 做 z-score,entry_zscore=2.0 反向开仓、exit_zscore=0.5 平仓。它表面上是股票 sector API,但对 crypto desk 真正有价值的不是“原样抄 price-level”,而是把它改写成归一化路径离差的短周期 raw alpha。
15m 数据对 ETH/BNB/SOL/XRP/DOGE 做最小 portability probe。lookback=60,对每个资产的离差序列算均值/标准差,z>2 做空、z<-2 做多、|z|<0.5 平仓。这个壳已经足够完整,缺的是 crypto 版归一化与成本层。DOGE 和 ETH 的价格单位天生不可比;更合理的是在滚动窗口里先转成累计 log-return 路径,再比较相对 cluster 的偏离。1000 根 15m 公共 bar 做了一个轻量 probe:若用 24 根窗口、每根都做“long 最低 z / short 最高 z”,下一根均值约 +0.611 bps/trade(t≈0.965, n=974);窗口拉到 48 根时,下一根约 +0.698 bps/trade(t≈1.037, n=950)。4 根后,24 根窗口变成 -0.277 bps/trade,48 根窗口变成 -0.425 bps/trade;说明这更像很快收口的 snapback,不是能慢慢抱的 swing MR。24 根窗口下,要求 |z|>1 只剩 77 笔,均值约 +0.326 bps/trade;对 desk 来说,先做宽进场 + 小仓位 + 快 time-stop,比追求稀疏大离差更像第一版。这条线直接补的是 raw alpha 素材池,而且属于我们现在缺口更大的 mean reversion / relative value / stat-arb 家族,不是又一个 breakout/filter。相比只做双腿 pairs,它把对象从“单对”放宽到“相关簇里的离群点”,更适合 crypto 里经常一起跑、偶尔单腿失衡的板块(L1、exchange token、meme、AI、DeFi)。更重要的是,刚才的 probe 已经给出一个 desk 级判断:如果要做,优先做 1-bar/2-bar 的快收口,不要默认 1h 级抱仓。
|z| 和簇内波动缩仓;单簇名义敞口封顶;双腿尽量 maker-ish 或至少同步成交;默认 1~2 根 time-stop24/48 根里把 log-return 累加成归一化路径;spread_i = path_i - mean(path_cluster);z_i = (spread_i[-1] - mean(spread_i)) / std(spread_i);做 long argmin(z)、short argmax(z),或仅在 |z|>0.5/1.0 时入场。3~5 个主题簇(如 ETH/BNB/SOL/AVAX/ADA),基线跑 15m,再下钻到 5m/3m。1 bar 最强、4 bar 明显转负,就应把它当快收口 alpha,而不是中周期配对。https://github.com/ThewindMom/151-trading-strategieshttps://github.com/ThewindMom/151-trading-strategies/blob/main/src/strategies/stocks/mean_reversion_cluster.pylookback=60、entry_zscore=2.0、exit_zscore=0.5,对每个资产计算 spread = asset - cluster_mean 的当前 z-score,并给出反向信号。