1. 随机过程基础:定义与分类、状态空间与时间参数、样本轨道概念
各位同学,咱们今天正式开讲《随机过程高频交易信号捕捉》的第一章。说实话,每次带新人入门,我都要花大量时间讲清楚这个基础。为什么?因为太多人一上来就想着写策略、跑回测,结果连随机过程是个什么东西都没搞明白,最后亏得底朝天。
我个人习惯,学任何东西先看骨架。随机过程的骨架,就是三个东西:定义、分类、样本轨道。今天咱们一个一个啃。
1.1 随机过程到底是个啥?
先别急着看公式。你想想看,我们做高频交易,盯着的是一串价格序列——每秒、每毫秒都在变。这个序列,它是不是确定的?显然不是。下一秒价格涨还是跌,没人能100%说准。
好,那我们把这种随时间变化的不确定性,用数学语言描述出来,就是随机过程。
定义(我自己的理解):随机过程是一族随机变量 {X(t), t ∈ T},其中 t 是时间参数,X(t) 是某个时刻的状态。
说白了,就是给每个时间点贴上一个随机变量。比如 t=1 时,X(1) 可能服从正态分布;t=2 时,X(2) 可能又服从另一个分布。这些分布之间还有关联——嗯,这就是随机过程要研究的核心。
我在项目中遇到过一件事:有个同事把价格序列当成独立同分布的数据去建模,结果回测漂亮得不行,实盘直接崩了。为什么?因为他忽略了时间依赖性。随机过程就是专门处理这种依赖关系的工具。
1.2 两个核心要素:状态空间与时间参数
咱们把随机过程拆开看,就两个维度:
| 维度 | 名称 | 说明 | 高频交易中的例子 |
|---|---|---|---|
| 取值空间 | 状态空间 (State Space) | X(t) 可能取到的所有值 | 价格、成交量、买卖盘口深度 |
| 时间轴 | 时间参数 (Time Parameter) | t 的取值范围 | 连续时间(毫秒级)或离散时间(tick级) |
状态空间可以是离散的,也可以是连续的。举个例子:
- 离散状态空间:股票价格只取整数分位(比如 100.01, 100.02...),虽然现实中价格是离散的,但高频交易里我们经常把它近似成连续的
- 连续状态空间:价格可以取任意实数,比如几何布朗运动模型
时间参数也一样:
- 离散时间:t = 1, 2, 3, ... 比如每笔成交记录
- 连续时间:t ∈ [0, ∞),比如实时行情流
我的建议:做高频交易信号捕捉,我强烈建议你把时间参数当成连续的来处理。为什么?因为离散时间会丢失事件之间的微观结构。我曾经用离散时间模型做订单簿预测,结果发现很多关键信号都被时间切片给抹平了。
1.3 样本轨道:随机过程的一次"实况录像"
这个概念特别重要。你想想看,随机过程是一个随机变量的集合,但我们在现实中观察到的,只是其中一条具体的路径。
比如,你盯着某只股票从9:30到10:00的价格变化,记录下每一笔成交价。这条具体的价格曲线,就是随机过程的一个样本轨道 (Sample Path / Trajectory)。
用数学语言说:
- 随机过程 {X(t), t ∈ T} 是一个函数空间中的随机变量
- 每次实验(每次交易日的行情),得到一条具体的函数 x(t)
- 这条 x(t) 就是样本轨道
核心理解:随机过程 = 所有可能样本轨道的集合 + 每条轨道出现的概率
我记得刚入行时,有个老前辈跟我说:"你每天看到的行情图,只是上帝抛了无数次骰子中的一次结果。" 当时觉得是玄学,后来才明白,这就是样本轨道的精髓。
1.4 随机过程的分类(高频交易视角)
咱们做高频交易的,不需要把所有随机过程都学一遍。我按自己的经验,把最常用的几类列出来:
| 分类依据 | 类型 | 高频交易应用 |
|---|---|---|
| 状态空间 vs 时间参数 | 离散/连续 四种组合 | 离散时间离散状态:订单簿事件 连续时间连续状态:价格扩散模型 |
| 马尔可夫性 | 马尔可夫过程 / 非马尔可夫 | 马尔可夫:简化建模 非马尔可夫:捕捉长记忆效应 |
| 增量独立性 | 独立增量过程 / 相关增量 | 独立增量:布朗运动 相关增量:均值回复过程 |
| 平稳性 | 平稳过程 / 非平稳 | 平稳:套利策略 非平稳:趋势跟踪 |
避坑指南:我曾经犯过一个错误——把非平稳的价格序列当成平稳过程去建模,结果模型在样本内拟合得再好,样本外一测就崩。记住:价格序列几乎都是非平稳的,收益率序列才可能是平稳的。
1.5 知识体系总览
下面这张图,是我自己梳理的本章知识结构。建议你保存下来,学完后面章节再回来看,会有更深的理解。
1.6 一个简单的代码示例
光说不练假把式。咱们用 Python 模拟一个最简单的随机过程——随机游走。这在高频交易里常被用作价格运动的零假设模型。
import numpy as np
import matplotlib.pyplot as plt
# 模拟一个随机游走的样本轨道
np.random.seed(42)
n_steps = 1000
steps = np.random.normal(0, 1, n_steps) # 每一步的增量
path = np.cumsum(steps) # 累积得到样本轨道
# 这就是一条样本轨道
print("前10个价格:", path[:10])
# 如果你重复运行多次,每次得到的 path 都不一样
# 这就是随机过程的本质——无数条可能的轨道
你想想看,每次运行这段代码,得到的曲线都不一样。但所有可能的曲线集合,加上它们出现的概率,就构成了一个随机过程。这就是样本轨道的直观理解。
一个小练习:把上面的代码跑1000次,记录每次最后一步的值,画个直方图。你会发现它近似正态分布——这就是随机游走的转移概率在起作用。后面章节我们会深入讲这个。
1.7 本章小结
好,咱们捋一捋今天的内容:
- 随机过程 = 一族随时间变化的随机变量
- 状态空间 和 时间参数 决定了过程的"形状"
- 样本轨道 是随机过程的一次具体实现,我们每天看到的行情图就是一条样本轨道
- 从高频交易角度,我们重点关注马尔可夫性、增量独立性和平稳性这三个分类维度
我个人觉得,这一章最核心的就一句话:随机过程不是一条曲线,而是无数条曲线的集合。想通了这一点,后面学布朗运动、伊藤引理、信号捕捉,你才会有直觉。
嗯,今天就到这儿。记得把代码跑一跑,亲手感受一下样本轨道是怎么生成的。