MT5 EA(Expert Advisor,智能交易系统)是用MQL5语言编写的自动化交易程序,可以自动执行开仓、平仓、止损止盈等操作,实现7×24小时无人值守交易。本文面向零基础读者,带你完成第一个EA的从0到1。

一、MQL5语言入门:你需要知道什么?
MQL5是MT5的编程语言,语法接近C++,但针对金融交易做了大量封装。入门需要掌握的基础包括:
- 程序结构:EA由OnInit(初始化)、OnTick(每个报价触发)、OnDeinit(退出清理)三个核心函数组成;
- 数据类型:int、double、string、bool等;
- 交易函数:如
OrderSend()、PositionOpen()、PositionClose(); - 指标调用:通过
iMA()、iRSI()等函数读取指标数值。
不需要一开始就精通全部语法,先模仿、再修改、最后独立编写,是最有效的学习路径。
二、打开MetaEditor与第一个EA
MT5内置的MetaEditor就是EA开发环境:
- 在MT5中按F4打开MetaEditor;
- 点击“新建” → “Expert Advisor”,输入名称(如FirstEA);
- MetaEditor会生成包含OnInit、OnTick、OnDeinit的模板代码;
- 在OnTick中编写交易逻辑,点击“编译”(F7)生成.ex5文件。
三、一个简单EA示例:双均线交叉
下面是经典的“双均线交叉”策略核心逻辑:当快速均线上穿慢速均线时买入,下穿时卖出。关键代码结构如下:
double fastMA = iMA(_Symbol, PERIOD_H1, 10, 0, MODE_EMA, PRICE_CLOSE, 0);
double slowMA = iMA(_Symbol, PERIOD_H1, 30, 0, MODE_EMA, PRICE_CLOSE, 0);
double prevFast = iMA(_Symbol, PERIOD_H1, 10, 0, MODE_EMA, PRICE_CLOSE, 1);
double prevSlow = iMA(_Symbol, PERIOD_H1, 30, 0, MODE_EMA, PRICE_CLOSE, 1);
if (prevFast <= prevSlow && fastMA > slowMA) {
// 金叉:开多
} else if (prevFast >= prevSlow && fastMA < slowMA) {
// 死叉:开空
}
完整代码还需要包含仓位管理、止损止盈、重复开仓判断等保护逻辑,建议先阅读MQL5官方文档再逐步完善。
四、把EA加载到图表
- 编译成功后,回到MT5图表;
- 在“导航器 → 智能交易系统”中找到你的EA,拖拽到图表;
- 勾选“允许算法交易”(或按Ctrl+E开启);
- 设置输入参数后点击确定,EA开始运行。
首次实盘运行前,务必先通过MT5策略回测验证历史表现,再在模拟账户运行至少两周。
五、EA开发常见坑与建议
- 忽略滑点与点差,回测结果过于理想;
- 没有处理周末停盘、休市等特殊情况;
- 缺少最大回撤保护,单笔亏损失控;
- 建议从简单策略开始,逐步增加过滤条件。
EA写好后,策略回测是验证它是否值得上实盘的关键一步,下一篇教程将详细讲解MT5策略测试器的使用方法。