基于 Hyperliquid 的订单流失衡(OFI)微观结构交易系统(完整版)>>>实盘工程目录 + 模块接口定义

好,这一步我们直接进入“可实盘工程”的层级
下面给你的是一套 真实可维护、可扩展、符合 Hyperliquid 特性的实盘工程目录 + 模块接口定义
不是 demo,而是量化团队常见的最小可长期演化架构(Minimum Viable Trading System)


一、总体设计原则(先立规矩)

在 Hyperliquid 上做微观结构,你的工程必须满足:

  1. 事件驱动(Event-driven)
    ❌ bar / sleep loop
    ✅ WS → callback → signal
  2. 解耦(Loose Coupling)
    • 数据 ≠ 信号 ≠ 执行 ≠ 风控
  3. 可降级(Fail-safe)
    • 任何一层异常 → 系统自动降频或停手
  4. 可观测(Observable)
    • 每一个 OFI 决策都能回溯

二、工程目录结构(实盘级)

hyperliquid_ofi_trader/
│
├── config/
│   ├── symbols.yaml
│   ├── thresholds.yaml
│   └── risk.yaml
│
├── core/
│   ├── engine.py              # 主事件引擎
│   ├── clock.py               # 本地时间 & 延迟监控
│   └── state.py               # 全局交易状态
│
├── data/
│   ├── ws_client.py            # Hyperliquid WebSocket
│   ├── orderbook.py            # 本地 L2 Order Book
│   ├── trades.py               # 成交流处理
│   └── market_state.py         # mid / mark / vol
│
├── regime/
│   ├── liquidity.py            # 深度 / spread 状态
│   ├── volatility.py           # 波动率 Regime
│   └── liquidation.py          # 极端 / 清算检测
│
├── signals/
│   ├── ofi.py                  # OFI 计算
│   ├── leadlag.py              # Lead-Lag
│   ├── aggressive_volume.py    # Taker imbalance
│   ├── microprice.py           # Micro-price
│   └── signal_state.py         # 信号缓存
│
├── alpha/
│   ├── combiner.py             # Alpha 融合
│   ├── conditioning.py         # 状态条件化
│   └── compression.py          # tanh / clip
│
├── execution/
│   ├── router.py               # 下单路由
│   ├── order_manager.py        # 订单生命周期
│   └── tactics.py              # post-only / IOC 逻辑
│
├── risk/
│   ├── position.py             # 仓位管理
│   ├── exposure.py             # 杠杆 / 风险敞口
│   └── kill_switch.py          # 紧急停止
│
├── feedback/
│   ├── slippage.py             # 滑点分析
│   ├── fill_rate.py            # 成交质量
│   └── trust_score.py          # 信号可信度
│
├── utils/
│   ├── ewma.py
│   ├── stats.py
│   └── logger.py
│
├── main.py                     # 启动入口
└── requirements.txt

三、核心模块接口定义(重点)

下面我只给“关键模块”的接口定义,这些决定了你系统的上限。


1️⃣ data/orderbook.py(OFI 的地基)

class OrderBook:
    def __init__(self, depth=5):
        self.bids = {}
        self.asks = {}

    def apply_diff(self, side, price, size):
        """
        side: 'bid' or 'ask'
        size=0 → remove
        """

    def best_bid(self) -> tuple[price, size]
    def best_ask(self) -> tuple[price, size]

    def depth(self, levels=5) -> float

📌 要求

  • apply_diff 必须 O(1)
  • 不允许重建 snapshot

2️⃣ signals/ofi.py(OFI 核心)

class OFICalculator:
    def __init__(self, orderbook):
        self.prev_bid_size = None
        self.prev_ask_size = None

    def update(self) -> float:
        """
        返回原始 OFI
        """
class OFINormalizer:
    def scale(self, ofi, depth, volatility) -> float

📌 注意

  • OFI 只在 L1 变化时更新
  • 不和 trade 混用

3️⃣ regime/liquidity.py(生死开关)

class LiquidityRegime:
    def update(self, orderbook):
        ...

    def tradable(self) -> bool

规则完全放这里,不散落在策略中。


4️⃣ signals/leadlag.py(方向来源)

class LeadLagSignal:
    def update(self, lead_mid, lag_mid) -> int:
        """
        返回 -1 / 0 / +1
        """

📌 强制要求

  • Lead 和 Lag 必须不同 symbol
  • 时间窗口 < 300ms

5️⃣ alpha/combiner.py(灵魂模块)

class AlphaCombiner:
    def compute(self, signals: dict, regime: dict) -> float:
        """
        signals = {
          'leadlag': float,
          'ofi': float,
          'av': float
        }
        """

📌 这里 不允许下单
这里只输出 alpha(-1 ~ +1)


6️⃣ execution/router.py(执行与 OFI 的交汇点)

class ExecutionRouter:
    def route(self, alpha, ofi, position_state):
        """
        决定:
        - 下不下
        - 用什么订单
        - 下多大
        """

典型策略:

