源文件:research/quant_digests/2026-04-25_1001_xs-momo-atr-volume-regime-shell.md
README.md + step_1.py + strategy_report.html)24h 相对同篮子更强的币,下一小段更容易继续强;更弱的币,下一小段更容易继续弱。这轮看的是 2026 GitHub 仓 codein123-afk/Cross_Sectonal_Momentum_Cryptocurrency。我主要审了:
README.mdstep_1.pystrategy_report.html这不是单币趋势模板,也不是只讲 filter 的结构笔记,而是一个能从信号一直落到仓位分配的横截面动量多空壳:
24h 收益减去同截面平均收益,得到 relative_momentum;return_6 和 return_12 同时转负,就把该币信号清零离场。翻成人话:它不是“单币追涨”,而是在一个固定币篮子里做 relative-strength rotation,再用波动、量能和大盘状态控制什么时候更值得压仓。
1h 父层做 24h 横截面 winner/loser rotation,ATR/volume 负责确认,daily regime 负责多空倾斜与总风险投放。step_1.py 再把 entry / exit / sizing / lookahead control / rank construction 明确写成可执行代码,而不是只留概念图。这题对当前 desk 有价值,不是因为它“收益看起来夸张”,而是因为它正好补了一个还值得继续积累的方向:cross-sectional / relative-value raw alpha。
相比继续围着单币 breakout/pullback 打转,这个仓更像一个可复用骨架:
1h 排名决定谁值得关注,15m/5m 可再接更便宜的 child execution;所以它不是“又一个学生回测”。它更像一个可直接进复现池的完整 raw-alpha shell。
24h 相对同篮子更强的币继续强、相对更弱的币继续弱1d 的 20D MA 扩散度(7 币里有多少在 MA20 上方)决定当前更偏 bull 还是 bearATR(14) > ATR_baseline(20)volume_ratio > 1>=6/7,short 只允许 rank <=2/7shift(1),下一根 1h open 执行不是复杂 embedding,也不是多层 ensemble,而是:
24h return这类定义非常适合先做 desk 的最小验证。
cross_rank >= 6 才 long,cross_rank <= 2 才 short。说明作者押注的是币与币之间的相对强弱延续,不是“整个市场都在涨所以买一切”。
ATR > ATR_baseline 的作用,是避免在没能量的横盘里硬追相对强弱。这一点对我们很重要:后续复现时,不要把 ATR 误写成主 alpha。
volume_ratio > 1 才允许信号成立。也就是“这个 winner/loser 排名最好有真实资金参与”,不是纯噪声抖出来的 rank。
代码里把 regime 前向填充到 hourly:
regime_scoreregime_score - 1这相当于:bull 市更敢拿 long basket,bear 市更敢拿 short basket。这个设计很适合拆成通用 overlay。
作者对 rolling 特征普遍做了 shift(1),signal 本身又在回测时额外 shift(1),执行收益使用下一根 open-to-open 变化。这个严谨度比很多“README 很热闹”的仓高不少。
如果把这个仓拆成 desk 可复用组件,至少有 4 层:
relative_momentum = return_24 - cross_sectional_mean(return_24)这是本轮真正应该 intake 的核心。
ATR(14) > ATR_baseline(20)volume_ratio > 1这是在回答:“这个横截面 winner/loser 排名,此刻值不值得追?”
regime_score = fraction(coin close > 20D MA)0.5 时收缩总敞口这层可复用于不止一个 alpha,不一定绑定横截面动量。
return_6<0 & return_12<0这意味着 repo 已经不是“只有入场,没出场”的半成品,但出场层还远没到可实盘照抄的程度。
直接记 3 个最有用的数就够了:
+3,869%2.81(README 给的未见样本阶段)-62.4%这些数说明两件事:
我会把它归为:值得 intake 的完整 raw-alpha shell,但不是“直接照抄上线”的候选。
原因很简单:
15m/5m 特征虽然算了,但主策略并没真正用到 child execution所以正确读法不是“这策略有 3869% 收益,快上”。而是:这里有一条能明确写成 alpha + filter + regime + sizing + exit 的相对强弱壳,值得拿来做更诚实的短周期版本。
如果把它压到我们更关心的 15m/5m,最自然的做法不是把所有东西都改成 5m 直接重跑,而是:
也就是说,它更像:
1h 决定买谁 / 卖谁15m/5m 决定怎么更便宜地做进去这很符合我们 desk 目前的研究节奏:先把 alpha 本体说清,再把执行层接上。
6h/12h 同转负的 deterioration exit 很朴素,可能需要 time-stop 或 child-level stop 来控尾部。只做 4 个最小实验,不要一上来大炼丹:
把 7 币扩到 Binance USDⓈ-M 20~30 个高流动币,测试:
10% / 20% / 30%lookback = 6h / 12h / 24h / 48h先看 alpha 本体有没有随 universe 扩大而更稳定。
跑四组:
这样才能知道 ATR/volume 到底是在抬 Sharpe、降 turnover,还是只是 sample-specific 装饰。
1h parent -> 15m/5m child execution test父层只产出候选 long/short basket; 子层再比较:
15m pullback 入场先看 8 / 12 / 20 bps friction ladder 下还能不能活。
跑:
若后者收益提升只是来自净 beta 暴露,那就别误判为“横截面 alpha 更强”。
codein123-afk(未见真实姓名)这仓最值钱的不是“7 币回测赚很多”,而是它把横截面 relative-strength alpha、ATR/volume veto、daily regime sizing 和基础 exit 骨架一次性放进了同一个可复现壳里。