源文件:research/quant_digests/2026-04-04_1648_hmmstate-xgb-spreadforecast-pairs-alpha.md
strategy.py + main.py + market_data_gateway.py + OMS.py + portfolio_tracker.py)+ Binance USDⓈ-M 公共 5m/15m 最小可移植性快检HMM state + lagged spread technical features 做一阶方向预测,再把 pair 级信号汇总成 market-neutral 组合,吃的是相对价差的可预测变动,而非单边币价方向。base alpha 不是“cointegration 本身”,而是“cointegrated spread 的短窗方向可预测性”。
翻成人话:
spread 偏离大了就赌回归;先判 spread 下一步向上还是向下,再决定 long 哪条腿 / short 哪条腿;MVO 把多条 pair 信号合成组合层仓位。这条线对我们当前 desk 的价值在于:它不是纯 filter,也不是 overlay,而是可独立跑成完整策略的 relative-value raw alpha(entry/exit/sizing/risk/cost 都能落地)。
---
timshao8 / 2025 / *Market-Microstructure-* / GitHub2025-07-02,最后 push 2025-07-03strategy.py:cointegration + ADF pair admission,GaussianHMM + XGBRegressor 做 spread 方向信号,mvo() 做组合权重main.py:策略驱动与下单流程(含明显执行缺陷)market_data_gateway.py:当前写死 1d 永续 K 线OMS.py / portfolio_tracker.py:权重转订单与持仓管理最近我们有不少 pairs z-score fade / cointegration shell。这篇最值得 intake 的分歧点是:
---
strategy.py 的链路是完整的:
get_pairs():coint(series1, series2);p < 0.05 才进候选;p < 0.05)二次过滤。generate_signal(spread):GaussianHMM 得 state;XGBRegressor 预测下一步 spread;sign(predicted - last_actual) 输出方向。mvo():inv(Sigma) @ mu 得 raw weights;这三步拼起来就是一条完整 raw-alpha 壳,不是“只会筛对”的半成品。
market_data_gateway.py 取的是 interval="1d"。对 short-cycle desk(1m/3m/5m/15m)必须改频率与窗口。
main.py 在 weights_to_order(...) 后直接 close_positions(...),等于“刚开就平”。 这在研究/实盘里会把 alpha 全部变成手续费。
main.py 里 from Risk import RiskManager,但仓库里没有对应文件;结论: > 这不是可直接运行的 production repo,但它提供了有价值的“signal + portfolio” alpha 母板。
---
我先不复刻 HMM/XGB 全链路(依赖与工程不完整),先测最核心可迁移假设:
> 同样 pair admission 思路下,短窗 spread 在极端偏离后是否存在可交易的回摆/修复口袋。
BTC/ETH/BNB/XRP/SOL/ADA/DOGE/LTC/AVAXMATICUSDT 现货口径检查显示已失活(见 4.2)1000 bars5m:2026-04-01 05:24:59 UTC ~ 2026-04-04 16:39:59 UTC15m:2026-03-25 06:59:59 UTC ~ 2026-04-04 16:44:59 UTC|z| >= 1.5 记为极端事件;统计未来窗口内“向均值方向移动”的 hit-rate
12 bars(约 1h)4 bars(约 1h)MATICUSDT 最近 5 根 15m bar 最后时间停在 2024-09-11 09:44:59 UTC,且成交量均为 0。这说明 repo 原 universe 直接照抄会污染当下样本。SOL-AVAX hit-rate 约 79.8%。XRP-DOGE hit-rate 约 64.2%。解释:
reports/artifacts/quant_digests/hmm_xgb_pairs_shell_transfer_20260404/summary.jsonreports/artifacts/quant_digests/hmm_xgb_pairs_shell_transfer_20260404/pair_reversion_probe_5m.csvreports/artifacts/quant_digests/hmm_xgb_pairs_shell_transfer_20260404/pair_reversion_probe_15m.csv---
下面给一版直接可做最小实验的策略壳(先 ML-lite,再上 HMM/XGB):
coint p < 0.05ADF p < 0.05k bar spread 方向。|score| > threshold 且 pair 在可交易白名单;1) 预测翻向; 2) spread 回到中性带; 3) time stop(例如 8~16 bars); 4) 硬止损(pair 级 max adverse)。
confidence / realized vol 缩放;inv(Sigma)@mu 或 risk-parity 近似;---
---
按优先级给三步,先快后慢:
把当前 pairs baseline 拆成 A/B:
z-score fadespread-direction score(先 logistic)统一成本与执行,比较:净收益、换手、持仓时长、尾部回撤。
在 B 上加 regime gate:
再上 repo 同构升级:
成功门槛建议:
---
---
这份 2025 repo 真正值得 intake 的,不是“又一个 cointegration 框架”,而是它把 pairs raw alpha 往前推进了一步:从 spread 偏离触发 升级到 状态感知的 spread 方向预测 + 组合层权重分配;下一步该做的是先用 5m/15m 的 ML-lite 版验证净后优势,再决定是否上完整 HMM/XGB。