源文件:research/quant_digests/2026-04-12_2028_ofi-liqcost-maker-veto-overlay.md
不是独立方向 alpha;它服务于现有 maker raw alpha(reference-price anchored spread capture / OFI×fair-value skew / OBI quote-skew)的 execution veto 与 inventory-risk overlay这次主源不是再补一条新 raw alpha,而是补一层可直接挂到现有 maker alpha 上的共享 veto:
OFI(top10)、inventory delta、Avellaneda-Stoikov indifference price、1-minute liquidation cost,再往上叠 L-VaR 与 black swan scenario,最后把 breach 映射成 throttle / reduce inventory / kill-switch。1s/1m/3m/5m maker 线到底有没有 desk 价值,默认阈值是不是像样。一句话核心结论:这份 repo 最该被 intake 的不是 dashboard,而是“把 OFI + 清仓成本 + inventory reservation drift 变成 quote-on / quote-off 开关”的那层 maker overlay;但它给的默认 tail-risk 标尺对 BTCUSDT 深盘口明显过松,黑天鹅成本函数还需要重写。
它怎么证明这件事:repo 里已经把指标、阈值与风险动作写成完整工程骨架;我再用 Binance live depth 做最小快检,验证这些阈值在真实盘口下是否会真正触发。
OFI / indifference price / liquidation cost -> risk flags -> throttle / kill-switch。2026-04-12_1830_refprice-anchored-maker-shell.md2026-04-12_1352_mm-live-ofi-fairvalue-maker-alpha.md2026-04-11_0945_binance-obi-quote-skew-maker-shell.mdmax_liquidation_cost_usdt = 75000 基本不可能触发;如果直接照抄,等于“写了风控,但平时根本不工作”。stress_liquidation_cost 甚至可能比 base cost 还低;这更像“深度萎缩实验”,不像完整的尾部清仓损失模型。BTCUSDT,depth=50,1Hz,持续 180 秒。liq_cost 对 0.25 / 0.5 / 1.5 BTC 分别约 8.88 / 17.77 / 53.30 USDT。这和 repo 默认上限 75,000 USDT 相差太远。max_abs_ofi = 50 并非永不触发,但也很少触发:本轮只在 2 / 179 次 transition 上越线;说明 OFI 阈值还算像“红灯”,但 liquidation-cost 阈值明显不像。补一条更关键的实现审计结论:按 repo 当前 black_swan_scenario() 写法,本轮 0.25 BTC 的 stressed liquidation cost 中位数约 8.17 USDT,反而低于 base cost 8.88 USDT。这不是市场在帮你省钱,而是 stress 函数把 mark 和执行价格一起下移,吃掉了本该体现的尾部损失。
先诚实回答那句内部问题:它为什么比继续补 raw alpha 更值得?
因为今天 raw alpha 池已经连续补了 pairs / carry / maker / relative-value 多条新线,当前更缺的不是“再来一个信号故事”,而是把现有 maker 原型接上一层统一的 quote veto / inventory throttle。如果没有这一层:
reference-price maker shell 会在流动性抽走时继续机械挂单;OFI × fair-value maker alpha 会把强流偏与库存风险混在一起;所以它虽然不是 raw alpha,但它不是泛风险闲聊,而是直接服务当前 raw alpha 素材池里最活跃的 maker 分支。
reference-price anchored spread capture、OFI × fair-value shift maker skew、OBI quote-skewabs(OFI) 过阈、liq_cost(position) 过阈、|indifference_price - mid| 过阈时,降档或停 quote对任何一个 1s/5s/1m maker alpha,当 abs(OFI)、liquidation_cost(position)、reservation drift 同时变坏时,继续维持原 quoting aggressiveness 会显著放大 adverse selection;加 veto 后,净 markout / inventory drift 会改善,哪怕 quote-on ratio 略降。
直接拿现有两条 maker 原型做 replay:
refprice-anchored-maker-shellmm-live-ofi-fairvalue-maker-alpha对每条策略,在同一份 depth/trade 回放里比较两版:
abs(OFI_top10) > q90liq_cost(position) > q90(position_bucket)|indifference_price - mid| > k * spread观察 4 组指标:
5s / 30s / 60s adverse markout第一版不要照抄 repo 默认 hard limits,而是用本品种经验分位数:
q90 / q950.1 / 0.25 / 0.5 / 1.0 BTC)分别定 q90spread 或 ATR(1m) 标准化后再设阈值metrics.py最值钱的是它把 OFI / inventory delta / indifference price / liquidation cost 全部压成了可实时算的函数,而不是抽象风控口号。
engine.py它已经把 metric -> risk_flags -> action semantics 这条链子写出来了。对我们 desk,这比 UI 更值钱,因为它能直接接策略网关。
stress_test.py思路值得保留:L-VaR + liquidity shock 应该成为 maker 风控层的一部分;但当前实现必须重标定,不能直接当生产真值。
liquidation_cost_1m 只看当前 order book 深度,不含真实 queue position、partial fill path、latency、self-impact、撤单失败;它更像实时风控 proxy,不是真实成交成本全息模型。black_swan_scenario() 对小仓位会低估尾部损失,第一版接生产前必须改。fapi/v1/depth?symbol=BTCUSDT&limit=50depth@100ms + aggTrade/root/clawd/jerry/momentum/tmp/live_mm_risk_probe_20260412_2018.json/root/clawd/jerry/momentum/tmp/live_mm_risk_probe_20260412_2018_summary.jsonhttps://github.com/jianingwang124/Real-time-Market-Making-Risk-Monitorhttps://github.com/jianingwang124/Real-time-Market-Making-Risk-MonitorREADME.md、src/risk_monitor/metrics.py、src/risk_monitor/stress_test.py、src/risk_monitor/config.py、src/risk_monitor/engine.pyhttps://fapi.binance.com/fapi/v1/depth?symbol=BTCUSDT&limit=50