利用 MQL5 云网络加速计算·进阶篇
(2/3)· 本地 8 核跑完 14040 次优化要 1 小时,云网络如何改写这个时间账?
「把局域网电脑凑成代理区跑优化」
想在同一台机器上硬挤更多并行任务不现实——处理器核数固定,能同时跑的线程就那么多。MetaTrader 5 的策略测试器给了另一条路:把本地网里几台电脑的算力拼起来,组一个自己的代理区域。 每台参与机器都要装测试代理。已经装了 MT5 的,从“工具”菜单进测试代理管理器;没装端的,下独立版 MetaTrader 5 策略测试代理,按向导点完就行。管理器里切到“代理”页,按逻辑内核数选要装的代理数量,设好连接密码和端口区间,点添加,这台就就绪了。 在终端打开策略测试器,切到“代理”标签,选“本地网络区”右键添加。直接让程序自动扫局域网 IP 和端口段最省事,勾上扫到的、填安装时设的密码,完成就能用。 实测一组:原本 8 个本地代理,再挂上 20 个远程代理,总共 28 个,是原来的 3.5 倍。优化同一 EA 时日志记着——2015.02.05 15:14:44 统计本地 3412 次任务(24%)、远程 10628 次任务(75%)、云端 0;总通过 14040 次,耗时 15 分 47 秒,比纯本地快了将近 4 倍。外汇与贵金属策略回测属高风险验证,远程代理提速仅降低计算耗时,不预示实盘收益。
把优化丢给云网络能快多少
换掉本地代理,只勾选 MQL5 云网络,点「开始」就能看实时进度。实测一次 EA 参数优化只花了 26 秒,相对纯本地跑出了 147 倍的加速,官方标称上限约 150 倍。 云里每个节点会把任务拆成大量单运行分发给空闲代理,相当于一次点击就调成千上万个核心帮你算。做外汇或贵金属策略的人常要跑几十万次优化,用 MT5 测试器走云网络约 1 小时能清完的活,离线本地可能得耗几天。 不过云网络是共享算力,高峰时段可用代理数会波动,实际加速倍数可能低于标称值。贵金属与外汇杠杆高、滑点跳空频繁,回测加速不等于实盘胜率,上云前先在小样本核对过拟合。
◍ 闲置代理如何自动进云池
MQL5 云网络由大量节点(专用服务器)拼成,每个节点跑管理器程序,按地理位置把全球代理聚成大池。代理在闲置时会周期性发信号说“我空闲可接活”,发信间隔随云网络当前负载浮动,负载高时节奏更密。 在 MT5 终端的 Tester 窗口切到 Agents 选项卡,能直接看到连得上的云网络服务器列表和每台可拿到的云代理数量;用 MQL5 账户就能接进这些节点。代理只在不忙本地任务时免费给云网络用,一旦在跑本机或局域网派的任务就不抢云任务,本地算完几分钟内会自己连最近的云节点报到。 所以你的测试代理基本只在你用不上它们时才出去跑云活。MetaTrader 5 Agents Manager 安装极简、几乎不用配,这也是任何时刻云里都躺着成千上万可用代理的原因。网络总统计和已完成任务量在 cloud.mql5.com 项目页能查,外汇与贵金属回测涉及高杠杆高风险,云算结果仅作概率参考。
「把优化任务丢进云代理的实操链路」
想在 MT5 里跑分布式优化,先得在终端设置里填好 MQL5 社区账号并勾选允许使用云网络,否则任务发不出去。随后像普通优化一样配齐测试品种、周期、模拟模式以及 EA 输入参数,这四步漏掉任意一项都会卡在准备阶段。 点 Start 后,终端会打一个任务包,里面含编译好的 EX5、用 #property tester_indicator / tester_library 挂上的指标与库(云网络明确禁 DLL)、用 #property tester_file 指定的数据文件,以及本次要扫的参数字段和交易环境。云节点收到后只当代理分发,EX5 不落盘,数据文件优化完即删,机密性上比本地多了一层隔离。 实际通信就是客户端发包、各节点领计算次数、回传结果。你本地硬盘不存远程代理状态,断网重连后任务调度由网络侧续上,适合扫大参数空间时借用闲时算力,但外汇和贵金属杠杆高、滑点跳空频繁,云优化出的参数仍需在模拟盘复核风险。