← 返回 Quant Digests · 站点首页

别把这份 2025 repo 只读成 ML basis demo:对 short-cycle desk,更该先测的是「spot-perp basis state × funding-pressure × delta-neutral flip」完整 raw alpha

更新时间:2026-04-04 15:29 UTC 研究时间:2026-04-04 15:25 UTC 类型:2025 GitHub repo source audit(`main.py` + `robbie/main.py` + `robbie/research.ipynb`)+ 2025 arXiv 摘要 grounding 主题标签:raw-alpha/basis/spot-perp/delta-neutral/xgboost/lstm/ensemble/funding-pressure/basis-zscore/vol-targeting/time-stop/drawdown-stop/btc/eth/binance/1h/15m/5m/3m/1m/repo/paper/public-data/cost/risk 证据类型:开源代码仓 + 训练 notebook + arXiv 摘要

源文件:research/quant_digests/2026-04-04_1525_ml-basis-state-ensemble-alpha.md

1. 这次看了什么

这轮我故意没再补一篇“又一个 pairs / copula / OFI 变体”,而是收一条不同家族的 raw alpha

我这次要 intake 的不是“机器学习能不能统治 basis 交易”这种空话,而是 repo 里已经写出来的一条完整可下场的 delta-neutral basis shell

> 用 basis / funding / cross-asset 状态去预测下一段 basis 会扩大还是收敛,然后切换 long basisshort basis 书。

这点很关键,因为它符合这轮优先级里最值钱的那档: 可独立复现、可直接落地为完整策略(entry / exit / sizing / risk / cost)的 raw alpha。

2. 这条东西的 base alpha 到底是什么

先把 base alpha 说清楚:

> base alpha = spot-perp basis 的短期状态依赖型可预测性。

不是:

而是:

  1. 先把当前市场状态压成一组特征:
  1. 预测未来 6hbasis_change
  2. 若预测 basis 上行,开 long basislong perp + short spot
  3. 若预测 basis 下行,开 short basisshort perp + long spot
  4. 用 time stop / drawdown stop / conviction threshold 把它收成完整策略。

所以这不是 filter,也不是 overlay 伪装货;它本身就是一条delta-neutral raw alpha

3. 为什么这条分支现在值得补进素材池

因为它补的是我们当前库里相对少的一块:

翻成人话:

> 这条线在问的不是“basis 长期有没有回归”,而是“在这个状态下,接下来几小时的 basis 更可能扩还是收”。

这比“正 funding 就一直收”更像交易策略,比“basis 偏太多就反手”也更完整,因为它已经明确把:

全塞进代码里了。

如果这条壳跑得动,它会自然长出两条 desk 很实用的旁支:

  1. basis state routing:什么状态下做 widening,什么状态下做 convergence;
  2. execution-aware veto:同一个预测,在 1m/3m/5m/15m 哪个执行层最不容易被成本吃掉。

4. repo 里真正值钱的硬信息

4.1 不是一个 feature toy,而是一条完整策略壳

robbie/main.py 里的 richer 版本,已经把策略骨架写得很完整:

这意味着它不是“只有 alpha 没有壳”,而是已经天然适合被 desk 拆成:

4.2 feature set 对 short-cycle desk 很友好

training notebook 里定义了 26 个特征,最重要的几类是:

#### A. basis 本体

#### B. funding / carry pressure

#### C. cross-asset context

#### D. price / vol / volume state

这组特征的好处是:

> 绝大部分都能直接映射到 15m/5m 版本,不需要私有数据,也不需要 order-book depth 才能开工。

4.3 notebook 至少给了“作者打算怎么验”的门槛

robbie/research.ipynb 里没有保存最终输出,但它把作者想要满足的训练门槛写得很明确:

这些断言不等于已经被证明达成,但至少说明作者 intended benchmark 是:

> 如果 6h basis 方向准确率没有超过 52%,这条线在他自己的标准里都不算过关。

对我们来说,这已经足够做第一轮 replication gate。

5. 这条东西最重要的 source-audit 发现

5.1 repo 根目录版本和 robbie/ 版本不一致,不能盲跑

这是我这轮最在意的点。

根目录 main.py 是一个简化版 RandomForestClassifier 策略;而 robbie/main.py 是更完整的 XGB + LSTM ensemble 版本。两者不只是复杂度不同,连交易方向的实现都不一致

也就是说:

> 根目录版和 notebook / richer main 的 target 定义并不完全同向,直接抄根目录版有信号符号写反的风险。

