4. 泊松过程:从定义到实战

泊松过程,说白了就是用来描述「随机事件在时间轴上怎么发生」的数学模型。我最早接触它是在做高频交易策略的时候——订单流到达交易所的时间间隔,居然完美符合泊松分布。嗯,这玩意儿比我想象中实用得多。

4.1 泊松过程的定义

先给个严谨定义,别怕,我马上用人话解释。

一个计数过程 {N(t), t ≥ 0} 被称为泊松过程,如果它满足:

  1. N(0) = 0
  2. 独立增量性:不相交的时间区间内事件数相互独立
  3. 平稳增量性:在任意长度为 t 的区间内,事件数只与 t 有关
  4. P(N(t) = 1) = λt + o(t),P(N(t) ≥ 2) = o(t)

第四条看着吓人,其实意思很简单:在极短的时间 dt 内,最多发生一个事件。λ 就是强度,代表单位时间内平均发生多少次。

核心公式:在时间 t 内发生 k 个事件的概率为

P(N(t) = k) = (λt)^k * e^(-λt) / k!

这就是泊松分布,k = 0, 1, 2, ...

我在做订单簿建模时,就用这个公式预测每秒的订单到达数量。实测下来,低流动性时段拟合得特别好,高流动性时段嘛...后面会讲怎么修正。

4.2 到达间隔分布

这个知识点特别重要。你想想看,如果事件是随机到达的,那两次事件之间的时间间隔服从什么分布?

答案是:指数分布

设 T₁ 为第一个事件到达时间,T₂ 为第一个与第二个事件之间的间隔,以此类推。那么 T₁, T₂, ... 独立同分布,且

P(T > t) = e^(-λt)

概率密度函数为 f(t) = λe^(-λt),t ≥ 0。

我的经验:指数分布有个「无记忆性」——不管你已经等了多久,剩余等待时间的分布不变。这特性在交易中意味着:如果你在等一个信号出现,过去等了多久都不影响未来还要等多久。别因为等得久就觉得「快来了」。

我曾经用这个性质优化过止损策略。当时做的是「等待最佳入场点」的算法,利用指数分布的无记忆性,避免了「已经等了很久所以不舍得放弃」的心理偏差。效果还不错。

4.3 复合泊松过程

现实交易中,事件不光有「到达」这个属性,还有「大小」。比如每笔订单的成交量、每次价格跳动的幅度。这时候就需要复合泊松过程了。

定义很简单:

X(t) = Σ_{i=1}^{N(t)} Y_i

其中 N(t) 是泊松过程,Y₁, Y₂, ... 是独立同分布的随机变量,代表每次事件的大小。

举个例子:

  • N(t) = 每分钟到达的订单数量(泊松过程)
  • Y_i = 第 i 笔订单的成交量(比如服从对数正态分布)
  • X(t) = 到时间 t 为止的总成交量

这个模型我用来做过成交量预测。当时有个策略需要预估未来5分钟的总成交量,用复合泊松过程拟合历史数据,预测误差控制在15%以内。当然,遇到突发新闻时模型会失效——那是另一个故事了。

避坑指南:复合泊松过程的方差计算要小心。

E[X(t)] = λt * E[Y]
Var[X(t)] = λt * (E[Y²])

我曾经在计算风险敞口时忘了考虑 Y 的方差,结果低估了实际波动。嗯,那次回撤挺疼的。

4.4 知识体系总览

下面这张图把泊松过程的核心逻辑串起来了。我建议你多看几遍,理解每个模块之间的关联。

泊松过程知识体系 泊松过程 定义与性质 • N(0)=0 • 独立增量性 • 平稳增量性 到达间隔分布 • 指数分布 • 无记忆性 • P(T>t)=e^(-λt) 复合泊松过程 • X(t)=ΣY_i • 事件大小随机 • 成交量建模 交易应用场景 订单流建模 | 成交量预测 | 风险敞口计算 | 止损策略优化 λ = 强度参数(单位时间平均事件数) Y_i = 第 i 次事件的大小(独立同分布)

4.5 实战小贴士

最后分享几个我在项目中积累的经验:

  • 参数估计:λ 直接用样本均值估计就行。但要注意,如果数据有自相关性(比如订单到达在短时间内会聚集),那泊松过程就不太适用了。这时候可以考虑自激过程(Hawkes过程),那是后面章节的内容。
  • 检验方法:拿到数据后,先画个到达间隔的直方图,看它像不像指数分布。我一般用 Kolmogorov-Smirnov 检验做验证。
  • 代码实现:Python 里用 numpy.random.poisson 生成泊松随机数,用 numpy.random.exponential 生成间隔时间。模拟复合泊松过程就是先模拟 N(t),再模拟 N(t) 个 Y_i。

一个小技巧:如果你需要模拟高频交易中的订单到达,可以用两个泊松过程叠加——一个代表「正常订单流」(低强度),一个代表「突发订单流」(高强度)。这样能模拟出市场平静期和活跃期的交替。我管这叫「双泊松模型」,虽然不完美,但比单泊松强多了。

好了,泊松过程就聊到这儿。记住三个核心:定义是基础,间隔分布是钥匙,复合过程是实战利器。下次遇到随机到达的事件,先想想能不能用泊松过程来建模——十有八九能行。