← 返回 Quant Digests · 站点首页

别把这份 Hyperliquid 回测仓只读成 hourly premium 图:对 short-cycle desk,更该先测的是「mark-vs-oracle dislocation percentile fade」这条 raw alpha

更新时间:2026-04-15 11:12 UTC 研究时间:2026-04-15 11:28 UTC 类型:2026 GitHub repo source audit(`README.md` + `src/strategies/basis_reversion.py` + `src/data/hyperliquid.py` + `research/run_hip3_analysis.py` + `src/engine/backtest.py`)+ Hyperliquid public API portability read 主题标签:raw-alpha/single-asset/relative-value/stat-arb/mean-reversion/mark-vs-oracle/premium-dislocation/hyperliquid/hip-3/1m/3m/5m/15m/repo/public-data/cost/risk 证据类型:工程证据(repo 文档 + 源码 + 回测框架 + 公共 API 可得性)

源文件:research/quant_digests/2026-04-15_1128_mark-oracle-percentile-dislocation-fade-alpha.md

1. 这次看了什么

这轮主看的是 2026 GitHub repo andreaambrosio/hype-backtesting 里最值得 short-cycle desk intake 的那条 raw alpha,而不是继续把它读成“又一个 funding / regime / momentum 杂烩框架”。

先回答 base alpha:这不是 funding carry,也不是 generic trend filter;它是一条可以单独站住的短时相对价值 / 单资产 stat-arb raw alpha——当 perp 的成交标记价明显偏离 oracle 时,赌这个偏离会向正常区间压缩。

这轮主看的文件:

repo 基本信息:

README 里最关键的不是“这个仓里有 9 个策略”,而是它把 Basis Dislocation Reversion 明确列成当前 sample 里的最佳策略:

同时 README 还给了一个更 desk-friendly 的 microstructure 句子: > 在 HIP-3 Silver crash 里,basis 一度冲到 463 bps,高于 400 bps 只持续了 95 seconds,随后在 19 minutes 内压回到 <50 bps

这句比“小时线回测收益多少”更重要,因为它直接说明:这条 edge 的自然栖息地其实更像 1m / 3m / 5m,而不是只停留在 1h

2. base alpha 先说清楚

这条线的 base alpha 很简单:

> 当 perp mark 明显偏离 oracle,而且偏离已经进入该资产自身的极端分位区间时,后续更容易发生 premium / basis 压缩;最小表达就是“做 dislocation fade”。

翻成人话:

所以它属于:

3. 为什么说这不是零散指标,而是一条完整策略

3.1 entry 已经写得很清楚

src/strategies/basis_reversion.py 的核心逻辑很直接:

  1. 先把 premium 转成 bps
  1. 取最近 lookback_bars=100 的 premium 分布
  2. 开仓阈值不是固定死值,而是:
  1. 方向是反着做:

这就把信号说得非常完整了: 不是任何偏离都做,而是只做“已经极端化”的偏离。

3.2 sizing 也不是空着的

源码不是简单 all-in / fixed size,而是按 dislocation 强度放大:

意思很直白:

这对 desk 很重要,因为它不是一句“极端更值得做”,而是已经把极端程度映射成仓位函数。

3.3 exit / stop / time-stop 也齐了

同一个文件里 exit 条件也都明确给出:

也就是说,这条线不是“看到 premium 就写篇观察笔记”,而是已经自带:

所以这轮它完全符合用户说的高优先级: > 可独立复现且可直接落地为完整策略的 raw alpha 候选。

3.4 成本 / 风控也不是事后脑补

src/engine/backtest.py 里,回测引擎默认就把这些东西收进去了:

这当然不代表 repo 的结果就一定可信到能直接上线,但至少说明: 它讨论的是“可交易 alpha”,不是只会画因子图的研究玩具。

4. 这条 alpha 和当前 desk 为什么直接相关

4.1 它补的是 raw alpha 素材池,不是旁支解释层

近几轮已经补了不少:

而这条线补的是另一类更 microstructure、更 execution-native 的原料: > 极端 mark-vs-oracle 偏离本身就是 alpha 对象。

它不是给某条已有 alpha 当确认器,而是自己就能单独做成一条信号书。

4.2 它天然适合 1m / 3m / 5m

原因很简单:

所以最自然的 desk 化映射应是:

4.3 它和已有 basis/funding digest 不是同一件事

需要刻意区分:

也就是说,这条线更接近:

而不是“再来一篇 funding 逻辑”。

5. 公开数据能不能拿?最小实验怎么做?

5.1 数据源

src/data/hyperliquid.py 已经把公共数据入口写得很清楚,全部走 Hyperliquid 的公开 info 接口:

这说明:

5.2 但这里有个必须说清楚的现实约束

如果你要认真测 1m / 3m / 5m 的 premium-dislocation edge,不能只靠 funding history 的 8h 快照。

真正需要的是更高频的 mark / oracle / premium 路径。

也就是说:

这不算“数据不可得”,只是: > 它是 public & quickly collectable,但不是现成一键下载好的多月高频历史包。

5.3 最小实验口径

先不要一上来就做复杂组合,最小实验可以很朴素:

5.4 第一批必须做的对照组

至少并排跑这四组:

  1. fixed threshold only:只看 50 bps
  2. percentile only:只看 rolling 95%
  3. max(fixed, percentile):repo 默认逻辑
  4. + asset liquidity gate:只在相对 liquid 的名字上做

因为真正该回答的问题不是“有无 reversion”,而是: 极端阈值到底该用固定 bps、资产内部分位,还是两者取 max。

6. first verdict:值得进池,但别把 repo 的 hourly 胜利直接当 short-cycle 结论

6.1 为什么值得进池

6.2 为什么还不能直接宣称“已过线”

要保留三点怀疑:

  1. repo 公布的主结果是 1h,不是 1m / 3m / 5m
  2. 这能证明思路可写成策略,但不能自动证明短周期净后也赚钱。

  1. 若只用单腿 perp fade,方向风险并没有消失。
  2. 它虽然盯的是 relative-value 变量,但执行上仍是单腿 long/short;若当下是持续性踩踏 / squeeze,premium 可能越拉越极端。

  1. 真正的边际在执行,而不是在口头逻辑。
  2. 这类 edge 很可能死在:

所以更诚实的定位是: > 高优先级 raw alpha intake,适合尽快做分钟级最小实验;但当前证据还不等于 production-ready。

7. 下一步怎么测

7.1 先做数据层

7.2 先做 event study,不要先做花哨组合

第一版就回答 4 个问题:

  1. premium 超过 50 bps 后,回到 10 bps 的中位时间是多少?
  2. 95% / 97.5% / 99% 分位,哪档的 net bps/trade 最稳?
  3. 正 premium 和负 premium 哪边更容易赚钱?
  4. liquid majors 和小币 / HIP-3 名字,谁更值得做?

7.3 exit 先做三挡,不要过拟合

先跑:

7.4 成本一定要分层

这类策略一定要显式做 cost ladder:

先看:

8. 风险与保留意见

9. 来源

10. 本地产物