源文件:research/quant_digests/2026-04-04_1602_cointegration-killswitch-cost-veto-alpha.md
README.md + backtest_results.json + backtest_log.txt)+ Binance USDⓈ-M 公共 15m/5m 最小便携性快检pair scan → z-score entry/exit → live state machine → drawdown kill-switch 这整套能直接落地的完整策略壳先回答 base alpha:这篇东西的 base alpha 很清楚,就是 cointegrated spread mean reversion。答得清,所以它是 raw alpha,不只是 filter / overlay。
这轮主看的是一个很新的完整仓库,而不是单独一篇“pairs 原理介绍”:
ssanin82, 2026)Title: *strat-test-cointegration* Venue: GitHub repository DOI: 无 Readable URL: <https://github.com/ssanin82/strat-test-cointegration> Repo URL: <https://github.com/ssanin82/strat-test-cointegration> 我这次重点读了:
README.mdbacktest_results.jsonbacktest_log.txtTitle: *Co-integration and Error Correction: Representation, Estimation, and Testing* Venue: *Econometrica* DOI: 10.2307/1913236 Readable URL: <https://www.jstor.org/stable/1913236> Repo URL: 无 这篇不是本轮主角,但它是 repo 里 Engle-Granger pair selection 的方法学地基。
5m / 15m K 线ETHUSDT / LINKUSDT,按 repo 的 spread + z-score 思路做 public-close proxyreports/artifacts/quant_digests/2026-04-04_ssanin82_eth_link_proxy.json为什么它值得写?因为我们这两天 raw alpha intake 已经有不少 pairs / carry / microstructure / options,但真正把 entry / exit / sizing / risk / live state 全串起来、又是 2026 新 repo 的“完整可复现壳”并不多。这份仓库恰好补的是“可直接抄到实验台”的那层。
repo README 给出的结构非常完整:
spread = price1 - hedge_ratio * price2,再做 rolling z-scoreIDLE → MONITORING → CLOSING 三态状态机翻成人话:
> 它不是“找到 pair 以后你自己再想怎么下单”的研究草稿,而是一份已经把完整交易壳写出来的 raw alpha skeleton。
这对当前 desk 的价值很直接:不是继续补“pairs 可能能做”的论证,而是补“pairs 怎么以最小工程量先跑起来”的可复现材料。
README 公开写了这些关键默认值:
ETHUSDT / LINKUSDTTIMEFRAME = 1hKLINE_LIMIT = 200Z_SCORE_WINDOW = 21SIGNAL_TRIGGER_THRESHOLD = 0.02TRADEABLE_CAPITAL_USDT = 200010xDROWDOWN_LIMIT_PCT = 90%repo 自带回测结果文件 backtest_results.json 还给出了一组作者自己的样例:
20002631.76+631.76+31.59%425%这里最值得 desk 警惕的点,不是收益高低,而是参数口径看起来过松:
SIGNAL_TRIGGER_THRESHOLD = 0.02 对 z-score 来说几乎等于没门槛。p_value < 0.5 就算通过,这也明显比多数正式 stat-arb admission 要宽。DROWDOWN_LIMIT_PCT = 90% 更像示例保护,而不是 production 风控。也就是说:
> 这份 repo 的正确读法,不是“参数已经对了”,而是“策略骨架已经有了,但 admission / threshold / cost 假设必须重写”。
这就是很标准、很清楚的 relative-value / stat-arb / mean-reversion raw alpha。
如果把它翻成我们 15m / 5m 的最小实验,我会先这样定:
BTC / ETH / SOL / LINK / ADA / DOGE / LTC / XRPN 天 funding 差异不能极端15m 主信号:|z| >= 2.0 入场5m 不建议直接复刻 repo 的超松阈值,更适合做 finer execution / 早退 / vetoz 过零或回到 |z| <= 0.3~0.5|z| >= 3.0~3.5 stop我用 Binance 公共 ETHUSDT / LINKUSDT 做了一个最小 proxy,不复现 repo 内部结果,只测“这套壳压到 short-cycle 后像不像真实可交易候选”。
15m probe口径:
1500 根 15m barsentry = |z| >= 2.0exit = z 过零stop = |z| >= 3.5结果:
0.94483.4 bars,折合约 20.8h0.41551 笔56.9%+3.84 bps13 bars,约 3.25h15bps 成本 proxy,单笔平均变成约 -11.16 bps5m probe口径:
1500 根 5m bars48 bars time stop(约 4h)结果:
0.900127.5 bars,折合约 10.6h0.44749 笔71.4%+4.08 bps11 bars,约 55min15bps 成本 proxy,单笔平均约 -10.92 bps这组结果非常关键:
> 它说明 repo 的 alpha 骨架是能工作的,但在 short-cycle 上如果不先把成本、入场强度和 pair admission 重写,gross edge 大概率会被手续费直接吃掉。
所以,这份材料更适合被 desk 当成:
这轮之所以值得进研究池,是因为它直接服务于 raw alpha 素材池,而不是泛泛的解释型综述:
15m 适合主信号,5m 适合 execution / veto / 早退一句话版:
> 这不是一份“参数靠谱”的 repo,但它是一份“骨架很适合直接搬到 desk 实验台”的 repo。
最值得拿走的不是 0.02 这种阈值,而是:
最值得立即改掉的是:
只给最小、可执行的下一步,不讲空话:
BTC / ETH / SOL / LINK / ADA / DOGE / LTC / XRP200~400 barsentry |z| >= 2.0,exit |z| <= 0.5,stop |z| >= 3.5entry |z| >= 2.5,测 trade count 是否显著下降但 gross/trade 抬升不要再用 README 的 50/50 名义资金;短周期两腿波动不对称时,这会把 spread alpha 变成方向暴露。
4~6 bps round-trip8~12 bps15~20 bps只保留在 mixed 档还能活的 pair。
用 5m 做:
research/quant_digests/2026-04-04_1602_cointegration-killswitch-cost-veto-alpha.mdreports/artifacts/quant_digests/2026-04-04_ssanin82_eth_link_proxy.json