一、随机游走假说:股票价格真的无法预测吗?
各位同学好,今天我们来聊一个金融时间序列里最基础、也最容易被误解的概念——随机游走假说。
说实话,我第一次接触这个理论时,心里是有点抵触的。你想啊,如果股价真的是随机游走,那我们这些做分析的人岂不是在瞎忙活?但后来我在实际项目中吃了不少亏,才慢慢理解了这个假说的真正含义。
1.1 什么是随机游走?
随机游走,英文叫 Random Walk,说白了就是:明天的价格 = 今天的价格 + 一个随机扰动。
用数学公式表达就是:
P_t = P_{t-1} + ε_t
其中 ε_t 是白噪声,均值为0,方差恒定。
嗯,这里要注意:随机游走并不意味着价格完全无序。它说的是价格变动不可预测,而不是价格水平不可预测。
核心区别:
- 价格水平:可以预测(比如今天100元,明天大概率在100元附近)
- 价格变动:不可预测(涨跌方向完全随机)
1.2 随机游走的三种形式
我在做量化回测时,发现很多人把随机游走想得太简单了。其实它有三种常见形式:
| 类型 | 公式 | 特点 |
|---|---|---|
| RW1(纯随机游走) | P_t = P_{t-1} + ε_t | 独立同分布增量 |
| RW2(带漂移项) | P_t = μ + P_{t-1} + ε_t | 有长期趋势 |
| RW3(带趋势和波动) | P_t = μ + P_{t-1} + σ_t·ε_t | 波动率可变 |
我个人习惯用RW2来建模股票价格,因为大多数股票确实有长期上涨的趋势。但要注意,这个趋势可能非常微弱,短期根本看不出来。
1.3 为什么说股价是随机游走?
这个假说的理论基础是有效市场假说。简单说就是:
- 所有已知信息都已经反映在股价里
- 新信息是随机出现的
- 所以股价变动也是随机的
你想想看,如果明天股价上涨是可以预测的,那大家今天就会买入,结果今天股价就涨上去了。这样一来,预测本身就会破坏预测的准确性。
一个小技巧:
检验股票是否服从随机游走,可以用单位根检验(ADF检验)。如果p值大于0.05,就不能拒绝随机游走的假设。
1.4 随机游走的数学性质
这里有几个关键性质,我建议你记牢:
- 方差随时间线性增长:Var(P_t) = t·σ²
- 自相关函数衰减缓慢:价格水平有很强的自相关性
- 差分后是白噪声:ΔP_t = ε_t
我曾经在分析某只科技股时,发现它的日收益率自相关系数只有0.03,几乎为0。这就是典型的随机游走特征。但很多人看到价格走势图上有趋势,就以为可以预测,结果亏得很惨。
1.5 随机游走与永久冲击的关系
这一点特别重要,也是我们这门课的核心:
随机游走意味着冲击是永久性的。
如果今天股价因为某个利空消息下跌了5%,这个下跌不会自动恢复。它会在价格里永远留下痕迹。这就是永久冲击。
相比之下,如果是均值回归过程(比如债券收益率),冲击会逐渐消失,价格会回到原来的水平。那就是临时冲击。
避坑指南:
我曾经犯过一个错误:看到某只股票连续下跌3天,就以为它会反弹。结果它继续跌了10天。为什么?因为随机游走没有均值回归的特性。下跌之后,继续下跌的概率和上涨的概率是一样的。
1.6 如何用Python检验随机游走?
这里给一段简单的代码,你可以自己跑跑看:
import numpy as np
import pandas as pd
from statsmodels.tsa.stattools import adfuller
# 生成随机游走数据
np.random.seed(42)
n = 1000
returns = np.random.normal(0, 1, n)
price = 100 + np.cumsum(returns)
# ADF检验
result = adfuller(price)
print(f'ADF统计量: {result[0]:.4f}')
print(f'p值: {result[1]:.4f}')
# 如果p值 > 0.05,不能拒绝随机游走假设
if result[1] > 0.05:
print('数据服从随机游走')
else:
print('数据不服从随机游走')
跑完你会发现,p值通常很大,说明随机游走的假设很难被拒绝。
1.7 随机游走假说的现实意义
说了这么多,你可能想问:这玩意儿到底有什么用?
我个人觉得,理解随机游走假说最大的价值在于:让你对预测保持敬畏。
- 如果你相信随机游走,就不要试图做短期择时
- 如果你不相信,那就要找到足够强的证据来反驳
- 大多数散户亏钱,就是因为低估了随机性,高估了自己的预测能力
当然,随机游走假说也不是完美的。很多实证研究发现,股票收益率存在一些微弱的可预测性,比如动量效应、反转效应等。但这些效应非常微弱,交易成本一扣就没了。
我的建议:
做分析时,先把随机游走当作默认假设。如果你发现了可预测性,先问问自己:这个信号够强吗?能覆盖交易成本吗?能持续吗?如果答案是否定的,那就老老实实接受随机游走。
1.8 本章小结
随机游走假说告诉我们:
- 股价变动不可预测,但价格水平可以建模
- 冲击是永久性的,不会自动恢复
- 不要轻易相信你看到的"趋势"
下一章我们会深入讨论永久冲击和临时冲击的区别,以及如何用统计方法把它们分离开。嗯,到时候我会分享一个我在实际项目中用过的分解方法,挺实用的。