MetaTrader 5 与 MQL5 提供的无限机遇(基础篇)
MT5 回测框架能挖多深
这套 EA 教程系列把 MT5 的策略测试能力拆成了可操作的模块,而不是只讲怎么写几行下单代码。从目录看,它覆盖了交易系统条件、外部参数、参数优化、可视化测试,一直延伸到手动交易面板和资金管理,说明一个完整策略从想法到验证的链路都能在终端里跑通。 原文给出的发布时间是 2014 年 1 月 9 日,截至文档记录已被查看 9330 次、评论 43 条,侧面反映这类把测试器用法讲透的内容在长期被交易者翻找。外汇与贵金属品种的高杠杆特性意味着回测结论只代表历史概率,实盘仍可能偏离。 真正值得立刻去 MT5 做的,是打开策略测试器的「可视化模式」和「参数优化」两栏,对照自己 EA 的外部输入,看哪些变量被原作者列为第一设置变量——这一步能直接暴露你策略里没被系统检验过的盲区。
「这套程序能长什么样」
我用自己九个月从零学 MQL5 的进度作参照,给你看一个交易者自研程序的实际形态:它在图表上占的地方极小,却能把多策略信号、参数面板和一键取值揉在一起。颜色分区和明快布局不是好看而已,是让你在盯盘时少做一层‘翻译’——信息直接可读,才谈得上高频决策。 很多人卡在‘中等难度’这段:不是不会写,而是不知道真实交易里该把哪些功能塞进同一个 EA。本文不贴代码,因为拆开讲每段逻辑会撑爆篇幅;但你读完应能去 MT5 里对照自己的指标,试着把两个独立信号合成一个面板。 外汇和贵金属波动受杠杆放大,这类自研面板只降低认知负荷,不消除爆仓风险,组合策略越多越要小仓位验证。 我曾翻过一本交易书,里面一套‘可盈利系统’简单到描述能印你汽车保险杠上。我实测过大量极简系统,多数做不到书里那般轻松——但这不代表那种系统绝不存在。
◍ 五水平通道的穿越信号与子仓位管控
这套系统把交易触发点压在一条改造过的价格通道上,通道内自上而下画出五条水平线:H_PCH(柱最大值)、MH_PCH(通道顶与中点的中间)、M_PCH(通道顶底正中)、ML_PCH(通道底与中点的中间)、L_PCH(柱最小值)。只有整根蜡烛走完,对应水平的穿越才算数,也就是说你全部基于已收盘的柱做决策,避免毛刺假突破。 信号分四组独立运作:上穿 ML_PCH 买、下穿 MH_PCH 卖;上穿或下穿 M_PCH 双向开;上穿 MH_PCH 买、下穿 ML_PCH 卖;上穿 H_PCH 买、下穿 L_PCH 卖。价格缺口常见,所以额外加了“新柱开盘价直接跳过水平”的判定,不靠实体穿越也认信号。每组条件互不重叠,靠 EA 的幻数(magic number)区分所属子仓位。 MT5 rules 每个交易品种只允许一个持仓方向,所以同一品种下不同条件触发的子仓位,实际是在增减总持仓量。子仓位交易量记录容易在断线、手动平仓、止损获利自动触发时出错,EA 用全局变量加“幻点”方案重建记录,重编译、重启、删图表后都能恢复正确账目。 每个子仓位带独立挂单式止损获利:BUY 子仓挂 Sell Stop 与 Sell Limit,永久联网时即时布单;断线期间若服务器端成交,反向挂单会被删,后续不可控。因此必须保证 VPS 或备份连接,这是硬前提。 真实账户层面,所有子仓挂单之外还要放一层“安全缓冲”止损获利,水平设得比最远挂单更远,只在失控时出现。外汇与贵金属杠杆高、滑点跳空频繁,断线可能吞噬大部分权益,缓冲单不干扰 EA 日常却能在你离开时兜住极端风险。
多信号EA的外部参数怎么配
MultiSignals_PCH 类 EA 的止损、获利以及指标期段,都能按信号组单独优化;也可以给所有组共用一套参数。原文给出的缩减参数表针对 3 个交易品种、每品种 4 组信号,其中 SYMBOL_01 的 TS_01 设了 Period PCH(sub)=20、获利 250 点、止损 110 点,这种前缀 01 的命名直接绑定交易品种序号,参数一多极易看串。 MT5 对外部输入参数有硬上限:开发者设定不得超过 1024 个。你加品种和策略组时,先算总参数数,超了终端直接不吃。 几个容易被忽略的安全类参数:Max Draw Down Equity(%) 设为 50 时,净值回撤触线不仅停交易,EA 还会自卸并写日志;Stop Trade by Free Margin($)=3000 是在发单前算可用预付款,破线就不发。外汇与贵金属杠杆高,这类自动撤防逻辑建议实盘前在策略测试器里刻意测一遍。 优化报告块用 Condition of Selection Criteria=AND 配合 01_盈利>0、02_盈利系数>2 做过滤,只有双条件都满足的跑批结果才写文件;若五个 Statistic Criterion 全设 NO_CRITERION,则什么都不会落盘。开 MT5 把这几项改改,能立刻看到优化产物文件厚薄变化。
「把三品种四策略的EA丢进遗传算法里跑」
以最少配置为例:3个交易品种(EURUSD、AUDUSD、USDCHF)各挂4种策略。先把 _Name Symbol 分别填 01/02/03,再把所有品种的 Period PCH(total) 设大于0,让 MultiSignals_PCH 指标期段共用、时间表取自 Timeframe(total);Timeframe(total) 本例固定 8 Hour。每个策略单独给 Type Entry、Points TP、Points SL。优化范围建议:Period PCH 5→30 步长1,TP 50→800 步长10,SL 50→200 步长10。Money Management 先关掉(false),用固定 0.1 手跑优化,留到后面再单独处理。 Max Draw Down Equity(%) 设 50,能直接滤掉回撤超阈值的传递,顺带稍微提速。注意参数必须按交易品种逐个优化——一旦传递数超过 64 位长度限制,终端就跑不了,这条在 Help 里写死了。 测试器 Settings 里:周期约1年,优化类型 Fast(genetic algorithm),准则 Balance Max,模式选 Opening prices only。该模式按最低质量喂数据,但够用于只做已完成柱的EA;跑完最好切高质量复验。它的坑是优化时不认时间表,若多品种时间表不同就得逐个关掉其余品种单独跑,跑完再用 M1 的 OHLC 模式检验。双核PC上这套设置遗传算法耗时约 4–5 小时。 逐个品种跑完看 Optimization chart:盈利区里的点越密,说明参数往后掉回盈利区的概率越高;周期越长越稳但越慢,懒得等就扔 MQL5 云网络花钱借算力。验收底线参考:最大亏损不超20个百分点、回收系数≥2.00、SL 距离小于 TP 距离。三维图能看清 MultiSignals_PCH 浅绿区的参数堆积。全品种联合测试在 Opening prices only 下1年只要5秒,Every tick 约12分钟,M1 OHLC 约1分钟。 配套的 BOOK REPORT 是个 VBA 写的 Excel 2010 工作簿,把优化结果分析自动化了。EA 优化后会在终端公共目录 Files\DOR\<EA名>\OPTn\ 下生成 DOR.csv,点 CONNECT DATA 指到 C:\ProgramData\MetaQuotes\Terminal\Common\Files\(Win7)导入即可,错文件类型或空文件会弹警告。DIAGRAM 按钮进图表页,按 Profit 降序排,下方列了三十多项指标:PROFIT、PROFIT FACTOR、RECOVERY FACTOR、SHARPE RATIO、EQUITY DD MAX REL%、CONLOSS MAX 等,点列名能跳回 OptReport 对应列。 实盘前先照这套把 EURUSD 单独优化一遍,盯着回收系数是否过2、三维图浅绿区是否够厚;外汇和贵金属杠杆高,遗传算法给的只是历史样本下的偏好参数,换周期可能直接变样。