源文件:research/quant_digests/2026-04-08_2336_surface-mispricing-strikecurve-alpha.md
same-event multi-strike surface mispricing mean reversion这次看的是 pawelsibyl/marketlens-python。我重点审了 README.md、examples/backtest_surface.py、examples/backtest_limit_orders.py、examples/microstructure.py、src/marketlens/helpers/surface.py。它最值得 intake 的,不是“能回放 Polymarket L2”这件事,而是 repo 已经把 同一事件多 strike 合约的曲线错价 写成一条可直接回测的 raw alpha。
backtest_surface.py:它先用全 sibling books 拟合单调曲线,再比较单个合约的 fair_mid 和市场 mid,只有当 edge 够厚才交易,并配上时间止损与仓位上限。backtest_surface.py 的最小规则非常清楚:edge >= 0.02(至少 2 美分错价)才开仓,单笔 stake=100,max_positions=1,max_hold=6h,并要求 min_volume=2000、min_step=5、max_spot_distance_pct=0.2。surface.py 不是拍脑袋平滑,而是把 sibling 合约的 raw mids 先转成 survival probabilities,再做 isotonic / PAVA 单调修正,输出每个 strike 的 fair_mid / fair_yes / fair_no。这意味着 alpha 本体不是“猜方向”,而是“市场内部横截面定价不一致”。backtest_limit_orders.py 展示了 midpoint 附近挂单、fill 后再平仓 的 maker-ish 执行框架;microstructure.py 则把 spread_bps / imbalance / best bid-ask / microprice 拉成特征矩阵,说明这条 raw alpha 还可以继续叠一层 entry timing。这条线和当前 short-cycle desk 的关系很直接:
same-event strike surface mispricing1m/5m 最小实验,再决定是否接更细的 tick / queue / maker fill同一 expiry 下多 strike 合约的 market mid 偏离拟合后的单调 survival fair valuemax_hold=6h 时间止损、可接 midpoint limit-order 执行与 microstructure timing研究假设: 如果同一事件的多 strike 价格应该落在一条单调曲线,但市场暂时把某一档 strike 定得过高/过低,那么这档合约随后会向曲线公平值回归。
最小定义:
1m。mid 转成 survival probabilities,并用 isotonic/PAVA 强制单调。edge = fair_mid - market_mid;edge >= +2c 做多,edge <= -2c 做空,或做 paired long-short basket。fair-mid recross、时间止损(先照 repo 用 6h),或事件前最后 N 分钟强制平仓。post-cost edge capture / trade、fill ratio;第二层再看 paired vs unpaired 的回撤差异。pawelsibyl. marketlens-python. GitHub repo.https://github.com/pawelsibyl/marketlens-pythonREADME.md, examples/backtest_surface.py, examples/backtest_limit_orders.py, examples/microstructure.py, src/marketlens/helpers/surface.pyhttps://api.marketlens.trade/v1/docshttps://polymarket.com/