准备学习 MT4 EA,首先要解决的不是「哪款机器人收益最高」,而是怎样判断一款程序有没有按照自己看得懂的规则运行。EA(Expert Advisor,智能交易系统)可根据代码分析行情,并在权限及交易条件允许时提交交易指令。本文提供一条可检查的学习路径:写规则、核对来源、放入正确目录、检查权限、回测、查看报告、模拟观察、停止并核对遗留订单,最后形成开发需求。全文以 Windows 电脑版 MT4 为主;所有后续实机截图沿用繁体中文界面,简体中文负责独立解释与术语对照。
RISK|CFD 属于杠杆交易,可能出现快速亏损。自动执行不等于收益稳定,也不代表程序无漏洞。所有可操作步骤限定在 Demo 环境;文章中的测试表是操作规范,不是已完成的交易、回测或收益报告。简体中文文章不构成对中国大陆居民可开户或可获得相关服务的确认。
1. 先弄清 EA 应该做什么,而不是先看收益图
用途、规则与支持责任分别核对
先从程序类型入手:MT4 的EA可进行自动分析及经授权的交易操作;自定义指标主要绘制和计算技术信息;脚本通常响应一次人工调用,执行特定任务。区分三者可以防止把指标文件放入 EA 目录,或者把一个可自动发送订单的程序当作普通图形插件。MetaQuotes 的 MQL4 说明区分了这些任务。
第二步不是下载,而是列出一张「程序身份表」:开发者是谁、从哪里取得、是否可以合法用于测试、版本号是什么、要求什么输入参数、是否请求 DLL 或外部访问权限、是否提供停止和错误处理说明。看见「历史收益曲线上升」不能推断程序的安全性,也不能据此相信它符合账户限制。来源无法确认或要求交出账户密码、钱包私钥的文件,不应安装到生产电脑。
Moneta 的EA 官方问答表示 MT4/MT5 平台允许使用 EA,但其不创建、提供、维护具体 EA,也不承担该程序的技术支持。允许 EA 功能与某一程序可靠且适用于某一账户是两回事。需要核查特定软件时,先联系开发者、保留授权资料,并把券商适用条件另列为待核实。
本节验收: 不看收益宣传也能清楚说出程序来源、打算做的事情、权限与外部支持边界。


1.1. 核对来源,把 EA 放入正确数据目录
MQ4、EX4 与图表加载分开检查
在本次实际使用的 MT4 终端内,按 File → Open Data Folder(繁中界面具体字样待实拍确认)定位数据文件夹,再进入 MQL4/Experts。不要凭印象打开 Windows 程序安装目录,也不要把另一套 MT4 实例的数据文件夹当作当前终端的文件夹。MetaQuotes 说明,MT4 的程序安装位置与数据文件位置可以不同,现代 MQL4 程序按类型分目录存放:Data Structure。
应把 MQ4 理解为源代码文件,EX4 理解为经 MetaEditor 编译后供 MT4 执行的程序文件。只有 MQ4 未必已经编译成功;有 EX4 也不等于该程序安全。把可信文件复制到正确目录,随后根据终端版本刷新 Navigator 或重新启动;如需编译,要保留编译错误与产生的文件版本。不能将 MT5 的 EX5 直接重命名为 EX4 期待兼容。
接下来从 Navigator 的 Expert Advisors 中选取程序,拖到预定 Demo 图表,核对「输入参数/Inputs」和必要权限。注意区分三个状态:文件已存在、Navigator 已识别、EA 已附加图表。第三个状态仍不足以证明程序已经收到行情事件、产生指令或者成功成交。EA 启动说明提供载入操作依据。
| 安装关卡 | 需要看到的证据 | 常见误判 |
|---|---|---|
| 文件 | 来源、版本及有效 EX4 | 改后缀就能兼容 MT4 |
| 目录 | 当前终端 MQL4/Experts | 放在安装目录或另一套终端 |
| Navigator | 能找到 EA 条目 | 出现名称等于开始交易 |
| 图表 | 参数窗口与附加状态 | 已附加就等于服务器接受订单 |
本节验收: 能让另一位测试人员按相同目录与版本,找到程序并识别其挂载状态。尚无实机记录时,本项标记 Not Tested。




