事件套利基础:数学原理与实战框架

做量化这些年,我越来越觉得事件套利是个很有意思的领域。它不像高频交易那样拼速度,也不像宏观对冲那样拼格局。说白了,它是在「信息差」和「市场反应滞后」之间找饭吃。

今天这一章,我们先把地基打牢。我会从数学原理讲起,再聊统计套利怎么跟事件驱动结合,最后说说风险因子剥离——这三个东西搞明白了,后面的实战才有底气。

事件套利的数学本质

事件套利的核心,其实就一句话:预期收益 = 事件发生概率 × 事件影响幅度 - 当前价格偏差

嗯,听起来很简单对吧?但实际做起来,坑多得很。

我习惯把事件套利的数学框架拆成三个部分:

  1. 事件概率模型:判断某个事件会不会发生
  2. 影响幅度估计:事件发生后,价格会变动多少
  3. 时间衰减因子:事件越晚发生,年化收益越低

核心公式(简化版)

E[Return] = P(event) × ΔP - (1-P(event)) × Loss - t × r

其中:
P(event) = 事件发生概率
ΔP = 事件发生后的预期价格变动
Loss = 事件未发生时的最大亏损
t = 持仓时间
r = 资金成本率

你想想看,如果P(event)是80%,ΔP是10%,但万一没发生要亏30%,那这笔交易其实不划算。我在2019年做过一个并购套利案例,当时市场普遍认为并购成功率90%以上,结果因为反垄断审查失败,股价直接腰斩。那次之后,我给自己定了个规矩:永远把「事件失败」的损失算清楚

统计套利与事件驱动的结合

很多人觉得统计套利和事件驱动是两码事。前者靠数学,后者靠消息。其实不然。

我个人习惯的做法是:用统计套利的方法来量化事件的影响

举个例子。某公司要发布财报,市场预期EPS是1.2元。这时候你该怎么做?

  • 纯事件驱动派:赌财报超预期,直接买入
  • 纯统计套利派:看历史波动率,做期权策略
  • 结合派(我推荐):先算「预期偏差的统计分布」,再决定仓位

具体怎么结合?我一般分三步走:

  1. 建立事件数据库:把过去5年同类事件的价格反应记录下来
  2. 计算统计特征:均值、标准差、偏度、峰度
  3. 构建交易信号:当当前预期偏差超过2个标准差时,触发交易

一个小技巧:别只看价格变动,要看「残差」。把市场整体波动剥离掉,剩下的才是事件本身的贡献。我曾经因为没做这一步,把大盘上涨的功劳算到了事件头上,结果回测曲线漂亮得不像话,实盘直接打脸。

风险因子剥离:别让噪音干扰你

做事件套利最怕什么?最怕你以为是事件在驱动价格,其实是别的因子在作祟。

常见的干扰因子包括:

因子类型 影响方式 剥离方法
市场因子 大盘涨跌掩盖事件效应 回归剥离:收益 = α + β×市场收益 + ε
行业因子 同行业公司同时波动 做多事件股,做空行业ETF
流动性因子 小盘股波动大,容易误判 用Amihud指标调整信号强度
情绪因子 市场恐慌/贪婪放大反应 加入VIX或恐慌指数作为协变量

我记得有一次做业绩预告套利,回测时夏普比率高达3.5,兴奋得不行。结果仔细一查,发现大部分收益来自小盘股在牛市中的贝塔暴露。把市场因子剥离后,夏普直接掉到0.8。嗯,这就是不剥离风险因子的代价。

我建议的做法是:每笔事件套利交易,都跑一遍多因子回归

# 伪代码示例:风险因子剥离
def event_return_attribution(returns, market_returns, industry_returns):
    """
    剥离市场因子和行业因子后的事件收益
    """
    import statsmodels.api as sm
    
    X = sm.add_constant(np.column_stack([market_returns, industry_returns]))
    model = sm.OLS(returns, X).fit()
    
    # α就是剥离后的纯事件收益
    alpha = model.params[0]
    residual = model.resid
    
    return alpha, residual

注意:剥离因子不是越多越好。加太多因子会导致过拟合,尤其是那些跟事件本身相关的因子。比如你剥离了「波动率因子」,但事件本身就会改变波动率——这就把婴儿和洗澡水一起倒掉了。

本章知识体系总览

下面这张图是我自己梳理的框架,把事件套利的三个核心模块串起来了。你可以把它当作一个检查清单,每次做交易前过一遍。

事件套利基础框架 数学原理 统计套利结合 风险因子剥离 概率模型 × 影响幅度 × 时间衰减 预期收益 = P × ΔP - (1-P) × Loss 事件数据库 → 统计特征 → 交易信号 残差分析:剥离大盘后的纯事件收益 市场因子 / 行业因子 / 流动性因子 多因子回归:α = 纯事件收益 核心目标:找到「被错误定价的事件」 概率 × 幅度 × 剥离噪音 = 可交易的α ⚠ 避坑指南:不要剥离与事件本身相关的因子 波动率因子、流动性因子可能本身就是事件的结果

这张图我每次做策略评审都会拿出来看一遍。三个模块缺一不可:数学原理给你方向,统计套利给你方法,风险因子剥离给你纯度。

最后说一句掏心窝的话:事件套利看着简单,做起来难。难就难在「概率」和「幅度」都是动态的。市场在变,参与者在变,监管也在变。我见过太多人拿着一个历史回测漂亮的策略直接上实盘,结果亏得底裤都不剩。

嗯,这一章先到这里。下一章我们会聊具体的事件类型和交易流程——到时候我会拿几个我实际做过的案例来拆解。


专注资料整理