首页 / 交易学院 / 统计分布在交易者工作中的作用:从理论分布到实战采样
统计分布在交易者工作中的作用:从理论分布到实战采样
📊

统计分布在交易者工作中的作用:从理论分布到实战采样

量化评估 难度 · 进阶 2013 12 分钟阅读
统计分布随机数生成MQL5量化交易假设检验

为什么交易者需要统计分布

随机性的对立面是“规律性”。如果放在市场环境中考虑,随机性-规律性相关性直接影响交易者获得的盈利金额。我们先用理论分布描述随机变量样本,再通过采样验证自己关于市场的假设是否成立。

例如“价格像掷硬币一样无序、每根 K 线独立”是常见浪漫假设,但用真实数据跑一遍分布拟合就会发现它站不住脚。

Random 类:生成指定分布的随机样本

为了检验各种统计测试,我们需要能按指定规律生成样本的工具。数值算法经典《Numerical Recipes》提供的高质量生成器期段约 3.138×10^57,把它的 C 代码迁移到 MQL5 即可得到 Random 类。

// Random: 生成服从指定分布的随机样本
class Random
  {
private:
   uint m_seed;
public:
   void Random(uint seed) { m_seed = seed; }
   // 均匀随机数 [0,1)
   double doub() { return (double)rand()/(double)RAND_MAX; }
   // 正态分布(Box-Muller)
   double normalDev(double mean, double sigma);
   // 指数/泊松等由派生类实现
  };

类层次结构与 CNormaldev

CNormaldev 封装正态分布抽样,setNormaldev 设置参数,dev() 返回一个抽样值;CExpStatistics 负责累积样本统计(均值、方差)。这种层次结构让你只需传入参数和样本量,就能拿到一组值供后续处理。

用采样验证统计假设

获得理论分布样本后,可做两组对照:一是检查自己策略的历史收益是否服从正态分布(决定用夏普还是其他风险指标);二是用蒙特卡洛模拟未来回撤分布,给仓位管理提供依据。

✦ 分布是过滤器不是信号源
用分布检验“市场是否随机”“收益是否正态”这类前提假设,比直接用分布预测涨跌更可靠。前提错了,信号再漂亮也亏钱。

将分布落地到交易决策

实战中,正态分布可用于止损间距的波动率标定(用样本标准差 σ),指数分布可建模持仓时间。把这些类作为基础库沉淀下来,后续所有量化模块都能复用。

小结

理论分布类库是量化交易的底座:生成随机样本→拟合真实数据→检验假设→反哺风控。下一步可结合“用 MQL5 表示统计概率分布”一文中的 pdf/cdf 方法做更精细的密度估计。

常见问题

主要用于检验前提假设与标定风控。例如用分布拟合检验“收益是否正态”来决定用夏普还是其他指标,用样本标准差标定止损间距。
MQL5 没有内置分布采样器,需把 Numerical Recipes 等成熟 C 代码迁移成 Random/CNormaldev 类,按参数生成指定分布的样本供蒙特卡洛与检验使用。
不能也不该。分布描述的是随机变量的统计规律,适合做过滤器与风控标定,而非当作方向信号。