源文件:research/quant_digests/2026-04-01_0556_standx-obi-maker-liquidity-provision-alpha.md
README.md + backtest_standx_OBI.py + optuna_obi_config.json + config.json source audit这次主看的是 djienne (2026) 的 GitHub 仓库 StandX_Market_Making_Backtest_BTC。它不是单纯的数据管道,而是一条相当完整的 maker research pipeline:WebSocket 采集 order book / trades → Parquet → NPZ → hftbacktest 回放 → OBI maker 策略回测 / Optuna 调参。对我们更有价值的点不在“又一个 market-making repo”,而在它把 base alpha、挂单逻辑、库存偏斜、最小价差下限、费用、延迟、数据缺口处理 都写进了同一个可复现实验骨架里。
looking_depth=2.5% 的盘口范围内计算 sum_bid_qty - sum_ask_qty,再做 rolling z-score,把结果乘上 c1 推到 fair_price = mid + c1 * alpha,最后围绕这个 fair value 做带 inventory skew 的 maker-only 双边挂单。step_ns = 100,000,000(100ms) 更新状态;window_steps = 6000 对应 10 分钟滚动窗口,update_interval_steps = 50 对应 每 5 秒重估一次 alpha / vol。这很适合我们把它先归类到 1m/3m 主实验,再往 5m 压成低频 maker overlay。maker_fee = 1 bps、taker_fee = 4 bps,并且在 BBO clamp 之后仍强制 min_half_spread_bps = 1.0;意思很明确——它默认承认“价差太窄时,哪怕 alpha 对,也不值得挂”。normalized_position = notional_position / max_position_dollar,然后通过 bid_depth_tick = half_spread * (1 + skew * position)、ask_depth_tick = half_spread * (1 - skew * position) 做双边不对称扩缩。也就是说,库存越偏多,就把 bid 往外撤、ask 往里收;库存越偏空则反过来。order_qty_dollar = 20、max_position_dollar = 500、grid_num = 1、vol_to_half_spread = 32、skew = 0.5、c1_ticks = 605;Optuna 配置里则把搜索版切成 order_qty_dollar = 100、max_position_dollar = 400、latency_ns = 1,000,000(1ms)和 looking_depth = 0.025。这说明它不是“讲概念”,而是已经把 sizing / quote width / latency 假设都钉进实验口径。1m/3m/5m/15m 的关系也很清楚:alpha 生成发生在 100ms–秒级,主战场更像 1m/3m;但我们完全可以把它压缩成 5m/15m 的 maker admission / quoting overlay,而不是只把 short-cycle 理解成追涨杀跌。min_half_spread_bps >= 1,价差太窄直接 vetogap_threshold_minutes = 10)时撤单 / flattenmid,而是 fair_price = mid + c1 * alpha20 USD 或搜索版 100 USD)开始,净敞口上限 400~500 USDskew 控制 bid/ask 的不对称扩缩,防止单边库存累积maker 1 bps / taker 4 bps 记账,再单独测是否需要 maker rebate 才能过线BTCUSDT perpetual,先抓 3~7 天连续 L2 + trade 数据;±2%~2.5% depth 算 OBI = bid_qty - ask_qty;alpha_t;mid ± half_spread,B) (mid + c1*alpha) ± half_spread;inventory skew 和 min spread floor;net_bps_per_day 或 net_bps_per_1000_fillspost_fill_1s/5s markout(成交后 1 秒 / 5 秒不利漂移)inventory_turnover / max_inventorylatency_ns = 1ms、100ms step 这些假设,对大多数普通部署都偏乐观。若实盘拿不到这么快,edge 可能大幅收缩。https://github.com/djienne/StandX_Market_Making_Backtest_BTChttps://github.com/djienne/StandX_Market_Making_Backtest_BTCREADME.mdbacktest_standx_OBI.pyoptuna_obi_config.jsonconfig.jsonhttps://raw.githubusercontent.com/djienne/StandX_Market_Making_Backtest_BTC/main/docs/maket_making_alpha_OBI.pdfhttps://github.com/djienne/StandX_Market_Making_Backtest_BTCBTCUSDT perpetual 上做 A/B quote placement:raw mid vs OBI-shifted fair value;min_half_spread_bps ∈ {0.5, 1.0, 1.5}、skew ∈ {0.25, 0.5, 1.0}、looking_depth ∈ {1%, 2.5%, 5%} 三组网格,先找“markout 改善”而不是先看总 PnL;post_fill_1s/5s markout 明显改善,再补真实 fee / queue / cancel latency;