← 返回 Quant Digests · 站点首页

别把 Avellaneda-Stoikov 只当做市教材:这份 2026 新仓库更值得先测的是「Kalman fair value + OFI skew + regime widening」maker raw alpha

更新时间:2026-03-25 14:25 UTC 研究时间:2026-03-25 14:11 UTC 类型:2026 GitHub 新仓库 + 经典 microstructure literature 地基 + repo 自带 benchmark / markout 证据 + 代码级参数审计 主题标签:raw-alpha/microstructure/maker/market-making/avellaneda-stoikov/kalman/ofi/microprice/regime/quote-skew/inventory/adverse-selection/binance/spot/1m/3m/repo/paper/execution 证据类型:仓库 README/代码证据 + 经典论文地基 + 参数级 desk 审计

源文件:research/quant_digests/2026-03-25_1411_adaptive-maker-ofi-kalman-regime-skew.md

> 先回答 base alpha:不是“挂双边等别人来打”这么空。base alpha 是:短期订单流与盘口结构会让未来几百毫秒的公平价格偏向某一边;如果你能把这个偏向及时体现在 reservation price、spread 宽度和 quote skew 里,maker 也能有 directional raw alpha,而不是纯手续费生意。

1. 这次看了什么

这轮主线不是再写一篇“OBI 很重要”的泛泛笔记,而是直接拆一份很新的完整策略仓库:

对当前 desk 来说,最值得偷的不是“它会做市”这件事,而是这套完整 raw alpha 骨架

  1. Kalman(mid) + α·imbalance 做 fair value;
  2. OFI + microprice deviation + vol clustering 判断 edge 朝哪边偏;
  3. reservation price + adaptive spread + inventory cap + one-sided quoting 把 edge 落成可执行报价;
  4. 再用 benchmark / markout / drawdown breaker 验证“吃到的 spread 有没有被 adverse selection 吃回去”。

这和今天已经写过的 single-asset taker micro alpha 不一样:

2. 核心结论

2.1 仓库里最硬的 3 组数字

  1. OFI 的 edge 很短,但不是 0

翻成人话:这不是 5m 慢因子,而是几百毫秒到 1 秒内衰减的 micro edge。

  1. adaptive maker 明显优于固定宽度挂单

这组数最重要的含义不是“做市稳赚”,而是:同样是 maker,是否把 signal / inventory / regime 写进报价,结果差很多。

  1. markout 没有被 adverse selection 明显打穿

这点很关键,因为 maker 策略最常见的假繁荣就是“看起来吃到了 spread,实际上 fill 后 mid 马上朝反方向跑”。这个仓库至少把这件事单独拿出来验了。

3. 为什么和当前项目直接相关

3.5 策略拆解(必填)

4. 代码级 desk 读法:它默认更像「spread floor + skew + inventory」系统,不完全是 textbook A-S

这份 repo 最有价值的一点,是 README 之外还能做 代码级 sanity check

4.1 一个值得先记下的小细节

README 里写的是 textbook A-S 半价差: δ = γσ²T/2 + (1/γ) ln(1 + γ/k)

但仓库 quoting.py 实现的是: base_delta = γσ²T/2 + (1/k) ln(1 + γ/k)

这两者不是一回事。 在默认参数 γ=0.05, k=1.5, T=600 下:

同时仓库还设了 min_half_spread = 0.5 USD。 我按代码把默认参数扫了一遍,得到一个很关键的 desk 结论:

而不是一个由 A-S 理论项完全主导的连续最优 spread 模型。

这反而更符合 desk 现实:很多时候真正起作用的不是 textbook 闭式解,而是 floor、skew、inventory、throttle 这些“脏工程参数”。

4.2 这意味着什么

  1. 保留 quote floor;
  2. 明确 skew 来自哪些 micro alpha;
  3. 再测 inventory / regime / throttle 是否真的改善 post-cost fill quality。

5. 与当前短周期(1m / 3m / 5m / 15m)的关系

5.1 最适合的位置

原因很简单:仓库给出的 edge 有效窗口主要在 100ms ~ 500ms,到 1s 以后已经开始衰减。它不是天然 15m 主信号。

5.2 对 5m / 15m desk 最实用的读法

如果你已经有一个 5m15m 主方向信号,这条 maker alpha 最值钱的用法可能是:

  1. 决定先 maker 还是直接 taker
  2. 当 micro edge 与大周期方向相反时,延迟入场 / 降低报价尺寸
  3. 在 inventory 已偏、spread 已宽、markout 变差时,暂停继续补单。

也就是:它既可以独立作为快节奏 alpha,也可以作为慢周期 alpha 的 execution veto / timing layer。

6. 最小可复现实验(面向 1m / 3m / 5m / 15m)

6.1 数据源与公开性

6.2 最小实验设计

  1. 标的:先跑 BTCUSDT / ETHUSDT / SOLUSDT
  2. 采样:连续采集 2~6hbookTicker + trade
  3. 最小信号:先只保留 imbalance / OFI / microprice_dev / relative_spread
  4. 先做 2 类检验
  1. 最先看 5 个指标

6.3 先不要做的事

7. 下一步怎么测(必须)

  1. 先做 paper-fill benchmark,不要直接 live。 先把 adaptive vs fixed vs naive 三组结果在本地自采数据上跑通。
  2. 把 markout 做成 hard gate。100ms/500ms markout 变负,就算 spread capture 看起来漂亮,也先判死。
  3. 专门测“floor 主导还是 A-S 主导”。 先做 min_half_spread × gamma × k × sigma regime 网格,确认策略收益到底来自哪一层。
  4. 把 queue / cancel 节流单独测。 maker 策略最容易纸上繁荣,实盘里却死在 cancel 限速和 queue ranking。
  5. 对 1m/3m 与 5m/15m 分开定位。 前者看独立 micro alpha;后者看 execution timing / maker-vs-taker 切换,别混成一个指标。
  6. 补一轮资产分层。 BTC/ETH 先看是否 edge 更薄但稳;SOL / midcaps 再看是否 fill 更多但 adverse selection 更重。
  7. 先核对 spread 公式实现。 如果 1/k 不是刻意改写,修正后要重做全套 benchmark,避免对参数含义产生错觉。

8. 风险与保留意见

9. 来源

  1. Aliipou. (2026). _mm-live_. GitHub repository.
  1. Avellaneda, M., & Stoikov, S. (2008). _High-frequency trading in a limit order book_. Quantitative Finance, 8(3), 217–224.
  1. Stoikov, S. (2018). _The micro-price: a high-frequency estimator of future prices_. Quantitative Finance, 18(12), 1959–1966.
  1. Binance Developers. Spot / Futures WebSocket market streams.

10. 本轮产物