← 返回 Quant Digests · 站点首页

别把 live stat-arb 仓库直接搬成 desk alpha:这份 2026 新 repo 更该先拆的是「cointegration spread + 流动性上限 + 日内 throttle」完整骨架

更新时间:2026-03-26 00:30 UTC 研究时间:2026-03-26 00:20 UTC 类型:2026 GitHub 新仓库 + 代码级 source audit + README 披露 live results + Binance Futures 公共 `15m` 最小快检 主题标签:raw-alpha/pairs/stat-arb/relative-value/mean-reversion/cointegration/zscore/beta-hedged/liquidity-cap/daily-throttle/execution-stack/bybit/binance/15m/5m/repo 证据类型:GitHub repo 代码证据 + README live results + 本地公共数据快检

源文件:research/quant_digests/2026-03-26_0020_repo-statarb-live-stack-transfer-check.md

> 先回答 base alpha:这是 raw alpha,而且是很标准的 pairs / stat-arb raw alpha。 repo 最值钱的不是“又一个会做 cointegration 的脚本”,而是它把一条 desk 真会用到的完整链条写全了:选对 → z-score 入场 → beta-hedged sizing → chunked execution → 日内风控 throttle → 失效退出。这比只抄论文 headline 更适合当前阶段,因为 desk 现在缺的不只是“再找一条 spread”,还缺“找到之后怎么诚实地上机”。

1. 这次看了什么

这轮主线不是论文,而是一份非常新的工程仓库:

  1. Anton Velychko (GitHub owner: velychkoanton-stack, repo created 2026-03-20), _statistical_arbitrage_trading_system_V1_
  2. 核心文件:
  1. README 还附了作者自报的 Bybit live results(2025-06 ~ 2025-11)

一句话讲人话:

这也符合当前学习进展:

2. 核心结论

更具体地说:

  1. 选对层:SQL-DB-Coint-upd-6.py 先算 hedge ratio、spread、z-score、ADF、p-value、Hurst。
  2. 信号层:执行脚本里把 |z| >= 2 当作入场门槛,正 z 做 short A / long B,负 z 反过来。
  3. sizing 层:不是机械 1:1,而是 beta-normalized + 5m 成交额 cap + 最低单腿 notional
  4. 风控层:不仅有单对 exit,还有 daily guard
  1. 执行层:不是一把梭,而是双腿 chunked open / chunked close,腿失败时还尝试 unwind。

3. 3 个关键数据点

  1. README 自报 live 成绩不差。 2025-06 到 2025-11,作者写的是:704 笔交易、64.6% 胜率、Profit Factor 1.22、收益 35%、最大回撤 -4.36%
  2. 代码里的入场规则很明确。 执行脚本直接写了:z_score_upper_threshold = 2z_score_lower_threshold = -2;这不是“概念性 stat-arb”,而是已经冻结到生产阈值的规则。
  3. 我用 Binance Futures 公共 15m 数据做的最小 transfer check 很诚实:只筛出 1 对。BTC/ETH/SOL/XRP/ADA/DOGE/LINK/LTC 八个高流动币里,按 repo 近似口径(train ADF < -2.5、p < 0.1、近 200 根最小 quote volume > 10m USDT)只留下 ETHUSDT-SOLUSDT;它在最近 49915m 测试段上,毛收益约 -0.37%,加 repo-like 成本后约 -2.30%,24 笔交易,胜率 45.8%,单笔均值约 -7.7 bps

4. 为什么和当前短周期 desk 有关

4.1 它服务的是哪类 raw alpha

4.2 它补的是素材池哪块缺口

最近我们已经有很多“pair spread 可能会回归”的 intake,但还经常缺三块:

  1. 两腿该怎么配权,不然一腿太胖;
  2. 真实开平仓时怎么避免单腿裸奔;
  3. 当日内状态变坏时怎么 throttle / stop,而不是继续机械开仓。

这份 repo 恰好把这三块都补了,所以它比又一篇只讲 pair selection 的论文更适合这轮当主 digest。

5. 策略拆解(按完整策略卡写)

5.1 方向属性

5.2 基础 alpha

5.3 entry