1.2. EA不下单,先检查两层交易权限
加载、允许交易、发单与成交不是同一状态
MT4 至少有两层常用的自动交易许可:终端全局 AutoTrading/Allow Auto Trading,以及个别 EA 参数中的 Allow live trading。MetaQuotes 的终端设置明确说明,全局禁用时,即使个别 EA 允许交易,也不能发出交易操作;全局启用仍不代表每个 EA 都允许交易。这项差异是排查「EA 正常显示但没有订单」的第一条分流线索。
然后核对 Demo 登录是否具有交易权限、EA 规则是否已经触发、当前商品是否可交易、连接和报价状态是否正常。应从 Experts/Journal 日志保留时间与原始错误文本,按事实区分「无触发」「禁止交易」「提交失败」「交易被接受」。不要因为看见终端图标变化或持仓数量为零,就反推出某个特定错误原因。
特别注意额外权限。 EA 可能请求 DLL 导入、网络 WebRequest 或外部程序调用,但这些并不是所有 EA 都需要。不要为了让程序运行而一次性开放所有权限;只有程序来源、调用地址和必要性可被核实,并且符合测试方案时才评估开启。测试时应首先确保账号是 Demo,避免错误开启真实账户的自动执行能力。
NOTE|可正常观察行情却不能交易,还可能与投资者只读登录、账户条件或商品状态相关。任何关于 Moneta 特定账户的诊断都必须以实际报错和官方规则核对,不能凭空写死原因。
本节验收: 完成「全局权限、EA 权限、账户权限、规则是否触发、日志」五项检查,并说明每一项的证据在哪里。





1.3. 先保存参数卡,再运行一次历史回测
记录模型、数据范围和点差
历史回测不是「按开始、看收益」这么简单。在 MT4 Windows 终端打开 Strategy Tester(MetaQuotes 官方文档列出 Ctrl+R),选择已识别且有使用权的 EA,再选定当前实际商品全名、时间周期、测试日期及模型。还应记录 EA 版本和 Inputs、初始测试资金、点差设置、数据覆盖范围,以及终端 Build。MetaQuotes Tester Setup可用于核对主要配置。
如果是比较两个输入参数,应尽量保持模型、商品、日期、资金和成本假设不变;否则不能把结果差异全归因于某个参数。测试模型会影响可观察到的价格细节。MT4 的 Every tick、Control points 和 Open prices only 都是基于相应历史数据与建模方式进行的模拟,并不等于逐笔真实交易执行。尤其「开盘价模型更快」不等于适用于任何盘中触发条件。
| 参数卡 | 必填或说明 |
|---|---|
| 基础身份 | Test ID、日期、MT4 Build、EA 名称/版本 |
| 数据设定 | 商品完整代码、时间周期、起止日期、历史资料来源/缺口 |
| 模型与成本 | 建模模式、点差设定、其他未纳入的执行成本 |
| 输入条件 | 关键参数及风险/禁止规则 |
| 结果状态 | Not Tested/Pass/Fail/Blocked,按实测填写 |
本稿不指定一组「稳赚参数」,也不提供未经实际测试的绩效截图。若测试时找不到对应 EA、数据覆盖不足或模型不合适,应记下受阻原因,而不是把默认值截图当成可重现测试。
本节验收: 拿到参数卡的另一名使用者能知道如何重新运行相同假设,并能看到有哪些条件仍无法还原。



