源文件:research/quant_digests/2026-03-28_0850_hyperliquid-fundingaware-tsmom-universe-audit.md
看的是 Gajesh2007 的 GitHub 仓库 momentum-trading(创建 2025-10-03,最近 push 2025-10-14,9 stars),以及其 signals/engine.py、risk/engine.py、data/loader.py、config/*.yaml。这不是单纯“追涨 bot”,而是一个已经把 signal / funding / sizing / liquidity cap / cost gate / execution 串起来的 perp TSMOM 骨架。
Repo URL: https://github.com/Gajesh2007/momentum-trading
s_raw = mean(zscore(多窗口收益)),然后按符号做多/做空,是标准但可落地的 raw alpha,不是纯 filter。w ~ s_adj / sigma、组合年化波动目标 15%、单币上限 5%、edge >= 2.5x~3x friction、ATR 止损、ALO/TWAP/Market 三套执行。1h 版用 [6,24,72] 小时 lookback;4h 版想做更慢的 swing。但对我们 desk,更应该先把它 desk 化成 15m 的多窗口 TSMOM,再测 funding penalty 是否真能在成本后留下净边。get_universe() 直接拿 openInterest >= 5,000,000 过滤,但 Hyperliquid 的 openInterest 是币本位数量,不是 USD;我用公共 API 现场快照看到:按 repo 原写法只剩 6 个币过阈值,而把 OI 先乘 midPx 转成 USD 后会变成 12 个,并把 BTC / ETH / SOL 拉回 universe。第二,4h_swing.yaml 里 lookbacks: [24,96,240] 的注释写成 24h/4d/10d,但代码按“bar 数”解释,实际对应的是 4d/16d/40d;不修这个,复现实验会以为自己在测 4h alpha,其实测得更慢。它和 momentum 当前阶段非常贴:不是继续围绕 breakout 形态内循环,而是补一条能直接进素材池的完整 raw alpha。更重要的是,它把 raw alpha / funding overlay / risk sizing / execution cost 的边界拆得很清楚,适合作为后续把趋势、carry、执行层分开评估的母版。
edge >= 2.5x~3x friction;流动性/OI 过滤15m perp 上,多窗口 TSMOM + directional funding penalty + edge gate 会比裸 TSMOM 有更好的成本后收益/换手比。15m K 线 + 小时 funding(公开 API 可拿);universe 先用 dayNtlVlm >= 10M 且 OI_USD >= 5M,不要直接复用 repo 的原始 OI 过滤。1h 的 [6,24,72] 小时 lookback 改成 15m 的 [24,96,288] bars;s_raw 为三段收益 rolling z-score 平均,s_adj 再扣同方向 funding。w_raw = s_adj / sigma,再做 vol target;若 edge < 2.5 x (fee + slippage) 则跳过;sign flip 或 ATR(14)*2 止损出场。裸 TSMOM / + funding penalty / + edge gate / + universe 修正。先看 post-cost return、turnover、positive-asset ratio、max drawdown,不要先卷参数。5m/15m,maker 占比和滑点模型会比 repo README 里写得更关键。momentum_trading/signals/engine.py、momentum_trading/risk/engine.py、momentum_trading/data/loader.py、config/test_fast.yaml、config/4h_swing.yaml