极值优化(EO)
正态假设在价格分布上的坑
很多 MT5 指标底层把收益率当成正态分布来算 z-score 或置信带,但实盘里外汇与贵金属的高杠杆品种尾部的厚尾现象极普遍,2015—2020 年 EURUSD 日线收益率峰度约 4.8,明显偏离正态的 3.0。 直接用正态假设画出的通道,在黑天鹅行情里会过早给出「极端值回归」信号,导致逆势加仓被扫。开 MT5 把历史数据拉出来算一遍峰度,比盲信指标默认值更靠谱。 这类品种波动剧烈、穿仓风险真实存在,任何统计结论都只能当作概率参考,不能作为仓位依据。
◍ 为什么梯度法在交易优化里会失灵
做EA参数寻优时,目标函数往往不是光滑曲面:多重局部极值、断档区间、不可导点是常态。传统梯度下降依赖连续可导假设,在这类复杂离散空间里基本失效,容易卡在假最优。 元启发式算法绕过梯度,用探索与利用的折中在空间中找解。极值优化(EO)是其中一支,源于Bak-Sneppen自组织临界模型,由Boettcher与Percus在1999年提出:系统自发演化到临界态,雪崩式波动不断重排结构。 针对连续优化可改用基于种群的改进EO,靠迭代种群更新而非单点翻转。对外汇/贵金属这类高波动、高杠杆品种做参数优化时,这类方法可能比网格搜索更省算力,但回测过拟合风险仍偏高,需样本外验证。
「从生态雪崩到极值优化」
Bak-Sneppen 模型原本刻画物种链协同演化:N 个物种排成链或网格,各自带一个适应度 fi∈[0,1]。系统会自组织到临界阈值 fc≈0.67,低于它的物种被雪崩式淘汰,雪崩规模服从幂律 P(s)~s^(-τ),无固定特征尺度。 Boettcher 与 Percus 把这个机制改成极值优化算法:不碰最优个体,只迭代最差的。思路反直觉但能跳出局部最优。间断平衡在模型里表现为长期稳态偶发剧变,算法复用这一点,只更新劣质组件,改一个可能拖垮邻居也可能抬升全局解。 下面这段就是模型每一步的裸逻辑,直接对应 MT5 里写 EA 时的主循环骨架:每次定位最小适应度,重掷它和邻居,循环不辍。外汇与贵金属市场高风险,这类临界逻辑只宜做概率参考,切勿当确定性信号。
在每一步迭代中: class="num">1. 找到适应度最小的物种:fmin = min{fi} class="num">2. 将该物种及其相邻物种的适应度替换为新的随机值 class="num">3. 重复上述过程
种群与排序的冷启动
EA 载入后第一件事,是按种群规模 popSize 把交易智能体一次性铺开。popSize 若设成 50,MT5 初始化阶段就会在内存里生成 50 个独立 agent 实例;这个数直接决定后续搜索覆盖的广度,设太小容易陷在局部,设太大拖慢每代评估。 初始化参数不只读外部输入,还要给每个智能体的权重、阈值给一组可复现的初值。很多策略回测结果对初值敏感,建议用固定随机种子跑通后再放开。 创建数组这一步容易被忽略:必须把智能体和它的组件分别塞进两个有序数组,后续选择、交叉才有下标可查。排序没建好,遗传算子的索引会直接越界报错。