1.4. 回测报告先核对行为,再看损益和回撤
错误日志也是测试结果
完成回测之后,从 Results 逐笔核对交易动作、顺序、数量与方向,再看 Journal 是否记载拒绝、数据问题或程序异常。接着阅读 Report 的交易次数、损益、回撤及其他摘要,Graph 则帮助观察曲线形态。MetaQuotes 的回测结果说明及报表说明可作为栏位依据。
如果需求卡规定「出现持仓后不得再次建仓」,但结果表出现重复提交,即使总体结果盈利,也应判断为功能未通过。反过来,某一笔模拟订单亏损,并不能单独证明程序没有照规则执行;这是程序行为正确性与交易策略效果的区别。二者需要分别记录,不能用收益覆盖技术缺陷。
Modeling quality(建模质量)也不是胜率。正收益、较低回撤甚至多次参数优化后的最佳曲线,都不能自动证明未来表现。若一直使用相同历史区间筛选参数,可能发生过度拟合;应注明训练、调参和额外验证使用的资料范围,且不要将历史分段回测称作已经经过实时模拟运行。
本节验收: 至少得到三类资料:交易行为核对清单、原始错误记录、模型与数据限制;目前全部待实际测试。
RISK|回测不包含全部市场流动性、网络连接及实际成交的不确定因素。禁止把历史回测的净收益或建模质量包装成未来收益率保证。




1.5. 用模拟账户观察新的行情数据
不要把历史测试叫成真实运行验证
接下来选择合规可使用的 MT4 Demo 环境,按固定时间段观察未来新到达的行情数据。开始前记录账户类型、交易服务器、软件 Build、EA 版本与必要限制。观察过程关注规则何时触发、程序是否产生交易请求、交易状态如何返回、失去网络连接时出现什么,以及手动停止后能否正确收尾。所有可能产生模拟委托的动作都必须处于明确受控的测试范围。
建议建立时间顺序记录:时间、行情事件、规则判断、EA 动作、实际平台响应、预期差异、关联日志。没有出现交易不一定是错误——可能根本没有合法触发条件。若有一段时间断线、终端被关闭或者数据不完整,应标明缺口,不能将其解释成「机器人持续稳定运行」。VPS 不会自动保证长期无故障,也不会替代人为监督。
与历史回测相比,Demo 观察可以补充真实收到的市场数据与执行状态,但不等于真金白银交易,也不能代表所有账户和流动性情境。观察结果最好与参数卡保持同一版本并另立 Evidence ID,便于未来重新测试。
本节验收: 能解释一笔模拟动作到底发生了什么,或明确指出为什么暂时不能判断。
1.6. 发生异常如何停止,并检查遗留订单?
程序状态和持仓状态分别收尾
发现 EA 不按规则操作时,先保存异常时间、日志与相关图表,再依 MetaQuotes 的EA Shutdown移除对应图表上的 EA,或在测试计划中使用受控的停用步骤。注意:删除 Navigator 中的程序文件,不代表挂在图表上的实例已经停止;关闭终端、切换模板或 Profile 又涉及不同的程序生命周期,需要单独确认。
停止之后还没结束。马上检查 Demo 的当前持仓、有效挂单、商品、数量、止损止盈与交易历史。关掉 AutoTrading 主要是限制后续自动交易行为,不会替用户自动撤销此前被服务器接受的所有挂单,也不能代替手动平仓。若订单仍存在,要按当前账户实际状态单独处理并再次核对,避免恢复程序之后重复操作。
| 异常状态 | 必须分别保存的证据 |
|---|---|
| EA 已停止或从图表移除 | 程序状态、时间、终端版本 |
| 订单仍处于待触发 | 订单类型、商品、数量、最终取消结果 |
| 仍有模拟持仓 | 方向、数量、保护价、结束处理状态 |
| 无法定位 | Experts/Journal 错误及账户状态;标记 Blocked |
本节验收: 程序状态与交易状态分别有明确结论,没有未识别的有效模拟订单。