if ofi > HIGH:
    IOC
elif ofi > MID:
    post_only
else:
    skip

7️⃣ risk/kill_switch.py(必须有)

class KillSwitch:
    def check(self, state) -> bool:
        """
        True → kill trading
        """

触发条件:

  • 延迟异常
  • 深度消失
  • 连续滑点

8️⃣ feedback/trust_score.py(高级但关键)

class SignalTrust:
    def update(self, ofi, fill, slippage):
        ...

    def weight(self) -> float

📌 这是系统“自我学习”的入口


四、主引擎流程(main loop)

on_ws_event(event):
    update_orderbook(event)
    update_trades(event)

    update_regimes()
    if not regimes.tradable():
        return

    signals = compute_signals()
    alpha = combiner.compute(signals, regimes)

    if abs(alpha) < alpha_min:
        return

    execution.route(alpha, signals['ofi'], position)

📌 注意

  • 没有 while True
  • 没有 sleep
  • 全是事件触发

五、这套架构的“隐含优势”

✅ OFI 不会污染策略逻辑
✅ Lead-Lag 可随时替换
✅ Execution 可单独升级
✅ 风控能“一键拉闸”
✅ 可逐步加 ML / Online learning


六、现实建议(非常重要)

如果你现在:

  • 👤 一个人 → 先实现 data + ofi + execution
  • 👥 小团队 → 严格按模块拆
  • 🚀 准备实盘 → 先只做 BTC→ETH

Read more

跑步的技巧(滚动落地)

“滚动落地(rolling contact / rolling foot strike)”不是一种教条式的“脚法”,而是一种 让冲击沿着整只脚、整条后链逐级传递的落地机制。 它的核心不是“你先用哪儿着地”,而是: 你的脚落地之后,冲击是不是像轮子一样滚过去,而不是像锤子一样砸下去。 这就是滚动落地的本质。 一、什么叫“滚动落地”? 你可以把它理解成两种完全不同的落地方式: 1. 砸地(撞击式) 脚像锤子一样拍到地上: * 要么后跟先砸 * 要么前掌先戳 * 冲击集中在一个点 * 一个结构瞬间吃掉大部分载荷 结果就是: * 后跟砸 → 膝盖难受 * 前掌戳 → 前脚掌磨烂 * 都不是长跑友好模式 这叫 撞击式着地(impact strike)。 2. 滚地(滚动式) 脚像轮胎一样“滚”过地面: * 不是某一点硬砸 * 而是外侧中足先轻触 * 再向前滚到前掌 * 最后从大脚趾蹬离

By SHI XIAOLONG

AMI的优越性

世界模型(World Models)的具体例子 如下,我按类型分类,便于理解。每类都附带实际实现、演示效果和应用场景。 1. Yann LeCun / Meta 的 JEPA 系列(最直接对应“世界模型”概念) 这些是 LeCun 主张的非生成式抽象预测世界模型代表。 * I-JEPA(Image JEPA,2023) 输入一张图像,模型把不同区域(context 和 target)编码成抽象表示,然后预测 target 的表示(不在像素级别重建)。 例子:给定一张遮挡了部分物体的图片,模型能预测“被遮挡物体的大致位置和属性”,构建对物体持久性和空间关系的理解。 这是一个“原始世界模型”,能学习物理常识(如物体不会凭空消失)。 * V-JEPA / V-JEPA 2(Video JEPA,

By SHI XIAOLONG

什么是:“世界模型(World Models)”

世界模型(World Models) 是人工智能领域的一个核心概念,尤其在 Yann LeCun 等研究者推动的下一代 AI 架构中占据中心位置。它指的是 AI 系统在内部构建的对现实世界的抽象模拟或内部表示,让机器能够像人类或动物一样“理解”物理世界、预测未来、规划行动。 简单比喻 想象你闭上眼睛也能“看到”房间里的物体会如何移动、碰撞或掉落——这就是你大脑里的世界模型。AI 的世界模型就是类似的“数字孪生”(digital twin)或“内部模拟器”:它不是简单记住数据,而是学习世界的动态、因果关系和物理直觉(如重力、物体持久性、遮挡、因果等)。 为什么需要世界模型? 当前主流的大型语言模型(LLM) 擅长处理文本(统计模式预测),但存在根本局限: * 缺乏对物理世界的真正理解 → 容易“幻觉”、无法可靠规划。 * 样本效率低 → 人类/

By SHI XIAOLONG

K线周期可配置化设计方案

K线周期可配置化设计方案 1. 背景与目标 当前 Beta 套利策略的 K 线周期硬编码为 "1h",分散在多个文件中。需要: 1. 将 K 线周期从 1h 改为 2h 2. 提取为环境变量 BETA_ARB_KLINE_INTERVAL,使其可在 .env 中配置 2. 影响范围分析 2.1 需要修改的文件(共 6 个) 文件 硬编码位置 修改内容 src/trading/config.py BetaArbConfig dataclass 新增 kline_interval 字段,

By SHI XIAOLONG