【维克】大数定律与中心极限定理:为什么长期均值终将回归?

年化20%量化笔记 · 第29篇

WHY 为什么这两个定理是概率论的"定海神针"

一个你每天都在经历、却未必理解的现象

上个月复盘交易记录,我发现一个有趣的事情:我某个趋势跟踪策略在单个月份的胜率波动很大------最好的月份胜率68%,最差的月份只有31%。但当我把过去24个月、共480笔交易汇总来看,胜率稳稳地落在47%附近。

这背后的数学原理,就是概率论中最伟大的两个定理:大数定律(Law of Large Numbers, LLN)中心极限定理(Central Limit Theorem, CLT)

大数定律告诉你:样本量足够大时,极端表现终将回归均值。 那个68%的胜率和31%的胜率,都不是策略的"真实水平"------47%才是。

中心极限定理进一步告诉你:即使每一笔交易的结果完全独立、分布很奇怪,大量交易的平均收益率会服从正态分布。 这意味着你可以用正态分布的工具来评估策略的风险和表现。

为什么量化交易者必须理解这两个定理

|--------|-----------------------|-----------------------|
| 场景 | 大数定律的作用 | 中心极限定理的作用 |
| 策略评估 | 只有交易次数够多,胜率才有统计意义 | 策略平均收益的分布近似正态,可计算置信区间 |
| 回测验证 | 样本量太小,回测结果毫无意义 | 可以对回测结果做假设检验,判断策略是否有效 |
| 风险管理 | 单笔亏损不可预测,但大量交易的平均亏损可控 | 组合损失的分布可以近似计算 |
| 资金管理 | 短期回撤是随机的,长期期望收益是确定的 | 回撤幅度的分布可以用正态近似估算 |

一个残酷的真相:你的样本量可能远远不够

很多量化新手犯的最大错误之一:用30笔交易的回测结果来"验证"策略。

大数定律告诉我们,样本量越小,结果偏离真实期望的概率越大。30笔交易,你的胜率可能在30%到70%之间大幅波动------这不是策略有效或无效的证据,这只是随机性

经验法则:一个策略至少需要200-300笔以上的交易 ,胜率的95%置信区间才会收窄到±5%左右。少于100笔?你的"验证"基本等于抛硬币。

HOW 两个定理的核心思想与实操应用

1. 大数定律:样本均值收敛于期望值

弱大数定律(Weak Law of Large Numbers):

如果 X₁, X₂, ..., Xₙ 是独立同分布的随机变量,期望为 μ,则当 n → ∞ 时,样本均值 X̄ 依概率收敛于 μ:

通俗翻译 :你重复做同一件事足够多次,平均结果会无限接近"真实期望"。

金融场景实例

假设你的策略每笔交易期望收益为 +0.5%(扣费后),标准差为 3%。

• 交易10次:平均收益可能在 -8% 到 +10% 之间

• 交易100次:平均收益可能在 -0.5% 到 +1.5% 之间

• 交易1000次:平均收益可能在 +0.3% 到 +0.7% 之间

• 交易10000次:平均收益几乎必然在 +0.45% 到 +0.55% 之间

这就是为什么量化交易是"大数游戏"------单笔交易的随机性很大,但大量交易的平均结果趋于确定。

强大数定律(Strong Law)更进一步 :样本均值几乎必然收敛(不只是大概率收敛),这给了数学上更强的保证。

2. 中心极限定理:万物归于正态

中心极限定理(CLT):

如果 X₁, X₂, ..., Xₙ 是独立同分布的随机变量,均值为 μ,方差为 σ²,则当 n 足够大时:

通俗翻译 :不管原始数据是什么分布,只要样本量足够大,样本均值的分布趋近于正态分布。

这一定理的深刻之处在于 :即使单笔交易的收益率不服从正态分布(现实中几乎不可能服从),大量交易的平均收益率 仍然近似正态分布。

金融场景中的威力

|--------|-------------------------------|
| 应用 | 怎么用CLT |
| 构建置信区间 | 策略平均收益 ± 1.96 × 标准误 = 95%置信区间 |
| 假设检验 | 判断策略收益是否显著大于0 |
| 蒙特卡洛模拟 | 模拟路径的平均结果可以用正态分布分析 |
| 组合优化 | 组合收益的分布可以用均值-方差框架处理 |

3. 实操:用代码验证大数定律

// python
import numpy as np
import matplotlib.pyplot as plt

模拟一个策略:每笔交易收益服从 t 分布(厚尾)

np.random.seed(42)
n_sims = 1000 # 模拟1000组
trade_returns = np.random.standard_t(df=3, size=(n_sims, 500))

假设策略有正期望

trade_returns += 0.005 # 每笔 +0.5%

计算不同样本量下的平均收益

sample_sizes = 10, 30, 50, 100, 200, 500
means_by_n = {}
for n in sample_sizes:
means_by_nn = np.mean(trade_returns\[i, :n) for i in range(n_sims)]

可视化收敛过程

fig, axes = plt.subplots(2, 3, figsize=(15, 10))
axes = axes.flatten()
for idx, n in enumerate(sample_sizes):
axesidx.hist(means_by_nn, bins=50, density=True, alpha=0.7, color='steelblue')
axesidx.axvline(x=0.005, color='red', linestyle='--', label='真实期望')
axesidx.set_title(f'n={n}笔交易\n均值标准差={np.std(means_by_nn):.4f}')
axesidx.legend()
plt.suptitle('大数定律:样本量越大,样本均值越接近真实期望', fontsize=14)
plt.tight_layout()
plt.savefig('law_of_large_numbers_demo.png', dpi=150, bbox_inches='tight')
plt.show()

运行这段代码,你会直观地看到:

