源文件:research/quant_digests/2026-04-14_2233_crossvenue-momentumdivergence-catchup-shell.md
README.md + crypto_alpha/edges/cross_exchange_divergence.py + crypto_alpha/backtest/crypto_runner.py + crypto_alpha/config.py)+ Binance Spot / USDⓈ-M 5m/15m public-data portability probe> base alpha = venue / leg divergence reversion with short-horizon catch-up.
翻成人话:
所以这轮主题应该归类成:
raw alpharelative-value / divergence / catch-upmahimn01trading-algo2025-12-24T05:15:34Z2026-04-14T20:13:19Z2026-04-14T20:21:46ZREADME.mdcrypto_alpha/edges/cross_exchange_divergence.pycrypto_alpha/backtest/crypto_runner.pycrypto_alpha/config.pyreports/artifacts/quant_digests/2026-04-14_ced_portability_probe.pyreports/artifacts/quant_digests/ced_portability_probe_summary_2026-04-14.csvreports/artifacts/quant_digests/ced_portability_probe_signals_2026-04-14.csvREADME 直接写了 crypto 这条线的结果:
+0.277+0.72+0.40+0.33这点很重要,因为它说明: > CED 不是 README 里凑数的配角,而是 repo 作者自己回测里“少数没死掉”的 edge 之一。
也就是说,哪怕最后 desk 不直接照搬,它也值得做 intake。
cross_exchange_divergence.py 给出的其实是一条很清楚的完整策略壳这条 edge 的信号逻辑不复杂,但很可执行:
perp / spot 或 primary / alt venue 的价格比率;默认参数:
lookback = 72entry_z = 1.8exit_z = 0.5翻成人话: > 腿间价差偏得够远,才值得上。
源码还额外看了一个很 desk-friendly 的东西:
momentum_window = 12momentum_divergence_threshold = 0.02这层意思不是“再叠一个指标”,而是: > 如果一条腿最近明显跑得比另一条腿快,那它更像 overextended;慢腿更像 catch-up 候选。
repo 没有把信号写成纯价差教科书,而是加了:
0.5 ~ 1.5 的权重翻成人话: > 谁那边更活跃,谁那边的偏离更值得认真看。
这是这轮最值得 desk 明确记住的点:
get_vote() 里输出的是 LONG / SHORT / STRONG_LONG / STRONG_SHORT;这使它跟很多“spot-perp basis carry”不一样: > 它不是收租壳,而是一个 reference-driven directional catch-up / fade 壳。
我这轮把“是否可直接落地完整策略”记成 是,原因是 repo 不只给了一个 signal 函数,而是把整条链补齐了:
在 edge 里写死了:
abs(z) > 1.8 才开;abs(z) < 0.5 平;crypto_runner.py 和 controller config 里给了完整壳:
max_position_pct = 0.30max_gross_exposure = 3.0max_leverage = 5.0maintenance_margin_ratio = 0.03max_drawdown = 0.25daily_loss_limit = 0.05repo runner 明确采用:
2 bps5 bps5 bps也就是说,这不是“概念能看懂但不能落地”的材料; 它已经是 完整策略壳,只是还没证明一定适合我们当前 Binance short-cycle lane。
如果只看 perp/spot ratio,很容易把它误读成旧的 basis mean reversion。 但我觉得这轮更值得留下来的,是它和传统 basis shell 的区别:
所以 desk 化后,我会把它记成:
> divergence × catch-up,而不是简单的 basis z-score fade。
api/v3/klines + Binance USDⓈ-M fapi/v1/klines5m / 15mBTCUSDT / ETHUSDT / SOLUSDT1000 根 bar|z| < 0.5 或反向信号4 / 8 bps round-trip这不是 production backtest,只是回答一句: > repo 这条 edge,搬到我们最容易拿到的同 venue spot/perp majors 上,先长什么样?
+0.40这说明它至少不是纯故事。 但要注意:
run_9edge_backtest.py 下载器默认 1h timeframe 强相关;config.py 又把 live-ish bar_size 写成了 5m。所以更准确的解读是: > repo 证明了这条 edge 在其内部宇宙里有生存力,但“5m 直接可迁移”仍然需要我们自己验。
15m在我这轮 public probe 里,最好的是:
15m53 笔 trade+3.94 bps / trade47.2%2.57 bars(大约 38 分钟)翻成人话: > 它不是高胜率壳,而是低命中但单笔盈亏比还凑合的 pocket。
15m 一扣成本就几乎归零同一个 BTC 15m pocket:
4 bps round-trip 后,avg net 约 -0.06 bps8 bps 后,avg net 约 -4.06 bps也就是说: > 它离“可交易”不是十万八千里,但还没过线。
15m 上:
-18.28 bps / trade-15.62 bps / trade5m 上三者更是全负:
-5.50 bps-12.84 bps-4.25 bps这点很关键,因为它告诉我们: > 如果只在 Binance same-venue spot/perp majors 上抄这条 edge,大概率是在做一条过紧、过薄、被费用吃掉的假迁移。
我额外对比了:
z-score onlyz-score + momentum divergence combo结果几乎一样。 这说明: > 在 Binance same-venue spot/perp majors 这组数据里,真正有信号负载的仍是 ratio 偏离;ROC 背离没有明显额外信息增益。
这反而是个好线索:
如果只看本轮 Binance majors first verdict,这条线当然还不够上 production。 但它仍值得进池,原因有三层:
我们已经积累了不少:
而这条 CED 更像:
也就是它卡在: > “不是纯配对,不是纯 carry,也不是纯单边 breakout”的中间地带。
这轮负结果本身也很值钱,因为它帮我们少走弯路:
源码已经写清了:
所以它适合做下一步复现,不只是做阅读笔记。
我的判断是:
> mahimn01/trading-algo 里最值得单独 intake 的 crypto branch 之一,就是 CED 这条 venue/leg divergence × lagging-leg catch-up raw alpha;但如果把它机械迁移到 Binance same-venue spot/perp majors,当前只有 BTC 15m 勉强接近成本线,ETH / SOL 和全部 5m 版本都明显不过线。
更短一点说:
> alpha 本体是对的,但当前 lane 选错了。
不是这条结构没价值, 而是:
我会把下一轮明确压成 5 个最小实验,而不是继续在 same-venue majors 上硬抠:
优先顺序:
核心不是“多接几个数据源”,而是: > 要让两条腿真的有不同的信息速度和不同的用户群。
15m 作为主研究 lane,别再优先压 5m当前 first verdict 很清楚:
5m 全面太薄;15m 至少 BTC 还能看到接近成本线的 gross。所以更合理的 desk 路径是: > 15m signal -> 1m/5m execution,而不是直接把信号也做成 5m。
下一轮建议只在以下场景才允许 CED 开仓:
N bar realized vol / volume 突然抬升这样才能真正测到“信息传播滞后”,而不是平静时段里的小抖动。
不要继续把所有东西揉成一个黑盒:
因为本轮结果已经暗示:
如果下一轮某个 pocket gross 只有 4~8 bps 这个量级, 那就必须更认真地区分:
不然很容易把一个“刚好能活”的 edge 误杀,或者把一个“其实死了”的 edge 错判成可行。
mahimn01 (2026), trading-algo. GitHub repository.reports/artifacts/quant_digests/2026-04-14_ced_portability_probe.pyreports/artifacts/quant_digests/ced_portability_probe_summary_2026-04-14.csvreports/artifacts/quant_digests/ced_portability_probe_signals_2026-04-14.csv