用 MQL5 云网络把 EA 优化提速百倍:本地代理、局域网与云端实测
MetaTrader 5 的策略测试器不只是回放历史,它还能做参数优化——同一段历史上用不同参数组跑多遍,找最优解。这是个天然可并行的重计算任务。本文用标准 EA(Moving Average.mq5)实测三档并行:本地代理、局域网代理区、MQL5 云网络。
一、MT5 策略测试器的多线程架构
第 5 代客户端配了全新的策略测试器,支持多线程优化。测试条件示例:i7 八核、EURUSD H1、2011 全年、1 分钟 OHLC、慢速完整算法共 14040 次计算。优化本质是“同一任务 × 不同参数”的批量跑,天然适合丢给多个代理并行。
二、本地代理 vs 局域网代理区
先在本地代理跑:八核就是 8 个本地代理,14040 次通过耗时 1 小时 3 分 44 秒。想更多并行?可以建局域网代理区——在每台装了 MT5 的机器上用“测试代理管理器”按逻辑核心数装代理,设密码和端口范围,主终端在“代理”标签扫局域网 IP 即可连上。实测加 20 个远程代理(共 28 个,3.5 倍),时间降到 15 分 47 秒,快近 4 倍。
// 本地 8 代理跑完的日志(节选) 统计 本地 14040 次任务 (100%),远程0 次任务 (0%),云端 0 次任务 (0%) 优化通过时间 1 小时 3 分 46 秒 测试 优化结束,一共通过 14040 次 // 加 20 局域网代理后 统计 本地 3412 次任务 (24%),远程 10628 次任务 (75%),云端 0 次任务 (0%) 优化通过时间 15 分钟 47 秒
三、MQL5 云网络:成千上万核心
云网络由一个个节点(专用服务器)组成,节点按地理位置把全世界的代理聚成大池。闲置代理会主动上报“我准备好了”,你不需要它们时它们才去云上接活——你的代理只在你不用时贡献算力。终端 Tester 的 Agents 标签能看到各节点和可用云代理数。打开云网络、点开始,优化直接提速约 150 倍:同样的 14040 次只用了 26 秒,加速高达 147 倍。
四、云优化能快多少倍(实测)
实测结论很直观:本地 8 代理 1 小时级;局域网 28 代理 15 分钟级;纯云网络 26 秒级。写本文时云网络已实现约 100 倍计算增长,随节点增多还会更高。对要跑几十万次优化的交易者,云上 1 小时 vs 本机几天,差距是数量级的。
五、云中如何分发任务与历史同步
每个云节点存着所需品种的历史,按需发给连上的代理;若某代理没有 XYZ 历史,节点会自动从你终端下载。建议先在本地对策略跑一次单项测试,这会自动触发该品种历史下载与同步,所有参与优化的代理拿到的是同一份同步历史和交易环境。代理不是永久连管理器,而是定期“报到”看有没有新任务——所以你点开始后能看到连接代理数逐渐涨上来,这就是网络的“预热”。
六、怎么用云网络跑自己的计算
步骤很轻量:在终端设置里填 MQL5.community 登录并允许使用云网络;在 Tester 设好测试选项和 EA 输入参数;点 Start。终端会把任务包准备好发给节点。注意云中明确不允许 DLL,指标/库要用 #property tester_library、数据文件用 #property tester_file 声明。对于用大输入变量集搜解的超难数学任务,MT5 测试器也能轻松并行——不止于策略优化。
七、小结
把 EA 优化从“本机苦等”变成“一键调用成千核心”,MT5 云网络是最佳杠杆:本地代理是基础,局域网代理区是 3~4 倍,云网络是百倍级。它不需要你写任何分布式代码,只要允许云网络、声明好依赖文件,任务包自动分发、历史自动同步。重度优化(参数扫描、样本外、蒙特卡洛)的用户,把云网络当标配而不是可选项。