这件事很重要,因为它决定了这份 repo 不能被当成“开箱即用结论”,而应被读成:

5.2 funding 特征在数据不可得时会被置零

robbie/main.py 里如果 funding data 不可用,会把以下特征全置为 0.0

这意味着:

> 如果你复现时没把 funding 历史真正接进来,策略会从“basis + funding state alpha”退化成“basis-only alpha”,结果不是同一条东西。

5.3 sizing 规则对短周期移植时需要降杠杆

源码的 sizing 是:

这个壳对 1h 也许还能接受,但如果直接搬到 15m / 5m,很容易太激进。

所以这条线虽然是完整策略,但在 short-cycle desk 上,第一件事不是卷模型,而是先缩 sizing。

6. 对 1m / 3m / 5m / 15m 的最小可复现实验怎么做

6.1 数据源

全部公开可得:

6.2 第一版频率建议

我不建议一上来就冲 1m 训练。

更合适的是:

把原 repo 的 1h 时钟改写成:

6.3 baseline 要怎么设

第一版至少对比三条:

  1. plain basis z-score MR
  1. funding-only sign rule
  1. repo 版 basis-state model

6.4 交易壳建议

先用最朴素的:

7. 为什么它比继续补传统 basis / carry 更值得

因为这次补的是一个更一般化的母壳:

> 不是“basis 大了就回”,也不是“funding 正了就拿”,而是把 basis 交易写成可分类的状态空间问题。

这会同时服务两类后续研发:

  1. raw alpha 主线:basis widening / narrowing 的双向交易;
  2. shared gate 支线:把 basis_state 当成别的策略的 veto / sizing router。

而且它跟现在 desk 的 1m/3m/5m/15m 节奏是兼容的:

8. 下一步怎么测

Step 1:先做 15m 的无 LSTM 最小复刻

不要一开始就复刻整个 ensemble。

先做:

先回答一个最硬的问题:

> 在成本后,这组状态变量能不能把 future basis move 的方向准确率推到 >52% 左右?

Step 2:做 state bucket 归因

重点看四个桶:

想看清楚:

这一步会决定你最后是做单一 basis MR,还是做双向 state router。

Step 3:把 robbie/ 版和根目录版做 sign audit

这一步必须做,不然后面全是脏结论。

至少确认:

Step 4:单独测 funding 特征的增量价值

做两个模型:

如果 funding 版没有稳定增量,那就别把策略复杂化。

Step 5:执行层再下钻到 5m / 1m

只有当 15m discovery 层先过关,再做:

9. 我对这条题的结论

如果把 repo 当成“已验证 ML alpha”,那是高估; 但如果把它当成 一条已经把 signal / sizing / risk / cost 写成完整骨架的 basis raw alpha 候选,它是合格的,而且值得进研究池。

最重要的是:

  1. base alpha 清楚:spot-perp basis future change 的可预测性;
  2. 可以独立复现:公开数据足够;
  3. 可以直接落地成完整策略:源码已经把 entry/exit/sizing/risk/cost 写出来;
  4. 和当前短周期 desk 直接相关:先做 15m discovery + 5m execution 非常自然;
  5. 有明确下一步:先做 sign audit,再做 basis-only vs basis+funding 的 15m 最小复刻。

我会把这条东西定义成:

> “basis state classification / regression” 这条 delta-neutral raw alpha 母壳。

它不是当前素材池里最硬的一条,但足够新、足够完整、足够能快速验证,值得收。

10. 参考来源

  1. Rbach24 / Robbie Walmsley (2025). _CryptoMeanBasisReversionStrat_. GitHub.
  2. Repo:<https://github.com/Rbach24/CryptoMeanBasisReversionStrat>

  3. Raw source – simplified root version
  4. <https://raw.githubusercontent.com/Rbach24/CryptoMeanBasisReversionStrat/main/main.py>

  5. Raw source – richer strategy version
  6. <https://github.com/Rbach24/CryptoMeanBasisReversionStrat/blob/main/robbie/main.py>

  7. Training notebook
  8. <https://github.com/Rbach24/CryptoMeanBasisReversionStrat/blob/main/robbie/research.ipynb>

  9. Park, H., Choi, M., & Lim, A. E. B. (2025). _Designing funding rates for perpetual futures in cryptocurrency markets_. arXiv.
  10. DOI:<https://doi.org/10.48550/arXiv.2506.08573> URL:<https://arxiv.org/abs/2506.08573>

11. 文件与页面