源文件:research/quant_digests/2026-03-30_1018_samevenue-conversion-reversal-parity-alpha.md
strategies/arbitrage/conversion.py / docs/theory.md source audit + Deribit BTC options 公共 live sanity check + 2023 *Mathematical Finance* 理论锚点call-put-spot/perp 在 carry 调整后的 put-call parity 上出现可覆盖 frictions 的偏离;当偏离足够大时做 conversion / reversal,吃的是 synthetic forward 向理论 forward 回归的相对价值 alpha。这次主看 signorloops/crypto-options-research-platform (2026) 里的 strategies/arbitrage/conversion.py。如果只用一句人话概括,这份 repo 真正适合 desk intake 的,不是再看一遍 box spread,而是:
> 把 same-venue 的 put-call parity 偏离,直接写成 trade only when deviation > cost hurdle 的 conversion / reversal 状态机。
对当前 desk,这条线的价值在于:它是一条独立完整的 raw alpha,不是 filter;而且它天然属于 relative value / stat-arb,能补现在素材池里更偏 trend / pairs / funding 的另一块。
synthetic_forward = call_price - put_pricetheoretical_forward = S * exp(-qT) - K * exp(-rT)deviation = synthetic_forward - theoretical_forwarddeviation > total_cost 做 conversion;若 deviation < -total_cost 做 reversal。risk_free_rate = 5%、min_profit_threshold = 0.1%、transaction_cost = 0.2% 单边;并把总门槛写成 3 * transaction_cost * spot,等于显式要求一次 trade 必须同时覆盖 call + put + underlying 三条腿的 frictions。q=0。 calculate_parity_deviation() 允许把 staking_yield/carry yield 带入 S * exp(-qT)。这点对 crypto 重要,因为这里的“现货腿”很多时候更像 spot / perp / synthetic cash leg,不是传统股票的静态 carry 环境。get_hedge_position() 已经把 conversion 写成 short call + long put + long underlying,reversal 写成 long call + short put + short underlying;calculate_margin_requirement()、calculate_pnl_scenarios()、verify_arbitrage_bounds() 也已经把保证金、情景 PnL、无套利边界检查放进同一个壳子。docs/theory.md 也明确写了 inverse 期权;可 conversion.py 里直接用 call_price - put_price 去和 S - K e^{-rT} 比,默认假设 premium 与 spot/strike 在同一计价单位。若 live 行情是 Deribit 常见的 BTC 计价 premium,就必须先统一 numeraire,否则 parity gap 会被“单位错位”污染。一句话核心结论:
> 对 desk 更值得先测的,不是 box spread 的年化利率故事,而是 same-venue synthetic-forward mispricing 本身;但必须先把 inverse premium 统一到同一计价单位,再谈 alpha。
一句话说明它怎么证明:
> 不是只在 README 里口头讲 parity,而是把偏离定义、成本门槛、三腿方向、保证金估算、PnL 场景和 bound check 全写成了可审计代码;再用公开 Deribit option chain 做 live sanity check,能直接看出“数据是公开的、机会是稀薄的、单位问题是真的”。
这轮值得写它,而不是再补一篇纯解释型 options 综述,原因很直接:
event-driven snapshot -> 短时间收敛 -> 快速平仓;最自然的实验频率就是 1m / 3m,5m 做容错,15m 只适合做机会热度面板,不适合当主时钟。friction hurdle 不交易;腿的盘口深度不足、不同时戳、spread 过宽、估算 carry 不可靠时 vetotransaction_cost = 0.2% 单边,total_cost = 3 * cost * spot,意味着策略不是“看到一点点 parity 漂移就上”。min_profit_threshold = 0.1%,利润/现货价不过线直接过滤。880 个未到期 BTC options;其中最近到期 ATM 附近的 BTC-31MAR26-67500-C/P 中间价折成 USD 后,synthetic_forward - theoretical_forward ≈ -7.73 USD,约 -1.15 bps of spot,说明 same-venue parity 机会大概率不是“常驻宽边”,而是要做事件驱动 + 高质量费用口径。最该先偷的,不是 repo 里写的 5% 无风险利率,也不是名义年化,而是这条 admission rule:
> parity 偏离只有在穿过三腿总 frictions 后,才允许变成仓位。
这件事对 options alpha 特别关键,因为很多“看起来有 gap”的机会其实会死在:
repo 的价值正是把这些坑的框架搭好了:先算 deviation,再比 hurdle,再决定 conversion 还是 reversal。
1s~5s snapshot,再聚合到 1m / 3mS * exp(-qT) - K * exp(-rT) 比;不要直接 call_price - put_price 硬减。gap_usd = synthetic_forward_usd - theoretical_forward_usdgap_bps = gap_usd / spot * 10000|gap_bps| > fee + slip + stale_quote_buffer1~2sgap > hurdle -> conversiongap < -hurdle -> reversalmax_hold = 1m / 3m / 5m;或6 / 10 / 14 / 20 bps,并把三腿分别记账,而不是只看总费用。1m hold 与 3m hold 谁更像收敛而不是噪音?15m bar-close alpha;它更像 event-driven scanner。q=0;crypto 里 spot/perp/staking 的持有收益和融资拖累都可能改掉 fair value。它值得进池,不是因为 repo 已经给了可信回测,而是因为它补了一个当前素材池里很像 raw alpha、又很容易做 first verdict 的槽位:
> 同所 options parity mispricing 本身就是 alpha;而且比很多“模型先行”的 options 线更容易被拆成干净的 trade-on / trade-off 规则。
对当前 desk,这比继续补一个纯 overlay 更值钱,因为它能直接产出一轮诚实的 1m/3m 事件驱动验证。
Deribit BTC 最近 7~14 天 snapshot 采集。 只抓同到期 call/put + index/perp。same-venue conversion/reversal 跑 friction ladder。 先测是否存在真正穿过 10~20 bps 成本带的事件。call-put + spot 与 call-put + perp 哪个更可执行。