1.7. 把使用规则整理成可开发的需求文档
先写验收案例,再决定编程工作量
交给开发者的文档要写可以测试的条件,而非「做一个赚钱机器人」。至少说明数据输入(商品、周期、报价类型)、规则触发、允许的交易动作、持仓已有时的行为、异常消息、重试次数、停机重启流程及输出日志。为了避免误解,在附录写明所指的是 MT4/MQL4,不把 MT5 的功能和文件格式直接套用。
准备两个基础验收案例:一个是正常信号触发时,要求程序按既定规则处理;另一个是权限不足或同一时刻已有持仓时,要求系统不重复发送交易请求并保留错误记录。这些都是计划进行的测试条件,不是可直接执行的获利策略。除了程序逻辑,还应明确版本升级后哪些旧结果需要重新检验。
将成果整理成 EA_REQUIREMENTS、TEST_SETTINGS、EXPECTED_VS_ACTUAL、STOP_AND_RECOVERY 四类文件。每个测试都设置 Test ID,对应 MetaQuotes 来源、需要的截图及最终 Pass/Fail 状态。正式使用前应由技术负责人及适用的合规人员审查风险提示。
本节验收: 交给陌生开发者也能理解正常路径与失败路径的必要输出,不需要由对方猜测您的想法。

1.8. 理解 MQL4 开发流程与下一步学习路径
本篇停在流程,不扩成完整编程课
MQL4 EA 从需求到发布,通常需要经历:规则设计 → MetaEditor 编写 → 编译 → 单项逻辑检查 → 历史测试 → Demo 观察 → 故障修订 → 重新验收。MetaQuotes 提供EA Creation与 MQL4 文档,供有开发需求的读者继续学习。没有编程背景的人,也可以先完成需求卡和测试报告,再决定是否自行学习或委托开发。
需要严格区分三个层次:编译成功只说明生成了程序文件;历史测试达到某个结果只说明在这组数据与假设下出现过相应输出;未来新行情中的运行结果才可能补充另一类证据。以上任何一项都不能单独证明真实交易安全或必然盈利。
如果学习目标是管理指标而非自动下单,请接着阅读 MT4-07;若目标是第一笔模拟交易,先回到 MT4-02 完成账户与订单核对。不应为了阅读本文而提前开通真实自动交易。
本节验收: 能说明每个阶段需要什么输入和交付物、失败时该回到哪个步骤,且不存在「保证收益」这一验收项。
2. MT4 EA使用教程 常见问题 FAQ
Q1:MT4 EA 需要会写 MQL4 才能使用吗?
Ans:不一定。使用可信、合法取得的现成 EA,可以先从参数、权限及验证入手;要定制规则或修改代码时,才需要相应开发能力。即便不会写代码,也必须理解程序可能提交哪些交易指令。
Q2:EA 显示正常,却没有自动下单,是平台不支持吗?
Ans:不能直接这样判断。先检查全局和个别 EA 权限、模拟账户权限、规则是否触发、当前商品交易状态及具体日志,再确定问题归属。
Q3:MT4 回测的建模质量等于胜率吗?
Ans:不等于。建模质量与历史数据、模拟方法有关,胜率则基于交易结果计算;两者不应混同,也不能保证未来表现。
Q4:关掉 AutoTrading 后,原来的订单会被自动取消吗?
Ans:不能假设如此。关闭自动交易或移除 EA,不等于取消服务器上已有的挂单或关闭持仓;必须分别检查并处理。
Q5:Moneta 会替第三方 EA 解决程序问题吗?
Ans:依官方问答,Moneta 不开发或维护具体 EA,也不提供该程序的技术支持,应与开发者或原始来源联系。
免责声明:本内容仅作为参考信息,不能视为任何形式的金融、投资或专业建议。文中观点不代表 Moneta Markets 或作者对任何特定投资产品、策略或交易的推荐。请勿仅依据本资料作出投资决策,必要时请咨询独立专业顾问。