源文件:research/quant_digests/2026-03-30_0944_ofi-fillaware-maker-taker-alpha.md
strategy_core.py / alpha/microprice_ofi_alpha.py source audit + repo 内置 IS/OOS 产物复核 + 2024 SSRN 元数据锚点microprice edge / queue imbalance / half-spread 把“方向 edge”直接变成 maker-or-taker、做/不做、做多大 的可执行状态机这次主看 jingyaolai17/tardis-python-private (2026)。它最值钱的地方不是“又一个 OFI 指标”,而是把一条微结构 raw alpha 从 signal -> gate -> execution -> kill-switch 全部写进同一份 strategy_core.py:
ofi_z = (ofi - rolling_mean) / rolling_stdbeta_fwd = cov(ret_fwd_30s_bps, ofi_z) / var(ofi_z)alpha_bps = beta_fwd * ofi_zmaker_edge = alpha_bps - join_thresh * half_spread_bpsp_maker_fill = (1 - |QI|)^1.5|alpha| 同时穿过绝对门槛和成本门槛时才允许入场一句话核心结论:
> 真正值得 intake 的不是“OFI 能不能预测几秒钟价格”,而是“OFI 这条边怎么在穿过 spread/fee/slippage 之后,仍然留下可交易的净边”。
lagged OFI z-score -> future 30s return 写成 alpha_bps,这是 raw alpha,不是 filter。apply_alpha_gating() 要求 |alpha| >= 0.8bps,且 |alpha| >= 1.5 × hurdle_bps;hurdle_bps 又显式包含 half-spread + taker fee + taker slippage + maker slippage。maker_edge > 0 再决定是否挂 maker,并用 QI 估算 p_maker_fill,把“信号对不对”和“能不能低成本成交”写成一个联合决策。cooldown_bars=10、min_hold_bars=20(在 100ms bar 上分别约 1s / 2s),本质上是在防止微结构 alpha 因 flip-churn 被成本吃死。IS_OOS_Validation_summary.md、IS/OOS csv/json 和脚本里的数据区间/结果彼此不一致。机器可读产物里,OOS net_edge_bps_on_executed ≈ 3.87bps、total_pnl_after_usd ≈ 159.8($50k 资本),说明结构值得偷,但收益数字必须重跑复核。一句话说明它怎么证明:
> 不是只靠论文口头说 OFI 有效,而是把信号、成本门槛、maker/taker 分流、库存与 kill-switch 全写成代码,并附了 IS/OOS 产物;虽然产物口径有冲突,但策略骨架是可审计的。
这轮更值得写它,而不是再补一个泛泛的 regime/filter,原因很直接:
5m/15m 方向与 pairs 卡,这张卡补的是更快、更 execution-sensitive 的单币微结构线。alpha、admission、maker/taker split、toxicity scaler、kill-switch 都能单独 ablation。OFI z-score 对未来 30s drift 的预测|alpha| 不过绝对阈值或不过成本阈值则不交易;sign flip 后强制 cooldownmaker_edge 决定 maker/taker;QI 决定 maker fill proxy;库存上限、inventory decay、drawdown kill-switch、linear flatten 都已写进框架最该先偷的不是 OFI,而是 “OFI 只有在净边能覆盖 frictions 时才允许变成仓位” 这条 admission 逻辑。很多微结构信号死掉,不是方向错,而是:
这份 repo 把这几个坑一次性写出来了,所以它更像一张 raw alpha + execution shell 卡,而不是单纯指标卡。
bookTicker 实时采集 + aggTrades 公共流,自己积累 7~14 天;先做 L1 OFI / microprice / spread 代理1m / 3m,若成本后存活,再看能否向 5m transfer;不建议直接伪装成 15m 主信号bookTicker + aggTrades 重建 L1 OFI、QI、microprice-mid、half-spread_bpsN=300~600 个子样本标准化 ofi_zalpha_proxy = beta_fwd * ofi_z,beta_fwd 可先用 rolling OLS / cov-var|alpha_proxy| >= max(0.8bps, 1.5 × hurdle_bps)hurdle_bps = half_spread + fee + slipalpha_proxy > 0 做多,< 0 做空alpha_proxy 回到门槛内;或1/3/5 分钟avg trade 差多少?1m 与 3m 谁更能抗 flip-churn?15m;这条线更像 1m/3m 主实验、5m 仅做 transfer check。它值得进池,不是因为 repo 业绩已经可信到可实盘,而是因为它把一个很多人嘴上会说、但很少代码里写完整的命题落地了:
> 微结构 raw alpha 不是“预测方向”就结束,而是必须连同成本门槛、成交方式和 churn 抑制一起定义。
对当前 desk,这比再补一张纯解释型 microstructure 卡更值钱,因为它能直接产出一轮 1m/3m 的诚实 first verdict。
jingyaolai17 (2026). _tardis-python-private_. GitHub Repository.10.1093/jjfinec/nbt00310.2139/ssrn.4867599bookTicker + aggTrades,只复刻 L1 OFI + spread hurdle + sign flip exit。2 / 4 / 6 / 8 bps,再拆 maker/taker。1m 成本后活、3m 也不塌,这张卡才值得升 replication queue。