• n=10时,均值分布非常分散(标准差约0.015)

• n=500时,均值高度集中在0.005附近(标准差约0.002)

4. 实操:用CLT做策略显著性检验

// python
import numpy as np
from scipy import stats

假设你跑了200笔交易,记录每笔收益率

np.random.seed(42)
returns = np.random.standard_t(df=3, size=200) + 0.005

计算统计量

n = len(returns)
sample_mean = np.mean(returns)
sample_std = np.std(returns, ddof=1)
standard_error = sample_std / np.sqrt(n)

t检验(虽然CLT说n大时近似正态,实际中用t检验更稳健)

t_stat = sample_mean / standard_error
p_value = stats.t.sf(t_stat, df=n-1) # 单侧检验

print(f"样本均值: {sample_mean:.4f}")
print(f"标准误: {standard_error:.4f}")
print(f"t统计量: {t_stat:.3f}")
print(f"p值: {p_value:.4f}")

if p_value < 0.05:
print("✅ 策略收益在5%水平上统计显著")
else:
print("❌ 无法拒绝零假设------策略可能没有正期望")

关键点 :当样本量足够大(n > 30),t分布和标准正态分布几乎无法区分------这本身就是中心极限定理在起作用。

5. 均值回归:大数定律在交易中的直接应用

大数定律有一个非常重要的推论:均值回归(Mean Reversion)。

如果策略的真实期望收益是正的,那么:

• 连续亏损5次后,下一次盈利的概率并不会"增加"(每笔交易独立)

• 但未来的累计平均收益 会被"拉回"到期望值附近

• 换句话说:你不需要"赢回来"------你只需要继续执行策略,大数定律会帮你

这和心理学的"赌徒谬误"有本质区别

• ❌ 赌徒谬误:"连输5把了,下一把该赢了"------错误,每把独立

• ✅ 大数定律:"样本量足够大时,极端偏离会被稀释"------正确

WHAT 核心结论与行动清单

两个定理给你的量化交易核心启示

大数定律告诉你:

  1. 交易次数是策略验证的前提 ------少于200笔交易的回测,结论不可信

  2. 短期波动不代表策略失效 ------连亏10次,策略的期望可能没变

  3. 坚持执行比择时更重要 ------大数定律只对"持续执行"的策略生效

  4. 过度优化是自我欺骗 ------参数越多,过拟合越严重,样本外的"大数"会惩罚你

中心极限定理告诉你:

  1. 可以安全地使用正态假设来分析策略的平均表现 ------只要交易次数够多

  2. 置信区间是评估策略的必要工具 ------不要只看平均收益,要看置信区间

  3. 蒙特卡洛模拟有理论基础 ------模拟次数够多时,模拟结果的平均值接近真实期望

  4. 组合分散化的数学保障 ------分散投资降低的是组合收益的方差(CLT的直接应用)

可执行的行动

|--------|----------------|--------------------------------------|
| 序号 | 行动 | 量化标准 |
| 1 | 检查你当前策略的回测交易笔数 | 低于200笔?回测结论不可靠,需积累更多数据或降低参数复杂度 |
| 2 | 计算策略收益的95%置信区间 | 样本均值 ± 1.96 × (样本标准差/√n) |
| 3 | 对策略做单样本t检验 | p < 0.05 才有统计显著性 |
| 4 | 监控滚动窗口下的胜率偏离 | 用50笔滚动窗口,标记偏离期望超过2倍标准差的时段 |
| 5 | 建立"样本量达标"的检查清单 | 新策略上线后,至少积累200笔交易再下"有效/无效"的结论 |
| 6 | 理解回撤的大数定律含义 | 最大回撤的期望随交易次数增加而增加------这是数学必然,不是策略变差 |

第29篇核心公式速记

|---------|------------------------|--------------------|
| 概念 | 公式 | 含义 |
| 大数定律 | X̄ → μ (n→∞) | 样本均值收敛于总体均值 |
| 中心极限定理 | (X̄-μ)/(σ/√n) → N(0,1) | 标准化样本均值趋近标准正态 |
| 标准误 | SE = σ/√n | 样本均值的标准差,随样本量增大而减小 |
| 95%置信区间 | X̄ ± 1.96 × SE | 真实均值的95%可能落在这个区间 |

�� 下一篇预告 :第30篇《假设检验入门:如何判断一个策略是真的有效还是运气好?》------深入假设检验的完整流程:原假设、备择假设、检验统计量、p值、功效分析,帮你建立"数据驱动决策"的统计框架。

相关推荐
中微极客2 小时前
降维算法75倍加速:从PCA到稀疏字典学习的工程实践
人工智能·学习·算法
吃好睡好便好3 小时前
MATLAB中图像的读取、写入和显示
开发语言·图像处理·学习·计算机视觉·matlab
~kiss~3 小时前
大模型中的强化学习算法和对齐算法的区别
学习
MartinYeung53 小时前
[论文学习]InjecAgent:工具集成大语言模型智能体的间接提示注入基准测试
网络·学习·语言模型
sean9084 小时前
Vim 学习 - 快速删除/修改
学习·vim
小黄人软件4 小时前
如何解决不想学、学不会、学不进去,吸收内化不了学的东西,怎么办?如何真正建立“知识内化系统“?不输出,不学习
学习
个 人 练 习 生5 小时前
strcmp与strstr函数的模拟实现
c语言·开发语言·经验分享·学习·程序人生
晓梦林6 小时前
[ACTF2020 新生赛]BackupFile学习笔记
android·笔记·学习
2601_963870176 小时前
【计算机毕业设计】基于Spring Boot的社区老年大学课程报名与学习系统的设计与实现
java·spring boot·学习