源文件:research/quant_digests/2026-04-04_0905_frost-asian-ma-deviation-fade-alpha.md
README.md + src/frost_kraken.py + src/agent.py + test_frost.py)+ Kraken 公共 15m recent-window 最小便携性快检(2026-03-27 21:00 UTC ~ 2026-04-04 09:00 UTC,XBTUSD/ETHUSD)20 x 15m 均线出现“足够大、但又没大到 breakout”的偏离,且波动不过热、斜率不显著趋势化,则反手做均值回复,目标吃掉约 80% 的回归路径。这轮我刻意没有继续补 pairs / funding / OBI,而是补一条最朴素、最能直接落地的单币均值回复壳。
原因很简单:
> 它不是 filter,不是 overlay,而是一条从 entry / exit / risk / timeout 都写出来了的完整 raw alpha。
而且它是今天刚建的新 repo,主题又正好贴着我们默认关心的 15m:
15mXBTUSD / ETHUSD00:00–05:30 UTC 入场对 short-cycle desk 来说,这种材料的价值不在于“复杂”,而在于:
> 它足够清楚,能最快做最小实验。
一句话版:
> base alpha 就是:亚洲时段里的中等幅度偏离,不追,反而做回均线。
更具体一点:
20 根 15m K 线算均线;80% 的偏离距离。所以这轮主题非常明确:
src/frost_kraken.py 的入场骨架非常完整:
15mXBTUSD、ETHUSD00:00–06:00 UTC,但 05:30 UTC 后禁止新开仓MA_PERIOD = 20ATR_PERIOD = 14SELLBUY源码不是“看对了就一直拿”,而是直接写了完整退场逻辑:
80% 的回均线路径MIN_RR = 0.4MAX_CANDLES_HOLD = 16换成人话:
> 这不是纯主观“均值总会回来”,而是一个有止损、有目标、有 time stop 的完整壳。
repo 里 sizing 很简单:
agent.py 默认 volume = 0.001SL / TP / RR / cutoff / session filter这对我们反而是优点:
> 第一版复现不需要先卷仓位优化,先验证 alpha 是否存在即可。
它满足这轮优先级里最重要的几项:
15m 直接贴合这是这轮最值得摘出来的一点。
repo 注释写的是:
MIN_DEVIATION_PIPS = 50 ≈ BTC 偏离 $50MAX_ATR_PIPS = 600 ≈ ATR $600但源码同时又写了:
POINT_MAP["XBTUSD"] = 0.1POINT_MAP["ETHUSD"] = 0.01deviation = (current_price - ma_value) / point这会导致实际口径变成:
point = 0.1)MIN_DEVIATION_PIPS = 50 实际只等于 $5MAX_DEVIATION_PIPS = 1000 实际只等于 $100MAX_ATR_PIPS = 600 实际只等于 $60point = 0.01)MIN_DEVIATION_PIPS = 50 实际只等于 $0.50MAX_DEVIATION_PIPS = 1000 实际只等于 $10MAX_ATR_PIPS = 600 实际只等于 $6也就是说:
> 如果只看 README / 注释,你会以为它在抓“大偏离回归”;但按真实代码口径,它抓的是更细、更容易被手续费吃掉的短偏离。
这点非常关键,因为它直接决定:
15m 上,这条线到底厚不厚?我按 repo 的真实代码口径,做了一个 recent-window 粗快检:
XBTUSD、ETHUSD2026-03-27 21:00 UTC ~ 2026-04-04 09:00 UTC00:00–05:30 UTC 开仓TP / SL / 最长 16 根 出场4 / 8 / 12 bps/root/clawd/jerry/momentum/reports/artifacts/quant_digests/kraken_frost_recent_720bar_probe/summary.jsonXBTUSD 结果:
1668.8%+36.8 bps4bps round-trip 后:-27.2 bps+2.30 bps翻成人话:
> BTC 这条线在最近样本里方向不算错,但厚度太薄,连 4bps round-trip 都扛不住。
ETHUSD 结果:
3979.5%+194.3 bps4bps round-trip 后:+38.3 bps8bps round-trip 后:-117.7 bps+4.98 bps所以 ETH 的结论不是“能上实盘”,而是:
> 如果你真能拿到很低的总成本,这条壳在 ETH 上还值得继续测;但只要成本往上抬一点,edge 很快就没了。
不是“Frost 可直接上线”,而是:
它为什么比继续补一个 filter 更值得?
因为它直接补的是当前素材池里始终应该保留的一类:
> 简单、可独立、可完整落地的单币 raw alpha 壳。
我们最近 intake 了很多:
这些都重要,但如果没有一批像 Frost 这样足够“笨但能跑”的单币 raw alpha,对比就不完整。
这条材料最适合放在:
5m transfer 的基础模板1m / 3m / 5m / 15m 的关系怎么理解15m这是原生战场。
不要硬把它改写成别的东西:
20 x 15m 均线 = 5 小时上下的锚15m 写的16 根 = 最多约 4 小时5m可以迁移,但要保时间长度,不要只保 bar 数。
也就是:
15m 用 20 根均线 ≈ 5 小时5m 第一版更该先试 60 根均线,而不是机械地继续 20 根MAX_CANDLES_HOLD = 16 对应约 4 小时,所以 5m 第一版更该先试 48 根3m / 1m不建议直接把这套原封不动搬下去。
更合理的读法是:
3m / 1m 可把它降级成 HTF mean-reversion context值得。
因为它满足:
15m desk 足够贴近不能。
原因也很明确:
我会把它定位成:
> 中优先级 raw alpha 候选:先做“参数口径纠偏 + 低成本生存线”验证,再决定是独立 alpha,还是降级成 mean-reversion sleeve 的 context shell。
第一优先不是优化,而是修口径。
至少要做两版并排:
目的:
> 看这条 alpha 到底是“真有 edge”,还是靠过紧阈值制造高频假繁荣。
最小网格:
BTC / ETH2 / 4 / 6 / 8 / 10 / 12 bps round-trip1.5x、2x8 / 12 / 16 / 24 根通过条件:
>= 6 bps 成本下还能活15m -> 5m 保时长迁移不要机械搬参数。
先试:
MA: 20@15m → 60@5mmax hold: 16@15m → 48@5m00:00–05:30 UTC如果最后发现:
那就不要硬撑 raw alpha 身份,直接降级成:
15m mean reversion 的 context gate这依然有价值。