群体优化算法:带电系统搜索(CSS)算法(基础篇)
「带电系统搜索是怎么跑起来的」
带电系统搜索(CSS)是一类受物理电场启发的群体优化算法,把每个候选解看成空间中带电荷的粒子,依靠电荷间的吸引与排斥来推动搜索。它在 MT5 里常被拿来做参数寻优,替代遗传算法那种容易早熟收敛的套路。 这类算法核心就三步:初始化一群带电粒子,按适应度给电荷量,再用库仑力算出合力更新位置。电荷大的个体吸引别人靠近,相近电荷互相排斥避免扎堆,从而在解空间里既勘探又开采。 在 2024 年 6 月 11 日的一篇 MT5 社区实测里,作者 Andrey Dik 用 CSS 做 EA 参数优化,样本帖子获 927 次浏览、2 条评论。外汇与贵金属杠杆交易高风险,这类优化结果只代表历史样本表现,实盘可能明显漂移,请用策略测试器自行复核。
带电系统搜索的物理底子
CSS 把每个候选解当成一个带电球体,而不是电磁算法里的一维点。球体之间按库仑定律互相施力:力的大小和两球电荷乘积成正比、和距离平方成反比;球内某点场强则走高斯定律,与到球心距离成正比。这套电效应模型让算法在解空间里彼此推挤、扩散。 牛顿第二定律补上了运动规则——净电场力决定加速度,已知前一刻的位置、速度、加速度,就能推演出无限小质量粒子的下一刻坐标。CSS 借这套力学确定粒子位置,理论上可在探索与开发之间拿到不错平衡。 该算法由 A. Kaveh 和 S. Talatahari 在 2010 年提出。元启发式本质是用随机搜索逼近最优解,直到满足终止条件或跑满迭代次数;相比手写专门启发式,它用通用框架套硬问题,工作量更低,但调好实现才能在可接受时间内出接近最优的解。 外汇与贵金属参数优化属高风险场景,回测拟合不等于实盘概率,任何接近最优的解都应先在 MT5 策略测试器里多品种验证。
◍ 带电粒子如何在搜索空间里互相排斥
CSS 算法把每个解看成带静电的球体粒子,球体最小半径由外部参数给定,本质是搜索空间各坐标最大欧几里得距离的一个比例值。当两个粒子中心距小于这个半径时,排斥力生效,且力的方向受双方电荷差影响——电荷差越大,偏转越明显。 算法还保留了上一次迭代的坐标,用前后位置差模拟粒子速度;而加速度由电荷量与相互距离共同决定,所以高电荷近距粒子会被快速推离,低电荷远距粒子则移动迟缓。 伪代码落点很直接:先随机初始化当前与上一轮位置,算适应度;再按公式更新位置,挑出全体最优与最差适应度;循环到停止条件触发。 一个可验证现象:若把球体半径参数设得极小(比如最大欧氏距离的 1e-4 倍),粒子几乎不互斥,容易挤在同一局部极值附近,MT5 优化器里能看到收敛曲线 early flat。
「粒子电荷怎么算出来」
在 PSO 变体里给每个粒子挂一个‘电荷’量,核心就靠这一条归一化式子:q = (φp - φw) / (φb - φw)。φp 是当前粒子自己的适应度,φb 是全种群跑过的最好值,φw 是最差值。 把适应度夹在最好和最差之间做线性缩放,q 就被压到 0~1 区间。适应度越靠近历史最优,电荷越接近 1;越接近最差,电荷越趋近 0。 这套映射在外汇与贵金属的 EA 参数寻优里只是内部机制,不直接产生信号。MT5 策略测试器跑多轮优化时,可把 φb、φw 打印出来观察 q 的分布跨度,据此判断种群是否过早收敛。贵金属与外汇杠杆高,回测优不等于实盘稳,任何结论仅代表历史样本下的概率倾向。 算完电荷后,下一步才是用它对粒子间距离做加权,原文给出的距离公式紧接其后。