5.4 exit

repo 里不是只靠一个条件退出,而是多条并行:

  1. z-score 过零previous_zlast_z 异号时平仓;
  2. PnL 到 TP/SL:pair 级盈利/亏损阈值触发;
  3. 时间上限 + 失去 cointegration:持仓超过 HL 对应时长,且 cointegration flag 失效时退出;
  4. 极端 z 风险:达到 stop band 且 cointegration 丢失时退出;
  5. daily guard:日内亏损超阈值时,不只是关一笔,而是直接封当天 bot。

5.5 sizing

repo 最值得偷的不是 β 本身,而是 beta_norm + 流动性 cap

这其实是在回答 desk 上最现实的问题:pair 不是算出 β 就完了,腿太细的时候再漂亮的 z-score 也会被 execution 吃掉。

5.6 risk / overlay

5.7 execution / cost

6. 代码里最值得直接偷的 5 个细节

  1. ADF + p-value + Hurst 不是只做研究展示,而是写回数据库供执行层用。 这让“统计关系是否还活着”变成运行时状态,而不是离线报告。
  2. beta 不是只拿来中性化,还会进入 sizing。 代码把 beta_norm clamp 在 0.8 ~ 1.2,避免极端 β 把一腿放到不可交易。
  3. controller-leg 由低流动性腿决定。 这是非常 desk 化的选择:不是让大腿说了算,而是让最脆弱那条腿先决定总仓。
  4. 日内 guard 是 throttle-first,不是只有 stop-only。 达到日内盈利后先缩仓,而不是直接把系统关掉。
  5. chunked execution + failure unwind 很适合拿来服务我们后续的 5m 切片执行层,即使 raw alpha 最后不直接用这个 repo 的 signal。

7. 本地最小快检:这套 repo-style pairs 逻辑搬到 Binance 15m,还能活吗?

我做的是一个 很小、很诚实的 transfer check,不是 faithful 复刻:

7.1 结果怎么读

  1. 可交易候选并不多。 28 个两两组合里,满足基本 cointegration + 流动性过滤的只有 1 对:ETH-SOL
  2. 这对在 15m bar-close taker 上并不赚钱。
  1. 换手有点高。 499 根测试 bar 内做了 24 笔,中位持有只有 1 根 15m bar。这说明短周期上最容易发生的,不是“均值回归不来”,而是 回归太快、边太薄、成本先吃掉

7.2 这组快检的结论

8. 现在该怎么放进研究池

我的判断:值得进池,但标签要写对。

不是“这就是新一代 15m 可直接上线的 pairs alpha”,而是:

  1. pair discovery 到 execution 的完整链路
  2. beta_norm + liquidity cap 的 sizing 逻辑
  3. chunked pair execution
  4. daily guard / throttle 机制

也就是说,它更像一张 “完整策略工程骨架卡”,而不是一张 “已通过短周期 transfer 的 alpha 卡”

9. 下一步怎么测

  1. 先别扩 universe,先把 pair admission 变严。 在现有 high-liquidity majors 上补:rolling half-life、spread volatility bucket、quote-depth threshold、maker-fill proxy。
  2. 把 signal 和 execution 拆开测。 继续保留 15m 做 pair selection / regime,改成 5m 做 execution slicing,看 chunked close/open 能不能把成本压回去。
  3. 把 repo 的 sizing 真正 desk 化。 下一轮应显式 A/B:
  1. 加 no-trade band。 repo 现在更像 |z|>=2 就上;短周期上建议加 entry>=2.2 / re-entry cooldown / min expected spread edge > fee budget
  2. 补“当日 throttle 后是否还开新仓”的实验。 它可能不是纯风险模块,而是直接影响 turnover 与 PnL 分布。
  3. 如果这条线要进入实盘素材池,先从 15m selection + 5m execution + majors only 开始。 不要一上来就幻想全币种 pairs 广撒网。

10. 风险与保留意见

11. 来源

  1. Anton Velychko (GitHub owner), 2026, _statistical_arbitrage_trading_system_V1_
  1. Binance Developers – USDⓈ-M Futures Kline / Candlestick Data

12. 本地产物