4. 泊松过程:齐次与非齐次泊松过程、到达间隔分布、叠加与分解
泊松过程,说白了就是描述「随机事件在时间轴上怎么发生」的数学模型。我刚开始做高频交易那会儿,总觉得这东西太理论,直到有一次在分析订单流数据时,发现限价单的到达时间间隔竟然完美符合指数分布——嗯,从那以后我再也不敢小看它了。
你想想看,在交易系统里,每一笔订单的到达、每一次报价的更新、每一个成交的确认,本质上都是随机事件。泊松过程就是用来刻画这些事件的「时间节奏」的。
4.1 齐次泊松过程
先讲最简单的版本。齐次泊松过程,我习惯叫它「稳定版」的随机事件流。它有三个核心假设:
- 独立性:不同时间段内的事件数量相互独立
- 平稳性:事件发生的速率 λ 是常数,不随时间变化
- 普通性:在极短的时间内,最多发生一个事件
数学上,如果 N(t) 表示到时间 t 为止发生的事件总数,那么:
P(N(t) = k) = (λt)^k * e^(-λt) / k!
这个公式看着吓人,其实意思很简单:给定一个固定的速率 λ,时间越长,事件数量越多,但具体是多少,服从泊松分布。
核心参数 λ 的含义:λ 是单位时间内事件的平均发生次数。在交易中,λ 可以表示每秒的订单到达数、每分钟的成交笔数等。
4.2 到达间隔分布
这里有个特别重要的性质——我个人觉得这是泊松过程最漂亮的地方。事件之间的时间间隔,服从指数分布。
为什么会这样?因为指数分布具有「无记忆性」。你想想看,如果你在等下一笔订单,已经等了 5 秒,和刚等了 1 秒,剩余等待时间的分布是一样的。这在数学上很优雅,但在实际交易中,我遇到过不少坑。
我曾经踩过的坑:在分析某只股票的订单簿数据时,我默认到达间隔服从指数分布,结果拟合效果很差。后来发现,这是因为市场开盘和收盘时段,订单到达速率明显不同。齐次泊松过程在这里不适用。
指数分布的概率密度函数:
f(t) = λ * e^(-λt), t ≥ 0
它的均值是 1/λ,方差是 1/λ²。这意味着什么?意味着如果你看到订单到达的平均间隔是 0.1 秒,那么标准差也是 0.1 秒——波动很大。实际交易中,订单流的波动往往比这更大,这就是为什么我们需要更复杂的模型。
4.3 非齐次泊松过程
刚才说了,齐次泊松过程假设速率 λ 是常数。但在真实的高频交易场景中,这个假设基本不成立。市场有开盘、收盘、午休、重大新闻发布等时段,订单到达速率是随时间变化的。
非齐次泊松过程就是来解决这个问题的。它的速率 λ(t) 是时间的函数。比如:
- 开盘前 5 分钟,λ(t) 可能高达每秒 1000 笔
- 午休时段,λ(t) 可能降到每秒 50 笔
- 收盘前 10 分钟,λ(t) 又会急剧上升
数学上,我们定义累积强度函数:
Λ(t) = ∫₀ᵗ λ(s) ds
那么事件数量 N(t) 服从泊松分布,均值为 Λ(t)。
我的实战经验:在构建高频交易信号时,我通常用分段常数函数来近似 λ(t)。比如把一天分成 5 分钟一段,每段内假设 λ 是常数。这样既保留了非齐次的灵活性,又便于计算。
4.4 泊松过程的叠加
这个性质在实际中太有用了。多个独立的泊松过程叠加在一起,结果还是一个泊松过程,速率等于各个速率之和。
你想想看,在交易系统中:
- 买单到达是一个泊松过程,速率 λ_buy
- 卖单到达是另一个泊松过程,速率 λ_sell
- 所有订单到达的总过程,速率就是 λ_buy + λ_sell
这个性质让我在做系统设计时省了不少事。我可以分别建模不同类型的订单流,然后叠加起来分析整体行为。
4.5 泊松过程的分解
叠加的反操作就是分解。如果一个总的事件流是泊松过程,速率 λ,那么每个事件独立地以概率 p 属于类型 A,以概率 1-p 属于类型 B,那么类型 A 和类型 B 的事件流各自是泊松过程,速率分别为 pλ 和 (1-p)λ。
举个例子:
假设总订单流是泊松过程,速率 λ = 100 笔/秒
其中 60% 是买单,40% 是卖单
那么:
- 买单流:泊松过程,速率 60 笔/秒
- 卖单流:泊松过程,速率 40 笔/秒
重要应用:在构建高频交易策略时,我经常用分解性质来分离不同类型的信号。比如把成交数据分解为「主动买入成交」和「主动卖出成交」,分别分析它们的统计特性。
4.6 知识体系结构图
下面这张图展示了泊松过程的核心知识脉络,我建议你把它当作学习路线图:
4.7 实战中的注意事项
说了这么多理论,最后分享几个我在实战中总结的经验:
- 不要盲目假设齐次性:交易数据几乎都是非齐次的。先做平稳性检验,再决定用哪种模型。
- 到达间隔的检验:用 QQ 图对比实际间隔分布和指数分布,如果偏差太大,考虑用混合模型或自激过程。
- 叠加性质的应用:在构建多因子信号时,可以把不同来源的信号视为独立的泊松过程,叠加后分析整体效果。
- 分解的陷阱:分解性质要求事件类型是独立随机分配的。如果类型之间有相关性(比如大单拆单),分解性质就不成立了。
一个小技巧:我习惯用「时间扭曲」的方法处理非齐次泊松过程。通过变换时间尺度,把非齐次问题转化为齐次问题,这样很多现成的工具就能直接用了。
泊松过程是随机过程里最基础也最实用的模型之一。掌握了它,你就能理解更复杂的模型,比如自激过程、Cox 过程等。这些在高频交易信号捕捉中都是利器。