连续前行优化 (第四部分): 优化管理器(自动优化器)(基础篇)
「让 EA 自己挑参数:优化管理器怎么跑」
MetaTrader 5 的优化管理器(也叫自动优化器)解决的是一个很实在的问题:手动在策略测试器里一轮轮调参太慢,而且容易漏掉参数组合。它能在你不开着屏幕盯的时候,按既定规则连续把多组参数丢进测试器跑完。 这套机制的核心不是帮你『算命』,而是把『遍历搜索』自动化。你先框定每个输入参数的取值范围和步长,优化管理器会按遗传算法或穷举方式依次回测,把满足过滤条件的结果写进缓存。 原文示例发布于 2020 年 6 月 11 日,在 MQL5 社区拿到 2 782 次查看、19 条讨论——说明自动优化在实盘前验参这个需求上一直有稳定受众。外汇与贵金属品种波动受杠杆和消息面影响大,自动优化出的历史最优参数过拟合概率不低,只能当作候选而非定论。 想验证的话,在 MT5 里打开任意 EA 的『策略测试器』,切到『优化』页,把输入参数的『开始/步长/停止』填好,选『遗传算法』跑一轮,就能直观看到管理器怎么替你排任务。
自动优化器的定位与可替换性
这一篇承接前面三篇关于连续前行优化的文章,把已经写好的自动优化器程序做一次整体亮相。前几篇分别讲了终端侧和函数库侧如何读取、生成优化报告,这一节不再抠实现,而是把成品当工具来用。 已发布的自动优化器核心逻辑是开放的,算法模块可以整体替换。你完全能把里面的寻优流程换成自己的思路,比如改成分段网格或基于波动率的步进搜索,而不用动整体框架。 实际落地时,不少同事反馈第一眼看不懂交互逻辑,但真到 MT5 里加载 EA、点开参数面板就会发现设置项很直白。本文相当于一份使用指南,把所有可能的坑和参数细节列清楚,外汇与贵金属品种波动剧烈、杠杆风险高,跑自动优化前务必用策略测试器先验证样本外表现。
◍ 用连续前行优化甩掉人工挑参
做程序化交易若标榜科学,准备阶段就不能靠手感挑参数。优化和前向验证若交替自动跑,选参逻辑固化后,人只需看结果,不必再凭直觉从几百组里捞一个。 连续前行优化的做法是把历史切成固定长度的窗:假设有 10 年数据,优化窗取 1 年、前向验证窗取 1 个季度(3 个月),则一个间隔 = 1.25 年。先在黄区(历史)优化,用固定方法选出最佳参数,再到绿区(前向)跑测试,随后整体偏移时间继续循环,直到贴近当前。 每一段前向验证的结果留存下来,就是算法跨行情的实景抽样。末尾那段只优化、未做前向验证的窗口,可直接拿来实盘。 这套机制有三个硬好处:逻辑清晰可脱离人工干预;对新资产或新算法等于做了连续压力测试,只要固定选参法在所有前向窗不变,市场一旦不再适配策略就会暴露;短间隔产出大量片段,可靠性更高——按 1 年+1 季度切分,2 年数据就能给到 4 次压力测试加 1 次终优化。外汇与贵金属波动剧烈,任何历史压力测试通过都不代表未来盈利,实盘前请在 MT5 用自己品种重跑一遍。
「自动优化器的启动配置与终端接管逻辑」
自动优化器本质是个独立控制台,不是挂在某个 MT5 终端里的插件。它能在同一台机器上扫到所有走标准安装流程的终端,但同一时刻只操控其中一个,且每次启动前必须手动关掉目标终端,否则进程接管会失败。
| 程序界面分两栏:Settings 负责启停与参数,Result 承载优化输出。Settings 内又切四块可拖拽边框的区域——EA 列表随终端切换自动刷新并支持嵌套目录;算法参数从 MQL5/Profiles/Tester/{Expertname}.set 读取,若文件缺失会先拉起终端用默认设置生成再关掉;过滤排序条件沿用系列首篇的 >=、<=、< | > 语法;历史与前向间隔按通关逻辑填写,测试模式(Optimisation model=Disabled)下至少填一个间隔。 |
|---|
从优化器发起任务前,必填项只有几条硬约束:选 EA、勾选优化参数并设范围、至少一条排序标准(测试可省)、指定 Asset name(填错终端直接跑不起来)、选优化器类型。Directory prefix 仅影响结果目录命名,规则为“{前缀}{优化器}{EA名}{品种}”。Rewrite 覆盖同名全量,Append 只覆盖交集间隔。 点 Start/Stop 后进度条在底部文本标签刷新;优化完终端自动关闭并回传 Result 栏,但若是跑测试,终端故意不关,方便你查数据,看完需手动关否则后续自动化卡死。优化器自身还有 GUI 按钮进二级设置:Test on ticks 切逐笔或 OHLC1m;Replace real dates to set 修正假期导致的日期偏移;Use different tick shift 仅在逐笔模式下生效,可把滑点参数置 0 剔除外溢成本。这些参数无保存键,改完关窗即落盘。 需要留意,外汇与贵金属品种点差跳空频繁,Replace real dates 与 tick 测试的组合可能让历史拟合结果偏离实盘概率偏高,建议先用小样本前向验证再放大。